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

org.hamcrest.junit.ExpectedExceptionMatcherBuilder Maven / Gradle / Ivy

There is a newer version: 2.0.0.0
Show newest version
package org.hamcrest.junit;

import static org.hamcrest.CoreMatchers.allOf;
import static org.hamcrest.junit.JUnitMatchers.isThrowable;

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

import org.hamcrest.Matcher;

/**
 * Builds special matcher used by {@link ExpectedException}.
 */
class ExpectedExceptionMatcherBuilder {

    private final List< Matcher> fMatchers = new ArrayList>();

    void add(Matcher matcher) {
        fMatchers.add(matcher);
    }

    boolean expectsThrowable() {
        return !fMatchers.isEmpty();
    }

    Matcher build() {
        return isThrowable(allOfTheMatchers());
    }

    private Matcher allOfTheMatchers() {
        if (fMatchers.size() == 1) {
            return cast(fMatchers.get(0));
        }
        return allOf(castedMatchers());
    }

    @SuppressWarnings({"unchecked", "rawtypes"})
    private List> castedMatchers() {
        return new ArrayList>((List) fMatchers);
    }

    @SuppressWarnings("unchecked")
    private Matcher cast(Matcher singleMatcher) {
        return (Matcher) singleMatcher;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy