diff --git a/testing/pom.xml b/testing/pom.xml index 72ec2b2f0c..8f5c6ddb3d 100644 --- a/testing/pom.xml +++ b/testing/pom.xml @@ -86,6 +86,12 @@ jgotesting ${jgotesting.version} test + + + org.jukito + jukito + 1.5 + test diff --git a/testing/src/main/java/com/baeldung/introductionjukito/Calculator.java b/testing/src/main/java/com/baeldung/introductionjukito/Calculator.java new file mode 100644 index 0000000000..fd75e1bd9e --- /dev/null +++ b/testing/src/main/java/com/baeldung/introductionjukito/Calculator.java @@ -0,0 +1,7 @@ +package com.baeldung.introductionjukito; + +public interface Calculator { + + public double add(double a, double b); + +} diff --git a/testing/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java b/testing/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java new file mode 100644 index 0000000000..2501569afc --- /dev/null +++ b/testing/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java @@ -0,0 +1,5 @@ +package com.baeldung.introductionjukito; + +public class ScientificCalculator extends SimpleCalculator { + +} diff --git a/testing/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java b/testing/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java new file mode 100644 index 0000000000..933baa3cd0 --- /dev/null +++ b/testing/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java @@ -0,0 +1,10 @@ +package com.baeldung.introductionjukito; + +public class SimpleCalculator implements Calculator { + + @Override + public double add(double a, double b) { + return a+b; + } + +} diff --git a/testing/src/test/java/com/baeldung/introductionjukito/CalculatorTest.java b/testing/src/test/java/com/baeldung/introductionjukito/CalculatorTest.java new file mode 100644 index 0000000000..313e1d2938 --- /dev/null +++ b/testing/src/test/java/com/baeldung/introductionjukito/CalculatorTest.java @@ -0,0 +1,62 @@ +package com.baeldung.introductionjukito; + +import org.jukito.All; +import org.jukito.JukitoModule; +import org.jukito.JukitoRunner; +import org.junit.Test; +import org.junit.runner.RunWith; +import static org.junit.Assert.*; + +@RunWith(JukitoRunner.class) +public class CalculatorTest { + + public static class Module extends JukitoModule { + + @Override + protected void configureTest() { + bindMany(Calculator.class, SimpleCalculator.class, + ScientificCalculator.class); + bindManyInstances(AdditionTest.class, new AdditionTest(1, 1, 2), + new AdditionTest(10, 10, 20), + new AdditionTest(18, 24, 42)); + bindManyNamedInstances(Integer.class, "even", 2, 4, 6); + bindManyNamedInstances(Integer.class, "odd", 1, 3, 5); + } + } + + public static class AdditionTest { + + int a; + int b; + int expected; + + public AdditionTest(int a, int b, int expected) { + this.a = a; + this.b = b; + this.expected = expected; + } + } + + @Test + public void givenTwoNumbers_WhenAdd_ThenSumBoth(@All Calculator calc) { + double result = calc.add(1, 1); + assertEquals(2, result, .1); + } + + @Test + public void givenTwoNumbers_WhenAdd_ThenSumBoth(@All Calculator calc, + @All AdditionTest addTest) { + double result = calc.add(addTest.a, addTest.b); + assertEquals(addTest.expected, result, .1); + } + + @Test + public void givenEvenNumbers_whenPrint_thenOutput(@All("even") Integer i) { + System.out.println("even " + i); + } + + @Test + public void givenOddNumbers_whenPrint_thenOutput(@All("odd") Integer i) { + System.out.println("odd " + i); + } +}