package au.org.ecoinformatics.eml.matchers; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; import au.org.ecoinformatics.eml.jaxb.eml.I18NNonEmptyStringType; public class HasI18NContentMatcherTest { /** * Can we tell when content matches? */ @Test public void testMatches01() { HasI18NContentMatcher objectUnderTest = new HasI18NContentMatcher("blah"); I18NNonEmptyStringType item = getI18NWithContent("blah"); boolean result = objectUnderTest.matches(item); assertTrue("should be considered matching", result); } /** * Can we tell when content DOESN'T match? */ @Test public void testMatches02() { HasI18NContentMatcher objectUnderTest = new HasI18NContentMatcher("something"); I18NNonEmptyStringType item = getI18NWithContent("another thing"); boolean result = objectUnderTest.matches(item); assertFalse("should NOT be considered matching", result); } /** * Can we handle a null expectation? */ @Test public void testMatches03() { HasI18NContentMatcher objectUnderTest = new HasI18NContentMatcher(null); I18NNonEmptyStringType item = getI18NWithContent("another thing"); boolean result = objectUnderTest.matches(item); assertFalse("should NOT be considered matching", result); } /** * Can we handle a null item? */ @Test public void testMatches04() { HasI18NContentMatcher objectUnderTest = new HasI18NContentMatcher("something"); I18NNonEmptyStringType item = null; boolean result = objectUnderTest.matches(item); assertFalse("should NOT be considered matching", result); } /** * Can we handle an item with no content? */ @Test public void testMatches05() { HasI18NContentMatcher objectUnderTest = new HasI18NContentMatcher("something"); I18NNonEmptyStringType item = getI18NWithoutContent(); boolean result = objectUnderTest.matches(item); assertFalse("should NOT be considered matching", result); } /** * Can we survive an item that contains content but it is null? */ @Test public void testMatches06() { HasI18NContentMatcher objectUnderTest = new HasI18NContentMatcher("something"); I18NNonEmptyStringType item = getI18NWithOneNullContent(); boolean result = objectUnderTest.matches(item); assertFalse("should NOT be considered matching", result); } private I18NNonEmptyStringType getI18NWithContent(String text) { I18NNonEmptyStringType result = new I18NNonEmptyStringType(); result.getContent().add(text); return result; } private I18NNonEmptyStringType getI18NWithoutContent() { return new I18NNonEmptyStringType(); } private I18NNonEmptyStringType getI18NWithOneNullContent() { I18NNonEmptyStringType result = new I18NNonEmptyStringType(); result.getContent().add(null); return result; } }