package com.levelup.java.hamcrest; import org.junit.Test; import com.google.common.collect.Lists; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.endsWith; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.startsWith; import static org.hamcrest.text.IsEmptyString.*; import static org.hamcrest.text.IsEqualIgnoringCase.*; import static org.hamcrest.text.IsEqualIgnoringWhiteSpace.*; import static org.hamcrest.text.StringContainsInOrder.*; import static org.junit.Assert.assertThat; /** * This java example will demonstrate testing * strings with junit and hamcrest matchers. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/hamcrest-text-matchers-junit-testing/'>Text matchers</a> * */ public class TextMatchers { @Test public void string_is_empty () { String favoriteCereal = ""; assertThat(favoriteCereal, isEmptyOrNullString()); } @Test public void string_is_empty_or_null () { String favoriteCereal = null; assertThat(favoriteCereal, isEmptyOrNullString()); } @Test public void string_equal_to () { String favoriteCereal = "cinnamon life"; assertThat(favoriteCereal, equalTo("cinnamon life")); } @Test public void string_equal_to_ignoring_case () { String favoriteCereal = "CINNAMON LIFE"; assertThat(favoriteCereal, equalToIgnoringCase("cinnamon life")); } @Test public void string_equal_to_ignoring_whitespace () { String favoriteCereal = "CINNAMON LIFE "; assertThat(favoriteCereal, equalToIgnoringWhiteSpace("cinnamon life")); } @Test public void string_contains () { String cereal = "mini wheats"; assertThat(cereal, containsString("mini")); } @Test public void string_ends_with () { String cereal = "corn flakes"; assertThat(cereal, endsWith("s")); } @Test public void string_starts_with () { String cereal = "honey smacks"; assertThat(cereal, startsWith("honey")); } @Test public void string_has_order () { String cereal = "apple jacks"; assertThat(cereal, stringContainsInOrder(Lists.newArrayList("apple", "jacks"))); } }