|
|
@ -1,12 +1,22 @@
|
|
|
|
package space.kklochko.simple_jbdd.tests.factories
|
|
|
|
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.SimpleThenTest
|
|
|
|
import space.kklochko.simple_jbdd.tests.factories.TestCommandFactory;
|
|
|
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTestWithoutTitle
|
|
|
|
|
|
|
|
import space.kklochko.simple_jbdd.tests.factories.TestCommandFactory
|
|
|
|
|
|
|
|
import spock.lang.Narrative;
|
|
|
|
import spock.lang.Specification
|
|
|
|
import spock.lang.Specification
|
|
|
|
|
|
|
|
import spock.lang.Subject
|
|
|
|
|
|
|
|
import spock.lang.Title
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Narrative("""The factory must generate a test command, so
|
|
|
|
|
|
|
|
those tests check if factory generate them right.
|
|
|
|
|
|
|
|
""")
|
|
|
|
|
|
|
|
@Title("Unit test for TestCommandFactory")
|
|
|
|
class TestCommandFactorySpec extends Specification {
|
|
|
|
class TestCommandFactorySpec extends Specification {
|
|
|
|
def "If the map of methods have one test block."() {
|
|
|
|
def "If the map of methods have one test block."() {
|
|
|
|
given: "I have a TestCommandFactory object"
|
|
|
|
given: "I have a TestCommandFactory object"
|
|
|
|
|
|
|
|
@Subject
|
|
|
|
def factory = new TestCommandFactory();
|
|
|
|
def factory = new TestCommandFactory();
|
|
|
|
|
|
|
|
|
|
|
|
and: "I also have a SimpleThenTest object"
|
|
|
|
and: "I also have a SimpleThenTest object"
|
|
|
@ -18,5 +28,69 @@ class TestCommandFactorySpec extends Specification {
|
|
|
|
then: "the map size is 1 method"
|
|
|
|
then: "the map size is 1 method"
|
|
|
|
1 == map.size()
|
|
|
|
1 == map.size()
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def "createTest() sets the title to a class name if no Title annotation."() {
|
|
|
|
|
|
|
|
given: "I have a test factory"
|
|
|
|
|
|
|
|
@Subject
|
|
|
|
|
|
|
|
def factory = new TestCommandFactory()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and: "I have a test class without Title"
|
|
|
|
|
|
|
|
def testClass = new SimpleThenTestWithoutTitle()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
when: "I build a test"
|
|
|
|
|
|
|
|
def test = factory.create(testClass)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
then: "The test have title as the test class"
|
|
|
|
|
|
|
|
testClass.class.getName() == test.getLabels()['Title']
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def "createTest() sets the title to a value of the Title annotation."() {
|
|
|
|
|
|
|
|
given: "I have a test factory"
|
|
|
|
|
|
|
|
@Subject
|
|
|
|
|
|
|
|
def factory = new TestCommandFactory()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and: "I have a test class with Title"
|
|
|
|
|
|
|
|
def testClass = new SimpleThenTest()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and: "and the title of the annotation"
|
|
|
|
|
|
|
|
def titleClass = space.kklochko.simple_jbdd.annotations.Title.class
|
|
|
|
|
|
|
|
def title = testClass.getClass().getAnnotation(titleClass).value()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
when: "I build a test"
|
|
|
|
|
|
|
|
def test = factory.create(testClass)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
then: "The test have title as the test class"
|
|
|
|
|
|
|
|
title == test.getLabels()['Title']
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def "createTest() build a Test with only Then."() {
|
|
|
|
|
|
|
|
given: "I have a test factory"
|
|
|
|
|
|
|
|
@Subject
|
|
|
|
|
|
|
|
def factory = new TestCommandFactory()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and: "I have a test class with Title"
|
|
|
|
|
|
|
|
def testClass = new SimpleThenTest()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
when: "I build a test"
|
|
|
|
|
|
|
|
def test = factory.create(testClass)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
then: "The test have title and then method"
|
|
|
|
|
|
|
|
['Title', 'Then'].toSet() == test.getLabels().keySet()
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def "createTest() build a Test with Given-When-Then."() {
|
|
|
|
|
|
|
|
given: "I have a test factory"
|
|
|
|
|
|
|
|
@Subject
|
|
|
|
|
|
|
|
def factory = new TestCommandFactory()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and: "I have a test class with Title and Given-When-Then"
|
|
|
|
|
|
|
|
def testClass = new SimpleGivenWhenThenTest()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
when: "I build a test"
|
|
|
|
|
|
|
|
def test = factory.create(testClass)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
then: "The test have title and then method"
|
|
|
|
|
|
|
|
['Title', 'Given', 'When', 'Then'].toSet() == test.getLabels().keySet()
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|