package com.levelup.java.hamcrest; import static org.hamcrest.CoreMatchers.allOf; import static org.hamcrest.CoreMatchers.anyOf; import static org.hamcrest.CoreMatchers.anything; import static org.hamcrest.CoreMatchers.both; import static org.hamcrest.CoreMatchers.containsString; import static org.hamcrest.CoreMatchers.describedAs; import static org.hamcrest.CoreMatchers.endsWith; import static org.hamcrest.CoreMatchers.equalTo; import static org.hamcrest.CoreMatchers.everyItem; import static org.hamcrest.CoreMatchers.hasItems; import static org.hamcrest.CoreMatchers.instanceOf; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.isA; import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.CoreMatchers.startsWith; import static org.hamcrest.number.OrderingComparison.greaterThanOrEqualTo; import static org.junit.Assert.assertThat; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Calendar; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import org.hamcrest.core.IsSame; import org.junit.Test; import com.google.common.collect.Lists; /** * This java example will demonstrate hamcrest * core matchers. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/hamcrest-core-matchers-junit-testing/'>Core matchers</a> * */ public class CoreMatchers { @Test public void hamcrest_core_allof () { String microBrew = "Lake Louie Brewery Company"; assertThat(microBrew, allOf(startsWith("Lake"), containsString("Brew"))); } @Test public void hamcrest_core_anyOf () { String microBrew = "Grumpy Troll Brewery"; assertThat(microBrew, anyOf(startsWith("brew"), containsString("Troll"))); } @Test public void hamcrest_core_combinableMatcher () { String isLite = "Miller Lite"; assertThat(isLite, both(containsString("Miller")).and(containsString("Lite"))); } @Test public void hamcrest_core_describedAs () { BigDecimal myBigDecimal = new BigDecimal("0"); assertThat(myBigDecimal, describedAs("a big decimal equal to %0", equalTo(myBigDecimal), myBigDecimal.toPlainString())); } @Test public void hamcrest_core_every () { List<Integer> ages = Lists.newArrayList(21, 25, 30, 18); assertThat(ages, everyItem(greaterThanOrEqualTo(18))); } @Test public void hamcrest_core_is() { String isLite = "Miller Brewing Company"; assertThat("Miller Brewing Company", is(equalTo(isLite))); } @Test public void hamcrest_core_isA() { Map<Integer, String> map = new HashMap<Integer, String>(); assertThat(map, isA(Map.class)); } @Test public void hamcrest_core_anything () { assertThat("", anything()); } @Test @SuppressWarnings("unchecked") public void hamcrest_core_hasItems_matchers () { List<String> regionalBreweries = Lists.newArrayList( "Capital Brewery", "City Brewing Company ", "Jacob Leinenkugel Brewing Company", "Lakefront Brewery", "New Glarus Brewing Company", "Stevens Point Brewery"); assertThat(regionalBreweries, hasItems( containsString("Brew"), endsWith("y"))); } @Test public void hamcrest_core_hasItems () { List<String> regionalBreweries = Lists.newArrayList( "Capital Brewery", "City Brewing Company ", "Jacob Leinenkugel Brewing Company", "Lakefront Brewery, Inc.", "New Glarus Brewing Company", "Stevens Point Brewery"); assertThat(regionalBreweries, hasItems( "Capital Brewery", "City Brewing Company ", "Jacob Leinenkugel Brewing Company", "Lakefront Brewery, Inc.", "New Glarus Brewing Company", "Stevens Point Brewery")); } @Test public void hamcrest_core_isEqual () { String spottedCreator = "New Glarus Brewing Company"; assertThat(spottedCreator, equalTo("New Glarus Brewing Company")); } @Test public void hamcrest_core_isInstanceOf () { Calendar cal = Calendar.getInstance(); assertThat(cal, instanceOf(Calendar.class)); } @Test public void hamcrest_core_is_notNullValue () { Set<String> daNull = new HashSet<String>(); assertThat(daNull, is(notNullValue())); } @Test public void hamcrest_core_is_nullValue () { Set<String> daNull = null; assertThat(daNull, is(nullValue())); } @Test public void hamcrest_core_isSame_string () { String wiBrewery = "Capital Brewery"; String wiRegionalBrewery = "Capital Brewery"; assertThat(wiRegionalBrewery, IsSame.<String>sameInstance(wiBrewery)); } @Test public void hamcrest_core_is_same_list () { List<String> someList = new ArrayList<String>(); assertThat(someList, IsSame.<List<String>>sameInstance(someList)); } @Test public void hamcrest_core_containsString () { String brewery = "Pabst Brewing Company"; assertThat(brewery, containsString("Brew")); } @Test public void hamcrest_core_string_startsWith () { String highSchool = "Tarpon spring spongers"; assertThat(highSchool, startsWith("Tarpon")); } @Test public void hamcrest_core_string_endsWith () { String baseBallTeam = "Milwaukee brewers"; assertThat(baseBallTeam, endsWith("brewers")); } }