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

info.novatec.testit.livingdoc.document.AbstractSpecification Maven / Gradle / Ivy

There is a newer version: 1.3.3
Show newest version
package info.novatec.testit.livingdoc.document;

import java.util.Map;

import info.novatec.testit.livingdoc.Example;
import info.novatec.testit.livingdoc.Specification;
import info.novatec.testit.livingdoc.Statistics;
import info.novatec.testit.livingdoc.Variables;
import info.novatec.testit.livingdoc.util.ExampleWrapper;


public abstract class AbstractSpecification implements Specification {
    protected final Variables variables = new Variables();
    protected Example cursor;

    protected void setStart(Example example) {
        this.cursor = before(example);
    }

    private Example before(Example example) {
        return ExampleWrapper.empty(example);
    }

    @Override
    public Example nextExample() {
        cursor = peek();
        return cursor;
    }

    @Override
    public Map getAllVariables() {
        return variables.getAllVariables();
    }

    protected abstract Example peek();

    @Override
    public boolean hasMoreExamples() {
        return peek() != null;
    }

    @Override
    public abstract void exampleDone(Statistics statistics);

    @Override
    public Object getVariable(String symbol) {
        return variables.getVariable(symbol);
    }

    @Override
    public void setVariable(String symbol, Object value) {
        variables.setVariable(symbol, value);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy