parent
9056c8d047
commit
75e30ddae9
@ -0,0 +1,44 @@
|
|||||||
|
package space.kklochko.simple_jbdd.tests.factories;
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.tests.Test;
|
||||||
|
import space.kklochko.simple_jbdd.tests.commands.AbstractTestCommand;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
public class TestCommandQueueFactory {
|
||||||
|
private ArrayList<Test> tests;
|
||||||
|
private TestCommandFactory factory;
|
||||||
|
|
||||||
|
public TestCommandQueueFactory(ArrayList<Test> tests, TestCommandFactory factory) {
|
||||||
|
setTests(tests);
|
||||||
|
setFactory(factory);
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<AbstractTestCommand<Test>> create() {
|
||||||
|
ArrayList<AbstractTestCommand<Test>> commands = new ArrayList<AbstractTestCommand<Test>>();
|
||||||
|
|
||||||
|
for(Test test : getTests()) {
|
||||||
|
AbstractTestCommand<Test> command = getFactory().create(test);
|
||||||
|
commands.add(command);
|
||||||
|
}
|
||||||
|
|
||||||
|
return commands;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ArrayList<Test> getTests() {
|
||||||
|
return tests;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTests(ArrayList<Test> tests) {
|
||||||
|
this.tests = tests;
|
||||||
|
}
|
||||||
|
|
||||||
|
public TestCommandFactory getFactory() {
|
||||||
|
return factory;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFactory(TestCommandFactory factory) {
|
||||||
|
this.factory = factory;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,54 @@
|
|||||||
|
package space.kklochko.simple_jbdd.tests.factories
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenWhenThenTest
|
||||||
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTest
|
||||||
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTestWithoutTitle
|
||||||
|
import space.kklochko.simple_jbdd.tests.Test
|
||||||
|
import spock.lang.Narrative
|
||||||
|
import spock.lang.Specification
|
||||||
|
import spock.lang.Subject
|
||||||
|
import spock.lang.Title
|
||||||
|
|
||||||
|
@Narrative("""The factory must generate a queue of the test commands, so
|
||||||
|
those tests check if factory generate them right.
|
||||||
|
""")
|
||||||
|
@Title("Integrated tests for TestCommandQueueFactory")
|
||||||
|
class IntegratedTestCommandQueueFactorySpec extends Specification {
|
||||||
|
def "Factory generate the queue and its size is 2."() {
|
||||||
|
given: "I have a list of tests"
|
||||||
|
def tests = [new SimpleThenTest(), new SimpleThenTestWithoutTitle()]
|
||||||
|
|
||||||
|
and: "I have a test factory"
|
||||||
|
def testFactory = new TestCommandFactory()
|
||||||
|
|
||||||
|
and: "I have a factory"
|
||||||
|
@Subject
|
||||||
|
def factory = new TestCommandQueueFactory(tests, testFactory)
|
||||||
|
|
||||||
|
when: "Factory build the queue"
|
||||||
|
def queue = factory.create()
|
||||||
|
|
||||||
|
then: "the size is 2"
|
||||||
|
2 == queue.size()
|
||||||
|
}
|
||||||
|
|
||||||
|
def "Factory generate the queue and the commands and test order is the same."() {
|
||||||
|
given: "I have a list of tests with first methods [check, setup]"
|
||||||
|
def tests = [new SimpleThenTest(), new SimpleGivenWhenThenTest()]
|
||||||
|
|
||||||
|
and: "I have a test factory"
|
||||||
|
def testFactory = new TestCommandFactory()
|
||||||
|
|
||||||
|
and: "I have a factory"
|
||||||
|
@Subject
|
||||||
|
def factory = new TestCommandQueueFactory(tests, testFactory)
|
||||||
|
|
||||||
|
when: "Factory build the queue"
|
||||||
|
def queue = factory.create()
|
||||||
|
|
||||||
|
then: "the order is the same"
|
||||||
|
queue[0].method.getName() == "check"
|
||||||
|
queue[1].method.getName() == "setup"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,36 @@
|
|||||||
|
package space.kklochko.simple_jbdd.tests.factories
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTest
|
||||||
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTestWithoutTitle
|
||||||
|
import space.kklochko.simple_jbdd.tests.Test
|
||||||
|
import space.kklochko.simple_jbdd.tests.commands.decorators.BlockDecorator
|
||||||
|
import spock.lang.Narrative
|
||||||
|
import spock.lang.Specification
|
||||||
|
import spock.lang.Subject
|
||||||
|
import spock.lang.Title
|
||||||
|
|
||||||
|
@Narrative("""The factory must generate a queue of the test commands, so
|
||||||
|
those tests check if factory generate them right.
|
||||||
|
""")
|
||||||
|
@Title("Unit tests for TestCommandQueueFactory")
|
||||||
|
class TestCommandQueueFactorySpec extends Specification {
|
||||||
|
def "Factory generate the queue and its size is 2."() {
|
||||||
|
given: "I have a list of tests"
|
||||||
|
def tests = [Mock(SimpleThenTest), Mock(SimpleThenTestWithoutTitle)]
|
||||||
|
|
||||||
|
and: "I have a test factory"
|
||||||
|
def testFactory = Stub(TestCommandFactory)
|
||||||
|
testFactory.create() >>> [Mock(BlockDecorator<Test>)]*2
|
||||||
|
|
||||||
|
and: "I have the factory"
|
||||||
|
@Subject
|
||||||
|
def factory = new TestCommandQueueFactory(tests, testFactory)
|
||||||
|
|
||||||
|
when: "Factory build the queue"
|
||||||
|
def queue = factory.create()
|
||||||
|
|
||||||
|
then: "the size is 2"
|
||||||
|
2 == queue.size()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in new issue