Update the tests to test the multi-block test.
continuous-integration/drone/tag Build is passing Details

main 0.12.1
KKlochko 2 years ago
parent d69cf31964
commit 95a29a14fe

@ -1,5 +1,6 @@
package space.kklochko.simple_jbdd.tests.factories package space.kklochko.simple_jbdd.tests.factories
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenGivenWhenWhenThenThenTest
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenWhenThenTest 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.test_examples.tests.SimpleThenTestWithoutTitle import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTestWithoutTitle
@ -14,19 +15,27 @@ those tests check if factory generate them right.
""") """)
@Title("Unit tests for TestCommandFactory") @Title("Unit tests for TestCommandFactory")
class TestCommandFactorySpec extends Specification { class TestCommandFactorySpec extends Specification {
def "If the map of methods have one test block."() { def "The command have the same block count."() {
given: "I have a TestCommandFactory object" given: "I have a TestCommandFactory object"
@Subject @Subject
def factory = new TestCommandFactory(); def factory = new TestCommandFactory();
and: "I also have a SimpleThenTest object" when: "If a test command have blocks"
def simpleThenTest = new SimpleThenTest() def map = factory.getTestMethods(testClass.getClass())
when: "If a test have only one block" def count = map.values()
def map = factory.getTestMethods(simpleThenTest.getClass()) .stream()
.map {it.size()}
.reduce(0) { acc, num -> acc + num }
then: "the map size is 1 method" then: "the command have the expected block count"
1 == map.size() expectedBlockCount == count
where:
testClass || expectedBlockCount
new SimpleThenTest() || 1
new SimpleGivenWhenThenTest() || 3
new SimpleGivenGivenWhenWhenThenThenTest() || 6
} }
def "createTest() sets the title to a class name if no Title annotation."() { def "createTest() sets the title to a class name if no Title annotation."() {
@ -63,34 +72,22 @@ class TestCommandFactorySpec extends Specification {
title == test.getLabels()['Title'] title == test.getLabels()['Title']
} }
def "createTest() build a Test with only Then."() { def "createTest() build a TestCommand that contains the expected blocks."() {
given: "I have a test factory" given: "I have a test factory"
@Subject @Subject
def factory = new TestCommandFactory() def factory = new TestCommandFactory()
and: "I have a test class with Title"
def testClass = new SimpleThenTest()
when: "I build a test" when: "I build a test"
def test = factory.create(testClass) def test = factory.create(testClass)
then: "The test have title and then method" then: "The test have the expected blocks"
['Title', 'Then'].toSet() == test.getLabels().keySet() expectedBlocks.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" where:
['Title', 'Given', 'When', 'Then'].toSet() == test.getLabels().keySet() testClass || expectedBlocks
new SimpleThenTest() || ['Title', 'Then']
new SimpleGivenWhenThenTest() || ['Title', 'Given', 'When', 'Then']
new SimpleGivenGivenWhenWhenThenThenTest() || ['Title', 'Given', 'When', 'Then']
} }
} }

@ -22,7 +22,7 @@ class IntegratedClassLoader extends Specification {
def classes = loader.load() def classes = loader.load()
then: "Checking that the test result is expected" then: "Checking that the test result is expected"
3 == classes.size() 4 == classes.size()
} }
def "The classes must be represent the Test interface."() { def "The classes must be represent the Test interface."() {

@ -19,7 +19,7 @@ class IntegratedNameClassLoader extends Specification {
def classNames = loader.load() def classNames = loader.load()
then: "Checking that the test result is expected" then: "Checking that the test result is expected"
3 == classNames.size() 4 == classNames.size()
} }
} }

@ -1,6 +1,7 @@
package space.kklochko.simple_jbdd.tests.runners package space.kklochko.simple_jbdd.tests.runners
import space.kklochko.simple_jbdd.test_examples.tests.SimpleFailedThenTest import space.kklochko.simple_jbdd.test_examples.tests.SimpleFailedThenTest
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenGivenWhenWhenThenThenTest
import space.kklochko.simple_jbdd.test_examples.tests.SimpleGivenWhenThenTest 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.test_examples.tests.SimpleThenTestWithoutTitle import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTestWithoutTitle
@ -33,10 +34,11 @@ class IntegratedSimpleTestRunnerSpec extends Specification {
result == expectedResult result == expectedResult
where: "Possible variants of tests" where: "Possible variants of tests"
testObject || expectedResult testObject || expectedResult
new SimpleThenTest() || true new SimpleThenTest() || true
new SimpleGivenWhenThenTest() || true new SimpleGivenWhenThenTest() || true
new SimpleThenTestWithoutTitle() || true new SimpleThenTestWithoutTitle() || true
new SimpleFailedThenTest() || false new SimpleFailedThenTest() || false
new SimpleGivenGivenWhenWhenThenThenTest() || true
} }
} }

Loading…
Cancel
Save