package com.framework.utils.matchers; import org.hamcrest.core.DescribedAs; import java.util.regex.Pattern; /** * Examples for matching collections: * <dl> * <dt>check if single element is in a collection:</dt> * <dd> * <pre> * List<String> collection = Lists.newArrayList("ab", "cd", "ef"); * assertThat(collection, hasItem("cd")); * assertThat(collection, not(hasItem("zz"))); * </pre> * </dd> * <dt>check if multiple elements are in a collection</dt> * <dd> * <pre> * List<String> collection = Lists.newArrayList("ab", "cd", "ef"); * assertThat(collection, hasItems("cd", "ef")); * </pre> * </dd> * <dt>check if multiple elements are in a collection with strict order:</dt> * <dd> * <pre> * List<String> collection = Lists.newArrayList("ab", "cd", "ef"); * assertThat(collection, contains("ab", "cd", "ef")); * </pre> * </dd> * <dt>check if multiple elements are in a collection with any order</ft> * <dd> * <pre> * List<String> collection = Lists.newArrayList("ab", "cd", "ef"); * assertThat(collection, containsInAnyOrder("cd", "ab", "ef")); * </pre> * </dd> * <dt>check if collection is empty</dt> * <dd> * <pre> * List<String> collection = Lists.newArrayList(); * assertThat(collection, empty()); * </pre> * </dd> * <dt>check if array is empty</dt> * <dd> * <pre> * String[] array = new String[] { "ab" }; * assertThat(array, not(emptyArray())); * </pre> * </dd> * <dt>check if Map is empty</dt> * <dd> * <pre> * Map<String, String> collection = Maps.newHashMap(); * assertThat(collection, equalTo(Collections.EMPTY_MAP)); * </pre> * </dd> * <dt>check size of a collection</dt> * <dd> * <pre> * List<String> collection = Lists.newArrayList("ab", "cd", "ef"); * assertThat(collection, hasSize(3)); * </pre> * </dd> * <dt>checking size of an iterable</dt> * <dd> * <pre> * Iterable<String> collection = Lists.newArrayList("ab", "cd", "ef"); * assertThat(collection, Matchers.<String> iterableWithSize(3)); * </pre> * </dd> * </dt>check condition on every item</dt> * <dd> * <pre> * List<Integer> collection = Lists.newArrayList(15, 20, 25, 30); * assertThat(collection, everyItem(greaterThan(10))); * </pre> * </dd> * </dl> */ public final class JMatchers extends org.hamcrest.Matchers { private JMatchers() { // utility } /** * Can the given pattern be found in the string? * * @param pattern a {@link java.util.regex.Pattern} object. */ public static org.hamcrest.Matcher<String> containsPattern( java.util.regex.Pattern pattern ) { return ContainsPattern.containsPattern( pattern ); } /** * Can the given pattern be found in the string? * * @param regex a regular expression * * @return String-Matcher */ public static org.hamcrest.Matcher<String> containsPattern( String regex ) { return ContainsPattern.containsPattern( regex ); } /** * Does the pattern match the entire string? * * @param pattern a {@link java.util.regex.Pattern} object. * * @return String-Matcher */ public static org.hamcrest.Matcher<String> matchesPattern( Pattern pattern ) { return ContainsPattern.matchesPattern( pattern ); } /** * Does the pattern match the entire string? * * @param regex a regular expression * * @return String-Matcher */ public static org.hamcrest.Matcher<String> matchesPattern( String regex ) { return ContainsPattern.matchesPattern( regex ); } public static <T extends java.lang.Comparable<T>> org.hamcrest.Matcher<T> isExplicitlyBetween( T value1, T value2 ) { String format = "a value is between %0 and %1"; if ( value1.compareTo( value2 ) > 0 ) { return DescribedAs.describedAs( format, org.hamcrest.Matchers.allOf( org.hamcrest.Matchers.lessThan( value1 ), org.hamcrest.Matchers.greaterThan( value2 ) ), value1, value2 ); } return DescribedAs.describedAs( format, org.hamcrest.Matchers.allOf( org.hamcrest.Matchers.lessThan( value2 ), org.hamcrest.Matchers.greaterThan( value1 ) ), value2, value1 ); } public static org.hamcrest.Matcher<java.lang.String> startsWithIgnoreCase( java.lang.String prefix ) { return StringStartsWithIgnoreCase.startsWithIgnoreCase( prefix ); } public static org.hamcrest.Matcher<java.lang.String> endsWithIgnoreCase( java.lang.String prefix ) { return StringEndsWithIgnoreCase.endsWithIgnoreCase( prefix ); } public static org.hamcrest.Matcher<java.lang.String> containsStringIgnoreCase( java.lang.String prefix ) { return StringContainsIgnoreCase.containsStringIgnoreCase( prefix ); } public static org.hamcrest.Matcher<CharSequence> isAllUpperCase( java.lang.CharSequence cs ) { return CharSequenceIsMatcher.isAllUpperCase( cs ); } public static org.hamcrest.Matcher<CharSequence> isAllLowerCase( java.lang.CharSequence cs ) { return CharSequenceIsMatcher.isAllLowerCase( cs ); } public static org.hamcrest.Matcher<CharSequence> isAlpha( java.lang.CharSequence cs ) { return CharSequenceIsMatcher.isAlpha( cs ); } public static org.hamcrest.Matcher<CharSequence> isAlphaNumeric( java.lang.CharSequence cs ) { return CharSequenceIsMatcher.isAlphaNumeric( cs ); } public static org.hamcrest.Matcher<CharSequence> isDigits( java.lang.CharSequence cs ) { return CharSequenceIsMatcher.isDigits( cs ); } public static org.hamcrest.Matcher<CharSequence> isNumeric( java.lang.CharSequence cs ) { return CharSequenceIsMatcher.isNumeric( cs ); } public static org.hamcrest.Matcher<CharSequence> isNumber( java.lang.CharSequence cs ) { return CharSequenceIsMatcher.isNumber( cs ); } }