diff --git a/src/test/groovy/space/kklochko/simple_jbdd/tests/factories/TestCommandFactorySpec.groovy b/src/test/groovy/space/kklochko/simple_jbdd/tests/factories/TestCommandFactorySpec.groovy index 882428f..785d6a3 100644 --- a/src/test/groovy/space/kklochko/simple_jbdd/tests/factories/TestCommandFactorySpec.groovy +++ b/src/test/groovy/space/kklochko/simple_jbdd/tests/factories/TestCommandFactorySpec.groovy @@ -1,5 +1,6 @@ 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.SimpleThenTest 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") 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" @Subject def factory = new TestCommandFactory(); - and: "I also have a SimpleThenTest object" - def simpleThenTest = new SimpleThenTest() + when: "If a test command have blocks" + def map = factory.getTestMethods(testClass.getClass()) - when: "If a test have only one block" - def map = factory.getTestMethods(simpleThenTest.getClass()) + def count = map.values() + .stream() + .map {it.size()} + .reduce(0) { acc, num -> acc + num } - then: "the map size is 1 method" - 1 == map.size() + then: "the command have the expected block count" + 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."() { @@ -63,34 +72,22 @@ class TestCommandFactorySpec extends Specification { 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" @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 the expected blocks" + expectedBlocks.toSet() == test.getLabels().keySet() - then: "The test have title and then method" - ['Title', 'Given', 'When', 'Then'].toSet() == test.getLabels().keySet() + where: + testClass || expectedBlocks + new SimpleThenTest() || ['Title', 'Then'] + new SimpleGivenWhenThenTest() || ['Title', 'Given', 'When', 'Then'] + new SimpleGivenGivenWhenWhenThenThenTest() || ['Title', 'Given', 'When', 'Then'] } } diff --git a/src/test/groovy/space/kklochko/simple_jbdd/tests/loaders/IntegratedClassLoader.groovy b/src/test/groovy/space/kklochko/simple_jbdd/tests/loaders/IntegratedClassLoader.groovy index 78b75f5..bf5fd23 100644 --- a/src/test/groovy/space/kklochko/simple_jbdd/tests/loaders/IntegratedClassLoader.groovy +++ b/src/test/groovy/space/kklochko/simple_jbdd/tests/loaders/IntegratedClassLoader.groovy @@ -22,7 +22,7 @@ class IntegratedClassLoader extends Specification { def classes = loader.load() then: "Checking that the test result is expected" - 3 == classes.size() + 4 == classes.size() } def "The classes must be represent the Test interface."() { diff --git a/src/test/groovy/space/kklochko/simple_jbdd/tests/loaders/IntegratedNameClassLoader.groovy b/src/test/groovy/space/kklochko/simple_jbdd/tests/loaders/IntegratedNameClassLoader.groovy index dd6cf34..e6ecd3c 100644 --- a/src/test/groovy/space/kklochko/simple_jbdd/tests/loaders/IntegratedNameClassLoader.groovy +++ b/src/test/groovy/space/kklochko/simple_jbdd/tests/loaders/IntegratedNameClassLoader.groovy @@ -19,7 +19,7 @@ class IntegratedNameClassLoader extends Specification { def classNames = loader.load() then: "Checking that the test result is expected" - 3 == classNames.size() + 4 == classNames.size() } } diff --git a/src/test/groovy/space/kklochko/simple_jbdd/tests/runners/IntegratedSimpleTestRunnerSpec.groovy b/src/test/groovy/space/kklochko/simple_jbdd/tests/runners/IntegratedSimpleTestRunnerSpec.groovy index 4fa2794..262b7fc 100644 --- a/src/test/groovy/space/kklochko/simple_jbdd/tests/runners/IntegratedSimpleTestRunnerSpec.groovy +++ b/src/test/groovy/space/kklochko/simple_jbdd/tests/runners/IntegratedSimpleTestRunnerSpec.groovy @@ -1,6 +1,7 @@ package space.kklochko.simple_jbdd.tests.runners 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.SimpleThenTest import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTestWithoutTitle @@ -33,10 +34,11 @@ class IntegratedSimpleTestRunnerSpec extends Specification { result == expectedResult where: "Possible variants of tests" - testObject || expectedResult - new SimpleThenTest() || true - new SimpleGivenWhenThenTest() || true - new SimpleThenTestWithoutTitle() || true - new SimpleFailedThenTest() || false + testObject || expectedResult + new SimpleThenTest() || true + new SimpleGivenWhenThenTest() || true + new SimpleThenTestWithoutTitle() || true + new SimpleFailedThenTest() || false + new SimpleGivenGivenWhenWhenThenThenTest() || true } }