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

info.novatec.testit.livingdoc.expectation.ShouldBe Maven / Gradle / Ivy

/* Copyright (c) 2006 Pyxis Technologies inc.
 * 
 * This is free software; you can redistribute it and/or modify it under the
 * terms of the GNU General Public License as published by the Free Software
 * Foundation; either version 2 of the License, or (at your option) any later
 * version.
 * 
 * This software is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
 * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
 * details.
 * 
 * You should have received a copy of the GNU General Public License along with
 * this program; if not, write to the Free Software Foundation, Inc., 51
 * Franklin St, Fifth Floor, Boston, MA 02110-1301 USA, or see the FSF site:
 * http://www.fsf.org. */
package info.novatec.testit.livingdoc.expectation;

import java.util.LinkedList;
import java.util.List;

import info.novatec.testit.livingdoc.util.Factory;


/**
 * @version $Revision: $ $Date: $
 */
public final class ShouldBe {
    public static final Expectation TRUE = new EqualExpectation(true);

    public static final Expectation FALSE = new EqualExpectation(false);

    public static final Expectation NULL = new NullExpectation();

    private static List> factories = new LinkedList>();

    static {
        register(IsInstanceExpectation.class);
        register(ErrorExpectation.class);
        register(NullExpectation.class);
    }

    private ShouldBe() {
    }

    public static void register(Class< ? extends Expectation> factoryClass) {
        factories.add(new Factory(factoryClass));
    }

    public static Expectation equal(Object o) {
        return new EqualExpectation(o);
    }

    public static Expectation instanceOf(Class< ? > c) {
        return new IsInstanceExpectation(c);
    }

    public static Expectation literal(String expected) {
        if (expected == null) {
            throw new NullPointerException("expected");
        }

        for (int i = factories.size() - 1; i >= 0; i -- ) {
            Factory factory = factories.get(i);
            Expectation expectation = factory.newInstance(expected);
            if (expectation != null) {
                return expectation;
            }
        }

        return new DuckExpectation(expected);
    }

    public static Either either(Expectation expectation) {
        return new Either(expectation);
    }

    public static Expectation not(Expectation expectation) {
        return new NotExpectation(expectation);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy