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

flarestar.bdd.assertions.matchers.ContainsAllPairsMatcher Maven / Gradle / Ivy

The newest version!
package flarestar.bdd.assertions.matchers;

import flarestar.bdd.assertions.utility.ComparisonHelper;
import flarestar.bdd.assertions.utility.Pair;
import org.hamcrest.BaseMatcher;
import org.hamcrest.Description;

import java.util.Arrays;
import java.util.List;
import java.util.Map;

/**
 * TODO
 */
public class ContainsAllPairsMatcher extends BaseMatcher> {
    private List> expectedMappings;
    private boolean checkExact;

    public ContainsAllPairsMatcher(Pair[] expectedMappings, boolean checkExact) {
        this.expectedMappings = Arrays.asList(expectedMappings);
        this.checkExact = checkExact;
    }

    public boolean matches(Object o) {
        Map map = (Map) o;
        for (Pair mapping : expectedMappings) {
            if (!map.containsKey(mapping.first)
                || !ComparisonHelper.equals(map.get(mapping.first), mapping.second)
            ) {
                return false;
            }
        }

        if (checkExact) {
            return map.size() == expectedMappings.size();
        } else {
            return true;
        }
    }

    public void describeTo(Description description) {
        description.appendText("map contains following mappings ");
        description.appendList("[", ", ", "]", expectedMappings);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy