Compare commits
6
Commits
0.1.2
...
ca1e3d5670
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ca1e3d5670 | ||
|
|
08c85459a7 | ||
|
|
9edbca09cf | ||
|
|
b3a010f6e9 | ||
|
|
b1332c838b | ||
|
|
df1261f31c |
+24
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: gradle
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: test
|
||||||
|
image: gradle:8.3.0-jdk17-graal
|
||||||
|
commands:
|
||||||
|
- gradle assemble
|
||||||
|
- gradle check
|
||||||
|
|
||||||
|
---
|
||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: maven
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: test
|
||||||
|
image: maven:3.9.4-eclipse-temurin-17-alpine
|
||||||
|
commands:
|
||||||
|
- mvn install -DskipTests=true -Dmaven.javadoc.skip=true -B -V
|
||||||
|
- mvn test -B
|
||||||
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package space.kklochko.simple_jbdd.annotations;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Target(ElementType.METHOD)
|
||||||
|
public @interface Given {
|
||||||
|
String value() default "Given";
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package space.kklochko.simple_jbdd.annotations;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Target(ElementType.METHOD)
|
||||||
|
public @interface Then {
|
||||||
|
String value() default "Then";
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
package space.kklochko.simple_jbdd.annotations;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Target(ElementType.METHOD)
|
||||||
|
public @interface When {
|
||||||
|
String value() default "When";
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
package space.kklochko.simple_jbdd.test_examples;
|
|
||||||
|
|
||||||
public class Sum {
|
|
||||||
static int sum(int a, int b) {
|
|
||||||
return a + b;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
package space.kklochko.simple_jbdd.test_examples.samples;
|
||||||
|
|
||||||
|
public class Sum {
|
||||||
|
public static int sum(int a, int b) {
|
||||||
|
return a + b;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+12
@@ -0,0 +1,12 @@
|
|||||||
|
package space.kklochko.simple_jbdd.test_examples.tests;
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.annotations.Then;
|
||||||
|
import space.kklochko.simple_jbdd.tests.Test;
|
||||||
|
|
||||||
|
public class SimpleFailedThenTest extends Test {
|
||||||
|
@Then
|
||||||
|
public void check() {
|
||||||
|
assert 30 == 10 + 20 + 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
package space.kklochko.simple_jbdd.test_examples.tests;
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.annotations.Given;
|
||||||
|
import space.kklochko.simple_jbdd.annotations.Then;
|
||||||
|
import space.kklochko.simple_jbdd.annotations.When;
|
||||||
|
import space.kklochko.simple_jbdd.test_examples.samples.Sum;
|
||||||
|
import space.kklochko.simple_jbdd.tests.Test;
|
||||||
|
|
||||||
|
public class SimpleGivenWhenThenTest extends Test {
|
||||||
|
private Sum sum;
|
||||||
|
private int a;
|
||||||
|
private int b;
|
||||||
|
|
||||||
|
@Given
|
||||||
|
void setup() {
|
||||||
|
sum = new Sum();
|
||||||
|
}
|
||||||
|
|
||||||
|
@When
|
||||||
|
void trigger() {
|
||||||
|
a = 10;
|
||||||
|
b = 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Then
|
||||||
|
void check() {
|
||||||
|
assert 30 == sum.sum(a, b);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
package space.kklochko.simple_jbdd.test_examples.tests;
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.annotations.Then;
|
||||||
|
import space.kklochko.simple_jbdd.tests.Test;
|
||||||
|
|
||||||
|
public class SimpleThenTest extends Test {
|
||||||
|
@Then
|
||||||
|
public void check() {
|
||||||
|
assert 30 == 10 + 20;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
package space.kklochko.simple_jbdd.tests;
|
||||||
|
|
||||||
|
public abstract class Test {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package space.kklochko.simple_jbdd.tests.factories;
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.annotations.Given;
|
||||||
|
import space.kklochko.simple_jbdd.annotations.Then;
|
||||||
|
import space.kklochko.simple_jbdd.annotations.When;
|
||||||
|
import space.kklochko.simple_jbdd.tests.Test;
|
||||||
|
|
||||||
|
import java.lang.annotation.Annotation;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.TreeMap;
|
||||||
|
|
||||||
|
public class TestCommandFactory {
|
||||||
|
public <T extends Test> void create(T input) {
|
||||||
|
Class<?> aClass = input.getClass();
|
||||||
|
Map<String, Method> test_methods = this.getTestMethods(aClass);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected <T extends Test> Map<String, Method> getTestMethods(Class<?> aClass) {
|
||||||
|
Map<String, Method> test_methods = new TreeMap<String, Method>();
|
||||||
|
|
||||||
|
for(Method method : aClass.getDeclaredMethods()) {
|
||||||
|
Annotation[] annotations = method.getAnnotations();
|
||||||
|
|
||||||
|
if (annotations.length == 0)
|
||||||
|
continue;
|
||||||
|
|
||||||
|
if(method.isAnnotationPresent(Given.class))
|
||||||
|
test_methods.put("Given", method);
|
||||||
|
|
||||||
|
if(method.isAnnotationPresent(When.class))
|
||||||
|
test_methods.put("When", method);
|
||||||
|
|
||||||
|
if(method.isAnnotationPresent(Then.class))
|
||||||
|
test_methods.put("Then", method);
|
||||||
|
}
|
||||||
|
|
||||||
|
return test_methods;
|
||||||
|
}
|
||||||
|
}
|
||||||
+2
-1
@@ -1,5 +1,6 @@
|
|||||||
package space.kklochko.simple_jbdd.test_examples
|
package space.kklochko.simple_jbdd.test_examples.samples
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.test_examples.samples.Sum
|
||||||
import spock.lang.Specification
|
import spock.lang.Specification
|
||||||
|
|
||||||
class SumSpec extends Specification {
|
class SumSpec extends Specification {
|
||||||
+22
@@ -0,0 +1,22 @@
|
|||||||
|
package space.kklochko.simple_jbdd.tests.factories
|
||||||
|
|
||||||
|
import space.kklochko.simple_jbdd.test_examples.tests.SimpleThenTest
|
||||||
|
import space.kklochko.simple_jbdd.tests.factories.TestCommandFactory;
|
||||||
|
import spock.lang.Specification
|
||||||
|
|
||||||
|
class TestCommandFactorySpec extends Specification {
|
||||||
|
def "If the map of methods have one test block."() {
|
||||||
|
given: "I have a TestCommandFactory object"
|
||||||
|
def factory = new TestCommandFactory();
|
||||||
|
|
||||||
|
and: "I also have a SimpleThenTest object"
|
||||||
|
def simpleThenTest = new SimpleThenTest()
|
||||||
|
|
||||||
|
when: "If a test have only one block"
|
||||||
|
def map = factory.getTestMethods(simpleThenTest.getClass())
|
||||||
|
|
||||||
|
then: "the map size is 1 method"
|
||||||
|
1 == map.size()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
Reference in New Issue
Block a user