All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ext.test4j.hamcrest.collection.IsArrayContainingInOrder Maven / Gradle / Ivy

There is a newer version: 2.5.0
Show newest version
package ext.test4j.hamcrest.collection;

import ext.test4j.hamcrest.Description;
import ext.test4j.hamcrest.Factory;
import ext.test4j.hamcrest.Matcher;
import ext.test4j.hamcrest.TypeSafeMatcher;

import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import static java.util.Arrays.asList;
import static ext.test4j.hamcrest.core.IsEqual.equalTo;

public class IsArrayContainingInOrder extends TypeSafeMatcher {
    private final Collection> matchers;
    private final IsIterableContainingInOrder iterableMatcher;

    public IsArrayContainingInOrder(List> matchers) {
        this.iterableMatcher = new IsIterableContainingInOrder(matchers);
        this.matchers = matchers;
    }

    @Override
    public boolean matchesSafely(E[] item) {
        return iterableMatcher.matches(asList(item));
    }
    
    @Override
    public void describeMismatchSafely(E[] item, Description mismatchDescription) {
      iterableMatcher.describeMismatch(asList(item), mismatchDescription);
    }

    public void describeTo(Description description) {
        description.appendList("[", ", ", "]", matchers);
    }

    @Factory
    public static  Matcher arrayContaining(E... items) {
        List> matchers = new ArrayList>();
        for (E item : items) {
            matchers.add(equalTo(item));
        }
        return arrayContaining(matchers);
    }

    @Factory
    public static  Matcher arrayContaining(Matcher... matchers) {
        return arrayContaining(asList(matchers));
    }

    @Factory
    public static  Matcher arrayContaining(List> matchers) {
        return new IsArrayContainingInOrder(matchers);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy