diff --git a/assertion-libraries/pom.xml b/assertion-libraries/pom.xml
new file mode 100644
index 0000000000..274806d336
--- /dev/null
+++ b/assertion-libraries/pom.xml
@@ -0,0 +1,81 @@
+
+ 4.0.0
+ com.baeldung
+ assertion-libraries
+ 0.1-SNAPSHOT
+ assertion-libraries
+
+
+ com.baeldung
+ parent-java
+ 0.0.1-SNAPSHOT
+ ../parent-java
+
+
+
+
+ com.google.truth
+ truth
+ ${truth.version}
+
+
+ com.google.truth.extensions
+ truth-java8-extension
+ ${truth.version}
+ test
+
+
+ org.assertj
+ assertj-guava
+ ${assertj-guava.version}
+
+
+ org.assertj
+ assertj-core
+ ${assertj-core.version}
+ test
+
+
+ org.javalite
+ javalite-common
+ ${javalite.version}
+
+
+ org.jgotesting
+ jgotesting
+ ${jgotesting.version}
+ test
+
+
+
+
+
+
+
+ org.assertj
+ assertj-assertions-generator-maven-plugin
+ ${assertj-generator.version}
+
+
+ com.baeldung.testing.assertj.custom.Person
+
+
+
+
+
+
+
+ 0.32
+ 3.1.0
+ 3.9.0
+ 2.1.0
+ 1.4.13
+ 0.12
+
+
+
+
+
+
+
diff --git a/testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Dog.java b/assertion-libraries/src/main/java/com/baeldung/assertj/Dog.java
similarity index 88%
rename from testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Dog.java
rename to assertion-libraries/src/main/java/com/baeldung/assertj/Dog.java
index 7a1c158500..6c049e1a10 100644
--- a/testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Dog.java
+++ b/assertion-libraries/src/main/java/com/baeldung/assertj/Dog.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj;
+package com.baeldung.assertj;
public class Dog {
private String name;
diff --git a/testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Member.java b/assertion-libraries/src/main/java/com/baeldung/assertj/Member.java
similarity index 88%
rename from testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Member.java
rename to assertion-libraries/src/main/java/com/baeldung/assertj/Member.java
index a0b3d0daac..baf3c2df52 100644
--- a/testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Member.java
+++ b/assertion-libraries/src/main/java/com/baeldung/assertj/Member.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj;
+package com.baeldung.assertj;
public class Member {
private String name;
diff --git a/testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Person.java b/assertion-libraries/src/main/java/com/baeldung/assertj/Person.java
similarity index 88%
rename from testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Person.java
rename to assertion-libraries/src/main/java/com/baeldung/assertj/Person.java
index 43e9ff8884..09b16b4f5b 100644
--- a/testing-modules/testing/src/main/java/com/baeldung/testing/assertj/Person.java
+++ b/assertion-libraries/src/main/java/com/baeldung/assertj/Person.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj;
+package com.baeldung.assertj;
public class Person {
private String name;
diff --git a/testing-modules/testing/src/main/java/com/baeldung/testing/assertj/custom/Person.java b/assertion-libraries/src/main/java/com/baeldung/assertj/custom/Person.java
similarity index 93%
rename from testing-modules/testing/src/main/java/com/baeldung/testing/assertj/custom/Person.java
rename to assertion-libraries/src/main/java/com/baeldung/assertj/custom/Person.java
index 34afc480e4..5506a56b51 100644
--- a/testing-modules/testing/src/main/java/com/baeldung/testing/assertj/custom/Person.java
+++ b/assertion-libraries/src/main/java/com/baeldung/assertj/custom/Person.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj.custom;
+package com.baeldung.assertj.custom;
import java.util.ArrayList;
import java.util.List;
diff --git a/testing-modules/testing/src/main/java/com/baeldung/jspec/Animal.java b/assertion-libraries/src/main/java/com/baeldung/jspec/Animal.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/jspec/Animal.java
rename to assertion-libraries/src/main/java/com/baeldung/jspec/Animal.java
diff --git a/testing-modules/testing/src/main/java/com/baeldung/jspec/Cage.java b/assertion-libraries/src/main/java/com/baeldung/jspec/Cage.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/jspec/Cage.java
rename to assertion-libraries/src/main/java/com/baeldung/jspec/Cage.java
diff --git a/testing-modules/testing/src/main/java/com/baeldung/jspec/Cat.java b/assertion-libraries/src/main/java/com/baeldung/jspec/Cat.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/jspec/Cat.java
rename to assertion-libraries/src/main/java/com/baeldung/jspec/Cat.java
diff --git a/testing-modules/testing/src/main/java/com/baeldung/jspec/Dog.java b/assertion-libraries/src/main/java/com/baeldung/jspec/Dog.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/jspec/Dog.java
rename to assertion-libraries/src/main/java/com/baeldung/jspec/Dog.java
diff --git a/testing-modules/testing/src/main/java/com/baeldung/junit/Calculator.java b/assertion-libraries/src/main/java/com/baeldung/junit/Calculator.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/junit/Calculator.java
rename to assertion-libraries/src/main/java/com/baeldung/junit/Calculator.java
diff --git a/testing-modules/testing/src/main/java/com/baeldung/testing/truth/User.java b/assertion-libraries/src/main/java/com/baeldung/truth/User.java
similarity index 97%
rename from testing-modules/testing/src/main/java/com/baeldung/testing/truth/User.java
rename to assertion-libraries/src/main/java/com/baeldung/truth/User.java
index fe857dd265..2b5ffde19f 100644
--- a/testing-modules/testing/src/main/java/com/baeldung/testing/truth/User.java
+++ b/assertion-libraries/src/main/java/com/baeldung/truth/User.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.truth;
+package com.baeldung.truth;
import java.util.Arrays;
import java.util.List;
diff --git a/testing-modules/testing/src/main/java/com/baeldung/testing/truth/UserSubject.java b/assertion-libraries/src/main/java/com/baeldung/truth/UserSubject.java
similarity index 97%
rename from testing-modules/testing/src/main/java/com/baeldung/testing/truth/UserSubject.java
rename to assertion-libraries/src/main/java/com/baeldung/truth/UserSubject.java
index 2fd84085a0..b478043ad8 100644
--- a/testing-modules/testing/src/main/java/com/baeldung/testing/truth/UserSubject.java
+++ b/assertion-libraries/src/main/java/com/baeldung/truth/UserSubject.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.truth;
+package com.baeldung.truth;
import com.google.common.truth.ComparableSubject;
import com.google.common.truth.FailureStrategy;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJConditionUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/assertj/AssertJConditionUnitTest.java
similarity index 98%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJConditionUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/assertj/AssertJConditionUnitTest.java
index 6fa09d8dfc..ec2d93500f 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJConditionUnitTest.java
+++ b/assertion-libraries/src/test/java/com/baeldung/assertj/AssertJConditionUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj;
+package com.baeldung.assertj;
import static org.assertj.core.api.Assertions.allOf;
import static org.assertj.core.api.Assertions.anyOf;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJCoreUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/assertj/AssertJCoreUnitTest.java
similarity index 98%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJCoreUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/assertj/AssertJCoreUnitTest.java
index 6836bb79c5..73b9b373a1 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJCoreUnitTest.java
+++ b/assertion-libraries/src/test/java/com/baeldung/assertj/AssertJCoreUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj;
+package com.baeldung.assertj;
import org.assertj.core.util.Maps;
import org.junit.Ignore;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJGuavaUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/assertj/AssertJGuavaUnitTest.java
similarity index 98%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJGuavaUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/assertj/AssertJGuavaUnitTest.java
index 2056d7e61a..6a552aee78 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJGuavaUnitTest.java
+++ b/assertion-libraries/src/test/java/com/baeldung/assertj/AssertJGuavaUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj;
+package com.baeldung.assertj;
import com.google.common.base.Optional;
import com.google.common.collect.ArrayListMultimap;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJJava8UnitTest.java b/assertion-libraries/src/test/java/com/baeldung/assertj/AssertJJava8UnitTest.java
similarity index 98%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJJava8UnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/assertj/AssertJJava8UnitTest.java
index 7ec6d0caa7..a2f58d677d 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/AssertJJava8UnitTest.java
+++ b/assertion-libraries/src/test/java/com/baeldung/assertj/AssertJJava8UnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj;
+package com.baeldung.assertj;
import org.junit.Test;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/custom/AssertJCustomAssertionsUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/assertj/custom/AssertJCustomAssertionsUnitTest.java
similarity index 91%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/assertj/custom/AssertJCustomAssertionsUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/assertj/custom/AssertJCustomAssertionsUnitTest.java
index 4c09311bac..98f50568a8 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/custom/AssertJCustomAssertionsUnitTest.java
+++ b/assertion-libraries/src/test/java/com/baeldung/assertj/custom/AssertJCustomAssertionsUnitTest.java
@@ -1,6 +1,6 @@
-package com.baeldung.testing.assertj.custom;
+package com.baeldung.assertj.custom;
-import static com.baeldung.testing.assertj.custom.Assertions.assertThat;
+import static com.baeldung.assertj.custom.Assertions.assertThat;
import static org.junit.Assert.fail;
import org.junit.Rule;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/custom/Assertions.java b/assertion-libraries/src/test/java/com/baeldung/assertj/custom/Assertions.java
similarity index 81%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/assertj/custom/Assertions.java
rename to assertion-libraries/src/test/java/com/baeldung/assertj/custom/Assertions.java
index fcffb8fc6c..3e1021851e 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/custom/Assertions.java
+++ b/assertion-libraries/src/test/java/com/baeldung/assertj/custom/Assertions.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj.custom;
+package com.baeldung.assertj.custom;
public class Assertions {
public static PersonAssert assertThat(Person actual) {
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/custom/PersonAssert.java b/assertion-libraries/src/test/java/com/baeldung/assertj/custom/PersonAssert.java
similarity index 95%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/assertj/custom/PersonAssert.java
rename to assertion-libraries/src/test/java/com/baeldung/assertj/custom/PersonAssert.java
index d6cc585e96..5be093644a 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/custom/PersonAssert.java
+++ b/assertion-libraries/src/test/java/com/baeldung/assertj/custom/PersonAssert.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj.custom;
+package com.baeldung.assertj.custom;
import org.assertj.core.api.AbstractAssert;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java b/assertion-libraries/src/test/java/com/baeldung/assertj/exceptions/Java7StyleAssertions.java
similarity index 94%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java
rename to assertion-libraries/src/test/java/com/baeldung/assertj/exceptions/Java7StyleAssertions.java
index 07a5be1118..ab93f8eac7 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java7StyleAssertions.java
+++ b/assertion-libraries/src/test/java/com/baeldung/assertj/exceptions/Java7StyleAssertions.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj.exceptions;
+package com.baeldung.assertj.exceptions;
import static org.assertj.core.api.Assertions.assertThat;
import static org.assertj.core.api.Assertions.fail;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java b/assertion-libraries/src/test/java/com/baeldung/assertj/exceptions/Java8StyleAssertions.java
similarity index 97%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java
rename to assertion-libraries/src/test/java/com/baeldung/assertj/exceptions/Java8StyleAssertions.java
index 973b921654..4d4e2aedfc 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/assertj/exceptions/Java8StyleAssertions.java
+++ b/assertion-libraries/src/test/java/com/baeldung/assertj/exceptions/Java8StyleAssertions.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.assertj.exceptions;
+package com.baeldung.assertj.exceptions;
import static org.assertj.core.api.Assertions.assertThatThrownBy;
import static org.assertj.core.api.Assertions.assertThat;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/jgotesting/JGoTestingUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/jgotesting/JGoTestingUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/jgotesting/JGoTestingUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/jgotesting/JGoTestingUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/jspec/CageUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/jspec/CageUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/jspec/CageUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/jspec/CageUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/jspec/JSpecUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/jspec/JSpecUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/jspec/JSpecUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/jspec/JSpecUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/junit/AdditionUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/junit/AdditionUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/junit/AdditionUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/junit/AdditionUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/junit/AssertionsUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/junit/AssertionsUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/junit/AssertionsUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/junit/AssertionsUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/junit/BlockingTestRunner.java b/assertion-libraries/src/test/java/com/baeldung/junit/BlockingTestRunner.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/junit/BlockingTestRunner.java
rename to assertion-libraries/src/test/java/com/baeldung/junit/BlockingTestRunner.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/junit/CalculatorUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/junit/CalculatorUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/junit/CalculatorUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/junit/CalculatorUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/junit/SubstractionUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/junit/SubstractionUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/junit/SubstractionUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/junit/SubstractionUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/junit/SuiteUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/junit/SuiteUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/junit/SuiteUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/junit/SuiteUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/junit/TestRunner.java b/assertion-libraries/src/test/java/com/baeldung/junit/TestRunner.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/junit/TestRunner.java
rename to assertion-libraries/src/test/java/com/baeldung/junit/TestRunner.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/truth/GoogleTruthUnitTest.java b/assertion-libraries/src/test/java/com/baeldung/truth/GoogleTruthUnitTest.java
similarity index 99%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/truth/GoogleTruthUnitTest.java
rename to assertion-libraries/src/test/java/com/baeldung/truth/GoogleTruthUnitTest.java
index 5be27db9db..b7919a29ca 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/truth/GoogleTruthUnitTest.java
+++ b/assertion-libraries/src/test/java/com/baeldung/truth/GoogleTruthUnitTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.truth;
+package com.baeldung.truth;
import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Multimap;
@@ -6,7 +6,7 @@ import com.google.common.collect.Range;
import com.google.common.collect.Table;
import com.google.common.collect.TreeBasedTable;
import com.google.common.collect.TreeMultiset;
-import static com.baeldung.testing.truth.UserSubject.*;
+import static com.baeldung.truth.UserSubject.*;
import static com.google.common.truth.Truth.*;
import static com.google.common.truth.Truth8.*;
import java.math.BigDecimal;
diff --git a/pom.xml b/pom.xml
index 2f27bdf6fd..d7485e1653 100644
--- a/pom.xml
+++ b/pom.xml
@@ -796,7 +796,9 @@
structurizr
struts-2
+ assertion-libraries
testing-modules
+ testing-modules-2
twilio
twitter4j
@@ -1490,7 +1492,9 @@
structurizr
struts-2
+ assertion-libraries
testing-modules
+ testing-modules-2
twilio
twitter4j
diff --git a/testing-modules-2/README.md b/testing-modules-2/README.md
new file mode 100644
index 0000000000..949ae7f760
--- /dev/null
+++ b/testing-modules-2/README.md
@@ -0,0 +1,5 @@
+
+## Testing Modules
+
+This is a aggregator module containing several modules focused on testing libraries 2.
+
diff --git a/testing-modules-2/pom.xml b/testing-modules-2/pom.xml
new file mode 100644
index 0000000000..c919dbe90a
--- /dev/null
+++ b/testing-modules-2/pom.xml
@@ -0,0 +1,48 @@
+
+
+ 4.0.0
+ testing-modules-2
+ testing-modules-2
+ pom
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+ ..
+
+
+
+
+ com.insightfullogic
+ lambda-behave
+ ${lambda-behave.version}
+
+
+ info.cukes
+ cucumber-junit
+ ${cucumber.version}
+ test
+
+
+ info.cukes
+ cucumber-java
+ ${cucumber.version}
+ test
+
+
+ info.cukes
+ cucumber-java8
+ ${cucumber.version}
+ test
+
+
+
+
+ 0.4
+ 1.2.5
+
+
+
+
diff --git a/testing-modules/testing/src/main/java/com/baeldung/cucumber/Calculator.java b/testing-modules-2/src/main/java/com/baeldung/cucumber/Calculator.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/cucumber/Calculator.java
rename to testing-modules-2/src/main/java/com/baeldung/cucumber/Calculator.java
diff --git a/testing-modules/testing/src/main/java/com/baeldung/lambdabehave/Calculator.java b/testing-modules-2/src/main/java/com/baeldung/lambdabehave/Calculator.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/lambdabehave/Calculator.java
rename to testing-modules-2/src/main/java/com/baeldung/lambdabehave/Calculator.java
diff --git a/testing-modules/testing/src/main/java/com/baeldung/testing/mutation/Palindrome.java b/testing-modules-2/src/main/java/com/baeldung/mutation/Palindrome.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/testing/mutation/Palindrome.java
rename to testing-modules-2/src/main/java/com/baeldung/mutation/Palindrome.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/calculator/CalculatorIntegrationTest.java b/testing-modules-2/src/test/java/com/baeldung/calculator/CalculatorIntegrationTest.java
similarity index 91%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/calculator/CalculatorIntegrationTest.java
rename to testing-modules-2/src/test/java/com/baeldung/calculator/CalculatorIntegrationTest.java
index 20bd62396c..00f666db2d 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/calculator/CalculatorIntegrationTest.java
+++ b/testing-modules-2/src/test/java/com/baeldung/calculator/CalculatorIntegrationTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.calculator;
+package com.baeldung.calculator;
import cucumber.api.CucumberOptions;
import cucumber.api.junit.Cucumber;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/calculator/CalculatorRunSteps.java b/testing-modules-2/src/test/java/com/baeldung/calculator/CalculatorRunSteps.java
similarity index 95%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/calculator/CalculatorRunSteps.java
rename to testing-modules-2/src/test/java/com/baeldung/calculator/CalculatorRunSteps.java
index ef6dff9617..7eda618566 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/calculator/CalculatorRunSteps.java
+++ b/testing-modules-2/src/test/java/com/baeldung/calculator/CalculatorRunSteps.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.calculator;
+package com.baeldung.calculator;
import com.baeldung.cucumber.Calculator;
import cucumber.api.java.Before;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/lambdabehave/CalculatorUnitTest.java b/testing-modules-2/src/test/java/com/baeldung/lambdabehave/CalculatorUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/lambdabehave/CalculatorUnitTest.java
rename to testing-modules-2/src/test/java/com/baeldung/lambdabehave/CalculatorUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/mutation/test/PalindromeUnitTest.java b/testing-modules-2/src/test/java/com/baeldung/mutation/PalindromeUnitTest.java
similarity index 90%
rename from testing-modules/testing/src/test/java/com/baeldung/mutation/test/PalindromeUnitTest.java
rename to testing-modules-2/src/test/java/com/baeldung/mutation/PalindromeUnitTest.java
index 5321735469..cb4830a6fb 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/mutation/test/PalindromeUnitTest.java
+++ b/testing-modules-2/src/test/java/com/baeldung/mutation/PalindromeUnitTest.java
@@ -1,11 +1,11 @@
-package com.baeldung.mutation.test;
+package com.baeldung.mutation;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import org.junit.Test;
-import com.baeldung.testing.mutation.Palindrome;
+import com.baeldung.mutation.Palindrome;
public class PalindromeUnitTest {
@Test
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/shopping/ShoppingIntegrationTest.java b/testing-modules-2/src/test/java/com/baeldung/shopping/ShoppingIntegrationTest.java
similarity index 86%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/shopping/ShoppingIntegrationTest.java
rename to testing-modules-2/src/test/java/com/baeldung/shopping/ShoppingIntegrationTest.java
index 7bf8641ed6..20fd65b02a 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/shopping/ShoppingIntegrationTest.java
+++ b/testing-modules-2/src/test/java/com/baeldung/shopping/ShoppingIntegrationTest.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.shopping;
+package com.baeldung.shopping;
import org.junit.runner.RunWith;
diff --git a/testing-modules/testing/src/test/java/com/baeldung/testing/shopping/ShoppingStepsDef.java b/testing-modules-2/src/test/java/com/baeldung/shopping/ShoppingStepsDef.java
similarity index 92%
rename from testing-modules/testing/src/test/java/com/baeldung/testing/shopping/ShoppingStepsDef.java
rename to testing-modules-2/src/test/java/com/baeldung/shopping/ShoppingStepsDef.java
index 2c4bf2eeae..c56ec95883 100644
--- a/testing-modules/testing/src/test/java/com/baeldung/testing/shopping/ShoppingStepsDef.java
+++ b/testing-modules-2/src/test/java/com/baeldung/shopping/ShoppingStepsDef.java
@@ -1,4 +1,4 @@
-package com.baeldung.testing.shopping;
+package com.baeldung.shopping;
import static org.junit.Assert.assertEquals;
import cucumber.api.java8.En;
diff --git a/testing-modules/testing/src/test/resources/features/calculator-scenario-outline.feature b/testing-modules-2/src/test/resources/features/calculator-scenario-outline.feature
similarity index 100%
rename from testing-modules/testing/src/test/resources/features/calculator-scenario-outline.feature
rename to testing-modules-2/src/test/resources/features/calculator-scenario-outline.feature
diff --git a/testing-modules/testing/src/test/resources/features/calculator.feature b/testing-modules-2/src/test/resources/features/calculator.feature
similarity index 100%
rename from testing-modules/testing/src/test/resources/features/calculator.feature
rename to testing-modules-2/src/test/resources/features/calculator.feature
diff --git a/testing-modules/testing/src/test/resources/features/shopping.feature b/testing-modules-2/src/test/resources/features/shopping.feature
similarity index 100%
rename from testing-modules/testing/src/test/resources/features/shopping.feature
rename to testing-modules-2/src/test/resources/features/shopping.feature
diff --git a/testing-modules/gatling/pom.xml b/testing-modules/gatling/pom.xml
index e708d939e4..37693ebfee 100644
--- a/testing-modules/gatling/pom.xml
+++ b/testing-modules/gatling/pom.xml
@@ -1,136 +1,136 @@
-
-
- 4.0.0
- org.baeldung
- gatling
- 1.0-SNAPSHOT
- gatling
-
-
- com.baeldung
- parent-modules
- 1.0.0-SNAPSHOT
- ../../
-
-
-
-
-
- io.gatling
- gatling-app
- ${gatling.version}
-
-
- io.gatling
- gatling-recorder
- ${gatling.version}
-
-
- io.gatling.highcharts
- gatling-charts-highcharts
- ${gatling.version}
-
-
- org.scala-lang
- scala-library
- ${scala.version}
-
-
-
-
-
-
- io.gatling.highcharts
- gatling-charts-highcharts
-
-
- io.gatling
- gatling-app
-
-
- io.gatling
- gatling-recorder
-
-
- org.scala-lang
- scala-library
-
-
-
-
- src/test/scala
-
-
-
- net.alchim31.maven
- scala-maven-plugin
- ${scala-maven-plugin.version}
-
-
-
-
-
- net.alchim31.maven
- scala-maven-plugin
-
-
-
- testCompile
-
-
-
-
- -Ydelambdafy:method
- -target:jvm-1.8
- -deprecation
- -feature
- -unchecked
- -language:implicitConversions
- -language:postfixOps
-
-
-
-
-
-
-
-
-
-
- simulation
-
-
-
- io.gatling
- gatling-maven-plugin
- ${gatling-maven-plugin.version}
-
-
- test
-
- execute
-
-
- true
-
-
-
-
-
-
-
-
-
-
- 1.8
- 1.8
- UTF-8
- 2.12.6
- 2.3.1
- 3.2.2
- 2.2.4
-
-
-
+
+
+ 4.0.0
+ org.baeldung
+ gatling
+ 1.0-SNAPSHOT
+ gatling
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+ ../../
+
+
+
+
+
+ io.gatling
+ gatling-app
+ ${gatling.version}
+
+
+ io.gatling
+ gatling-recorder
+ ${gatling.version}
+
+
+ io.gatling.highcharts
+ gatling-charts-highcharts
+ ${gatling.version}
+
+
+ org.scala-lang
+ scala-library
+ ${scala.version}
+
+
+
+
+
+
+ io.gatling.highcharts
+ gatling-charts-highcharts
+
+
+ io.gatling
+ gatling-app
+
+
+ io.gatling
+ gatling-recorder
+
+
+ org.scala-lang
+ scala-library
+
+
+
+
+ src/test/scala
+
+
+
+ net.alchim31.maven
+ scala-maven-plugin
+ ${scala-maven-plugin.version}
+
+
+
+
+
+ net.alchim31.maven
+ scala-maven-plugin
+
+
+
+ testCompile
+
+
+
+
+ -Ydelambdafy:method
+ -target:jvm-1.8
+ -deprecation
+ -feature
+ -unchecked
+ -language:implicitConversions
+ -language:postfixOps
+
+
+
+
+
+
+
+
+
+
+ simulation
+
+
+
+ io.gatling
+ gatling-maven-plugin
+ ${gatling-maven-plugin.version}
+
+
+ test
+
+ execute
+
+
+ true
+
+
+
+
+
+
+
+
+
+
+ 1.8
+ 1.8
+ UTF-8
+ 2.12.6
+ 2.3.1
+ 3.2.2
+ 2.2.4
+
+
+
diff --git a/testing-modules/gatling/src/test/scala/Engine.scala b/testing-modules/gatling/src/test/scala/Engine.scala
index 32c85fbe45..c2884fc218 100644
--- a/testing-modules/gatling/src/test/scala/Engine.scala
+++ b/testing-modules/gatling/src/test/scala/Engine.scala
@@ -1,13 +1,13 @@
-import io.gatling.app.Gatling
-import io.gatling.core.config.GatlingPropertiesBuilder
-
-object Engine extends App {
-
- val props = new GatlingPropertiesBuilder
- props.dataDirectory(IDEPathHelper.dataDirectory.toString)
- props.resultsDirectory(IDEPathHelper.resultsDirectory.toString)
- props.bodiesDirectory(IDEPathHelper.bodiesDirectory.toString)
- props.binariesDirectory(IDEPathHelper.mavenBinariesDirectory.toString)
-
- Gatling.fromMap(props.build)
-}
+import io.gatling.app.Gatling
+import io.gatling.core.config.GatlingPropertiesBuilder
+
+object Engine extends App {
+
+ val props = new GatlingPropertiesBuilder
+ props.dataDirectory(IDEPathHelper.dataDirectory.toString)
+ props.resultsDirectory(IDEPathHelper.resultsDirectory.toString)
+ props.bodiesDirectory(IDEPathHelper.bodiesDirectory.toString)
+ props.binariesDirectory(IDEPathHelper.mavenBinariesDirectory.toString)
+
+ Gatling.fromMap(props.build)
+}
diff --git a/testing-modules/gatling/src/test/scala/IDEPathHelper.scala b/testing-modules/gatling/src/test/scala/IDEPathHelper.scala
index 0abf6a42ef..9fb1d7d5c8 100644
--- a/testing-modules/gatling/src/test/scala/IDEPathHelper.scala
+++ b/testing-modules/gatling/src/test/scala/IDEPathHelper.scala
@@ -1,22 +1,22 @@
-import java.nio.file.Path
-
-import io.gatling.commons.util.PathHelper._
-
-object IDEPathHelper {
-
- val gatlingConfUrl: Path = getClass.getClassLoader.getResource("gatling.conf").toURI
- val projectRootDir = gatlingConfUrl.ancestor(3)
-
- val mavenSourcesDirectory = projectRootDir / "src" / "test" / "scala"
- val mavenResourcesDirectory = projectRootDir / "src" / "test" / "resources"
- val mavenTargetDirectory = projectRootDir / "target"
- val mavenBinariesDirectory = mavenTargetDirectory / "test-classes"
-
- val dataDirectory = mavenResourcesDirectory / "data"
- val bodiesDirectory = mavenResourcesDirectory / "bodies"
-
- val recorderOutputDirectory = mavenSourcesDirectory
- val resultsDirectory = mavenTargetDirectory / "gatling"
-
- val recorderConfigFile = mavenResourcesDirectory / "recorder.conf"
-}
+import java.nio.file.Path
+
+import io.gatling.commons.util.PathHelper._
+
+object IDEPathHelper {
+
+ val gatlingConfUrl: Path = getClass.getClassLoader.getResource("gatling.conf").toURI
+ val projectRootDir = gatlingConfUrl.ancestor(3)
+
+ val mavenSourcesDirectory = projectRootDir / "src" / "test" / "scala"
+ val mavenResourcesDirectory = projectRootDir / "src" / "test" / "resources"
+ val mavenTargetDirectory = projectRootDir / "target"
+ val mavenBinariesDirectory = mavenTargetDirectory / "test-classes"
+
+ val dataDirectory = mavenResourcesDirectory / "data"
+ val bodiesDirectory = mavenResourcesDirectory / "bodies"
+
+ val recorderOutputDirectory = mavenSourcesDirectory
+ val resultsDirectory = mavenTargetDirectory / "gatling"
+
+ val recorderConfigFile = mavenResourcesDirectory / "recorder.conf"
+}
diff --git a/testing-modules/gatling/src/test/scala/Recorder.scala b/testing-modules/gatling/src/test/scala/Recorder.scala
index 6ad320618b..9c38e52f12 100644
--- a/testing-modules/gatling/src/test/scala/Recorder.scala
+++ b/testing-modules/gatling/src/test/scala/Recorder.scala
@@ -1,12 +1,12 @@
-import io.gatling.recorder.GatlingRecorder
-import io.gatling.recorder.config.RecorderPropertiesBuilder
-
-object Recorder extends App {
-
- val props = new RecorderPropertiesBuilder
- props.simulationOutputFolder(IDEPathHelper.recorderOutputDirectory.toString)
- props.simulationPackage("org.baeldung")
- props.bodiesFolder(IDEPathHelper.bodiesDirectory.toString)
-
- GatlingRecorder.fromMap(props.build, Some(IDEPathHelper.recorderConfigFile))
-}
+import io.gatling.recorder.GatlingRecorder
+import io.gatling.recorder.config.RecorderPropertiesBuilder
+
+object Recorder extends App {
+
+ val props = new RecorderPropertiesBuilder
+ props.simulationOutputFolder(IDEPathHelper.recorderOutputDirectory.toString)
+ props.simulationPackage("org.baeldung")
+ props.bodiesFolder(IDEPathHelper.bodiesDirectory.toString)
+
+ GatlingRecorder.fromMap(props.build, Some(IDEPathHelper.recorderConfigFile))
+}
diff --git a/testing-modules/groovy-spock/report-2019-03-29.json b/testing-modules/groovy-spock/report-2019-03-29.json
deleted file mode 100644
index 85f0b261fb..0000000000
--- a/testing-modules/groovy-spock/report-2019-03-29.json
+++ /dev/null
@@ -1,402 +0,0 @@
-loadLogFile([{
- "package": "mocks",
- "name": "ExampleSpockTest",
- "start": 1553898111660,
- "features": [
- {
- "name": "should calculate character occurrences in given string",
- "start": 1553898111662,
- "end": 1553898111699,
- "result": "passed",
- "attachments": [
-
- ]
- }
- ],
- "end": 1553898111709,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "mocks",
- "name": "ItemServiceTest",
- "start": 1553898111714,
- "features": [
- {
- "name": "should spy on EventPublisher method call",
- "start": 1553898111714,
- "output": [
- "I've published: item-id\n"
- ],
- "end": 1553898112250,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "should return items",
- "start": 1553898112250,
- "end": 1553898112260,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "should publish events about new non-empty saved offers",
- "start": 1553898112260,
- "end": 1553898112267,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "should return different items for different ids lists",
- "start": 1553898112267,
- "end": 1553898112280,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "should throw ExternalItemProviderException when ItemProvider fails",
- "start": 1553898112281,
- "end": 1553898112294,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "should return different items on subsequent call",
- "start": 1553898112294,
- "narrative": "When method is called for the first time\nThen empty list is returned\nWhen method is called for the second time\nThen item with id=1 is returned\nWhen method is called for the thirdtime\nThen item with id=2 is returned",
- "end": 1553898112298,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "should return items sorted by name",
- "start": 1553898112299,
- "end": 1553898112307,
- "result": "passed",
- "attachments": [
-
- ]
- }
- ],
- "end": 1553898112310,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "FirstSpecification",
- "name": "FirstSpecification",
- "start": 1553898112314,
- "features": [
- {
- "name": "Should verify notify was called",
- "start": 1553898112314,
- "end": 1553898112324,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "Should return true value for mock",
- "start": 1553898112325,
- "end": 1553898112344,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "Should return default value for mock",
- "start": 1553898112344,
- "end": 1553898112347,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "numbers to the power of two",
- "start": 1553898112347,
- "end": 1553898112358,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "Should get an index out of bounds when removing a non-existent item",
- "start": 1553898112358,
- "end": 1553898112364,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "Should be able to remove from list",
- "start": 1553898112364,
- "end": 1553898112366,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "two plus two should equal four",
- "start": 1553898112366,
- "end": 1553898112368,
- "result": "passed",
- "attachments": [
-
- ]
- },
- {
- "name": "one plus one should equal two",
- "start": 1553898112368,
- "end": 1553898112391,
- "result": "passed",
- "attachments": [
-
- ]
- }
- ],
- "end": 1553898112394,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "IgnoreTest",
- "start": 1553898112395,
- "end": 1553898112395,
- "result": "skipped"
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "RetryTest",
- "start": 1553898112403,
- "end": 1553898112405,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "This title is easy to read for humans",
- "start": 1553898112407,
- "end": 1553898112408,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "SeeTest",
- "start": 1553898112409,
- "end": 1553898112411,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "StepwiseTest",
- "start": 1553898112422,
- "end": 1553898112423,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "NarrativeDescriptionTest",
- "start": 1553898112427,
- "narrative": "as a user\n i want to save favourite items \n and then get the list of them",
- "end": 1553898112433,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "SubjectTest",
- "start": 1553898112434,
- "end": 1553898112436,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "IgnoreRestTest",
- "start": 1553898112437,
- "end": 1553898112437,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "StackTraceTest",
- "start": 1553898112438,
- "features": [
- {
- "name": "stacktrace",
- "start": 1553898112438,
- "exceptions": [
- "java.lang.RuntimeException: blabla\n\tat extensions.StackTraceTest.stacktrace(StackTraceTest.groovy:10)\n"
- ],
- "end": 1553898112455,
- "result": "failed",
- "attachments": [
-
- ]
- }
- ],
- "end": 1553898112470,
- "result": "failed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "IgnoreIfTest",
- "start": 1553898112471,
- "end": 1553898112472,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "RequiresTest",
- "start": 1553898112473,
- "features": [
- {
- "name": "I will run only on Windows",
- "start": 1553898112474,
- "end": 1553898112474,
- "result": "skipped"
- }
- ],
- "end": 1553898112476,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "IssueTest",
- "start": 1553898112477,
- "features": [
- {
- "name": "I'm using Spock configuration file",
- "start": 1553898112477,
- "tags": [
- {
- "name": "Bug LO-1000",
- "key": "issue",
- "value": "LO-1000",
- "url": "http:\/\/jira.org\/issues\/LO-1000"
- }
- ],
- "end": 1553898112489,
- "result": "passed",
- "attachments": [
-
- ]
- }
- ],
- "end": 1553898112490,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "TimeoutTest",
- "start": 1553898112491,
- "features": [
- {
- "name": "I will fail after 200 millis",
- "start": 1553898112491,
- "end": 1553898112514,
- "result": "passed",
- "attachments": [
-
- ]
- }
- ],
- "end": 1553898112517,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
-loadLogFile([{
- "package": "extensions",
- "name": "RestoreSystemPropertiesTest",
- "start": 1553898112518,
- "features": [
- {
- "name": "all environment variables will be saved before execution and restored after tests",
- "start": 1553898112518,
- "end": 1553898112532,
- "result": "passed",
- "attachments": [
-
- ]
- }
- ],
- "end": 1553898112539,
- "result": "passed",
- "attachments": [
-
- ]
-}])
-
diff --git a/testing-modules/junit-4/pom.xml b/testing-modules/junit-4/pom.xml
index 272a9380b5..be0f51ea23 100644
--- a/testing-modules/junit-4/pom.xml
+++ b/testing-modules/junit-4/pom.xml
@@ -15,4 +15,17 @@
../../
+
+
+ pl.pragmatists
+ JUnitParams
+ ${jUnitParams.version}
+ test
+
+
+
+
+ 1.1.0
+
+
diff --git a/testing-modules/testing/src/main/java/com/baeldung/junitparams/SafeAdditionUtil.java b/testing-modules/junit-4/src/main/java/com/baeldung/junitparams/SafeAdditionUtil.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/junitparams/SafeAdditionUtil.java
rename to testing-modules/junit-4/src/main/java/com/baeldung/junitparams/SafeAdditionUtil.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/junitparams/SafeAdditionUtilUnitTest.java b/testing-modules/junit-4/src/test/java/com/baeldung/junitparams/SafeAdditionUtilUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/junitparams/SafeAdditionUtilUnitTest.java
rename to testing-modules/junit-4/src/test/java/com/baeldung/junitparams/SafeAdditionUtilUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/junitparams/TestDataProvider.java b/testing-modules/junit-4/src/test/java/com/baeldung/junitparams/TestDataProvider.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/junitparams/TestDataProvider.java
rename to testing-modules/junit-4/src/test/java/com/baeldung/junitparams/TestDataProvider.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java b/testing-modules/junit-4/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java
rename to testing-modules/junit-4/src/test/java/com/baeldung/runfromjava/FirstUnitTest.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/runfromjava/MyTestSuite.java b/testing-modules/junit-4/src/test/java/com/baeldung/runfromjava/MyTestSuite.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/runfromjava/MyTestSuite.java
rename to testing-modules/junit-4/src/test/java/com/baeldung/runfromjava/MyTestSuite.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/runfromjava/RunJUnit4TestsFromJava.java b/testing-modules/junit-4/src/test/java/com/baeldung/runfromjava/RunJUnit4TestsFromJava.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/runfromjava/RunJUnit4TestsFromJava.java
rename to testing-modules/junit-4/src/test/java/com/baeldung/runfromjava/RunJUnit4TestsFromJava.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java b/testing-modules/junit-4/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java
rename to testing-modules/junit-4/src/test/java/com/baeldung/runfromjava/SecondUnitTest.java
diff --git a/testing-modules/testing/src/test/resources/JunitParamsTestParameters.csv b/testing-modules/junit-4/src/test/resources/JunitParamsTestParameters.csv
similarity index 100%
rename from testing-modules/testing/src/test/resources/JunitParamsTestParameters.csv
rename to testing-modules/junit-4/src/test/resources/JunitParamsTestParameters.csv
diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java
index d4195e3b12..e13b4e24be 100644
--- a/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java
+++ b/testing-modules/junit-5/src/test/java/com/baeldung/junit5/mockito/UserServiceUnitTest.java
@@ -1,126 +1,126 @@
-package com.baeldung.junit5.mockito;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.fail;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.Mockito.*;
-
-import org.junit.jupiter.api.Assertions;
-import org.junit.jupiter.api.BeforeEach;
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.ExtendWith;
-import org.junit.platform.runner.JUnitPlatform;
-import org.junit.runner.RunWith;
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
-import org.mockito.junit.jupiter.MockitoExtension;
-import org.mockito.stubbing.Answer;
-
-import com.baeldung.junit5.mockito.repository.MailClient;
-import com.baeldung.junit5.mockito.repository.SettingRepository;
-import com.baeldung.junit5.mockito.repository.UserRepository;
-import com.baeldung.junit5.mockito.service.DefaultUserService;
-import com.baeldung.junit5.mockito.service.Errors;
-import com.baeldung.junit5.mockito.service.UserService;
-
-@ExtendWith(MockitoExtension.class)
-@RunWith(JUnitPlatform.class)
-public class UserServiceUnitTest {
-
- UserService userService;
- SettingRepository settingRepository;
- @Mock UserRepository userRepository;
- @Mock MailClient mailClient;
-
- User user;
-
- @BeforeEach
- void init(@Mock SettingRepository settingRepository) {
- userService = new DefaultUserService(userRepository, settingRepository, mailClient);
- lenient().when(settingRepository.getUserMinAge()).thenReturn(10);
- when(settingRepository.getUserNameMinLength()).thenReturn(4);
- lenient().when(userRepository.isUsernameAlreadyExists(any(String.class))).thenReturn(false);
- this.settingRepository = settingRepository;
- }
-
- @Test
- void givenValidUser_whenSaveUser_thenSucceed(@Mock MailClient mailClient) {
- // Given
- user = new User("Jerry", 12);
- when(userRepository.insert(any(User.class))).then(new Answer() {
- int sequence = 1;
-
- @Override
- public User answer(InvocationOnMock invocation) throws Throwable {
- User user = (User) invocation.getArgument(0);
- user.setId(sequence++);
- return user;
- }
- });
-
- userService = new DefaultUserService(userRepository, settingRepository, mailClient);
-
- // When
- User insertedUser = userService.register(user);
-
- // Then
- verify(userRepository).insert(user);
- Assertions.assertNotNull(user.getId());
- verify(mailClient).sendUserRegistrationMail(insertedUser);
- }
-
- @Test
- void givenShortName_whenSaveUser_thenGiveShortUsernameError() {
- // Given
- user = new User("tom", 12);
-
- // When
- try {
- userService.register(user);
- fail("Should give an error");
- } catch(Exception ex) {
- assertEquals(ex.getMessage(), Errors.USER_NAME_SHORT);
- }
-
- // Then
- verify(userRepository, never()).insert(user);
- }
-
- @Test
- void givenSmallAge_whenSaveUser_thenGiveYoungUserError() {
- // Given
- user = new User("jerry", 3);
-
- // When
- try {
- userService.register(user);
- fail("Should give an error");
- } catch(Exception ex) {
- assertEquals(ex.getMessage(), Errors.USER_AGE_YOUNG);
- }
-
- // Then
- verify(userRepository, never()).insert(user);
- }
-
- @Test
- void givenUserWithExistingName_whenSaveUser_thenGiveUsernameAlreadyExistsError() {
- // Given
- user = new User("jerry", 12);
- Mockito.reset(userRepository);
- when(userRepository.isUsernameAlreadyExists(any(String.class))).thenReturn(true);
-
- // When
- try {
- userService.register(user);
- fail("Should give an error");
- } catch(Exception ex) {
- assertEquals(ex.getMessage(), Errors.USER_NAME_DUPLICATE);
- }
-
- // Then
- verify(userRepository, never()).insert(user);
- }
-
-}
+package com.baeldung.junit5.mockito;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.*;
+
+import org.junit.jupiter.api.Assertions;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.extension.ExtendWith;
+import org.junit.platform.runner.JUnitPlatform;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.junit.jupiter.MockitoExtension;
+import org.mockito.stubbing.Answer;
+
+import com.baeldung.junit5.mockito.repository.MailClient;
+import com.baeldung.junit5.mockito.repository.SettingRepository;
+import com.baeldung.junit5.mockito.repository.UserRepository;
+import com.baeldung.junit5.mockito.service.DefaultUserService;
+import com.baeldung.junit5.mockito.service.Errors;
+import com.baeldung.junit5.mockito.service.UserService;
+
+@ExtendWith(MockitoExtension.class)
+@RunWith(JUnitPlatform.class)
+public class UserServiceUnitTest {
+
+ UserService userService;
+ SettingRepository settingRepository;
+ @Mock UserRepository userRepository;
+ @Mock MailClient mailClient;
+
+ User user;
+
+ @BeforeEach
+ void init(@Mock SettingRepository settingRepository) {
+ userService = new DefaultUserService(userRepository, settingRepository, mailClient);
+ lenient().when(settingRepository.getUserMinAge()).thenReturn(10);
+ when(settingRepository.getUserNameMinLength()).thenReturn(4);
+ lenient().when(userRepository.isUsernameAlreadyExists(any(String.class))).thenReturn(false);
+ this.settingRepository = settingRepository;
+ }
+
+ @Test
+ void givenValidUser_whenSaveUser_thenSucceed(@Mock MailClient mailClient) {
+ // Given
+ user = new User("Jerry", 12);
+ when(userRepository.insert(any(User.class))).then(new Answer() {
+ int sequence = 1;
+
+ @Override
+ public User answer(InvocationOnMock invocation) throws Throwable {
+ User user = (User) invocation.getArgument(0);
+ user.setId(sequence++);
+ return user;
+ }
+ });
+
+ userService = new DefaultUserService(userRepository, settingRepository, mailClient);
+
+ // When
+ User insertedUser = userService.register(user);
+
+ // Then
+ verify(userRepository).insert(user);
+ Assertions.assertNotNull(user.getId());
+ verify(mailClient).sendUserRegistrationMail(insertedUser);
+ }
+
+ @Test
+ void givenShortName_whenSaveUser_thenGiveShortUsernameError() {
+ // Given
+ user = new User("tom", 12);
+
+ // When
+ try {
+ userService.register(user);
+ fail("Should give an error");
+ } catch(Exception ex) {
+ assertEquals(ex.getMessage(), Errors.USER_NAME_SHORT);
+ }
+
+ // Then
+ verify(userRepository, never()).insert(user);
+ }
+
+ @Test
+ void givenSmallAge_whenSaveUser_thenGiveYoungUserError() {
+ // Given
+ user = new User("jerry", 3);
+
+ // When
+ try {
+ userService.register(user);
+ fail("Should give an error");
+ } catch(Exception ex) {
+ assertEquals(ex.getMessage(), Errors.USER_AGE_YOUNG);
+ }
+
+ // Then
+ verify(userRepository, never()).insert(user);
+ }
+
+ @Test
+ void givenUserWithExistingName_whenSaveUser_thenGiveUsernameAlreadyExistsError() {
+ // Given
+ user = new User("jerry", 12);
+ Mockito.reset(userRepository);
+ when(userRepository.isUsernameAlreadyExists(any(String.class))).thenReturn(true);
+
+ // When
+ try {
+ userService.register(user);
+ fail("Should give an error");
+ } catch(Exception ex) {
+ assertEquals(ex.getMessage(), Errors.USER_NAME_DUPLICATE);
+ }
+
+ // Then
+ verify(userRepository, never()).insert(user);
+ }
+
+}
diff --git a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/BDDMockitoIntegrationTest.java b/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/BDDMockitoIntegrationTest.java
index e772b5e049..e0ca6f0a35 100644
--- a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/BDDMockitoIntegrationTest.java
+++ b/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/BDDMockitoIntegrationTest.java
@@ -1,104 +1,104 @@
-package org.baeldung.bddmockito;
-
-import static org.junit.Assert.fail;
-import static org.mockito.BDDMockito.*;
-
-import org.junit.Assert;
-import org.junit.Before;
-import org.junit.Test;
-import org.mockito.Mockito;
-import org.mockito.invocation.InvocationOnMock;
-
-
-public class BDDMockitoIntegrationTest {
-
- PhoneBookService phoneBookService;
- PhoneBookRepository phoneBookRepository;
-
- String momContactName = "Mom";
- String momPhoneNumber = "01234";
- String xContactName = "x";
- String tooLongPhoneNumber = "01111111111111";
-
- @Before
- public void init() {
- phoneBookRepository = Mockito.mock(PhoneBookRepository.class);
- phoneBookService = new PhoneBookService(phoneBookRepository);
- }
-
- @Test
- public void givenValidContactName_whenSearchInPhoneBook_thenRetunPhoneNumber() {
- given(phoneBookRepository.contains(momContactName)).willReturn(true);
- given(phoneBookRepository.getPhoneNumberByContactName(momContactName))
- .will((InvocationOnMock invocation) -> {
- if(invocation.getArgument(0).equals(momContactName)) {
- return momPhoneNumber;
- } else {
- return null;
- }
- });
-
- String phoneNumber = phoneBookService.search(momContactName);
-
- then(phoneBookRepository).should().contains(momContactName);
- then(phoneBookRepository).should().getPhoneNumberByContactName(momContactName);
- Assert.assertEquals(phoneNumber, momPhoneNumber);
- }
-
- @Test
- public void givenInvalidContactName_whenSearch_thenRetunNull() {
- given(phoneBookRepository.contains(xContactName)).willReturn(false);
-
- String phoneNumber = phoneBookService.search(xContactName);
-
- then(phoneBookRepository).should().contains(xContactName);
- then(phoneBookRepository).should(never()).getPhoneNumberByContactName(xContactName);
- Assert.assertEquals(phoneNumber, null);
- }
-
- @Test
- public void givenValidContactNameAndPhoneNumber_whenRegister_thenSucceed() {
- given(phoneBookRepository.contains(momContactName)).willReturn(false);
-
- phoneBookService.register(momContactName, momPhoneNumber);
-
- verify(phoneBookRepository).insert(momContactName, momPhoneNumber);
- }
-
- @Test
- public void givenEmptyPhoneNumber_whenRegister_thenFail() {
- given(phoneBookRepository.contains(momContactName)).willReturn(false);
-
- phoneBookService.register(xContactName, "");
-
- then(phoneBookRepository).should(never()).insert(momContactName, momPhoneNumber);
- }
-
- @Test
- public void givenLongPhoneNumber_whenRegister_thenFail() {
- given(phoneBookRepository.contains(xContactName)).willReturn(false);
- willThrow(new RuntimeException())
- .given(phoneBookRepository).insert(any(String.class), eq(tooLongPhoneNumber));
-
- try {
- phoneBookService.register(xContactName, tooLongPhoneNumber);
- fail("Should throw exception");
- } catch (RuntimeException ex) { }
-
- then(phoneBookRepository).should(never()).insert(momContactName, tooLongPhoneNumber);
- }
-
- @Test
- public void givenExistentContactName_whenRegister_thenFail() {
- given(phoneBookRepository.contains(momContactName))
- .willThrow(new RuntimeException("Name already exist"));
-
- try {
- phoneBookService.register(momContactName, momPhoneNumber);
- fail("Should throw exception");
- } catch(Exception ex) { }
-
- then(phoneBookRepository).should(never()).insert(momContactName, momPhoneNumber);
- }
-
-}
+package org.baeldung.bddmockito;
+
+import static org.junit.Assert.fail;
+import static org.mockito.BDDMockito.*;
+
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.mockito.invocation.InvocationOnMock;
+
+
+public class BDDMockitoIntegrationTest {
+
+ PhoneBookService phoneBookService;
+ PhoneBookRepository phoneBookRepository;
+
+ String momContactName = "Mom";
+ String momPhoneNumber = "01234";
+ String xContactName = "x";
+ String tooLongPhoneNumber = "01111111111111";
+
+ @Before
+ public void init() {
+ phoneBookRepository = Mockito.mock(PhoneBookRepository.class);
+ phoneBookService = new PhoneBookService(phoneBookRepository);
+ }
+
+ @Test
+ public void givenValidContactName_whenSearchInPhoneBook_thenRetunPhoneNumber() {
+ given(phoneBookRepository.contains(momContactName)).willReturn(true);
+ given(phoneBookRepository.getPhoneNumberByContactName(momContactName))
+ .will((InvocationOnMock invocation) -> {
+ if(invocation.getArgument(0).equals(momContactName)) {
+ return momPhoneNumber;
+ } else {
+ return null;
+ }
+ });
+
+ String phoneNumber = phoneBookService.search(momContactName);
+
+ then(phoneBookRepository).should().contains(momContactName);
+ then(phoneBookRepository).should().getPhoneNumberByContactName(momContactName);
+ Assert.assertEquals(phoneNumber, momPhoneNumber);
+ }
+
+ @Test
+ public void givenInvalidContactName_whenSearch_thenRetunNull() {
+ given(phoneBookRepository.contains(xContactName)).willReturn(false);
+
+ String phoneNumber = phoneBookService.search(xContactName);
+
+ then(phoneBookRepository).should().contains(xContactName);
+ then(phoneBookRepository).should(never()).getPhoneNumberByContactName(xContactName);
+ Assert.assertEquals(phoneNumber, null);
+ }
+
+ @Test
+ public void givenValidContactNameAndPhoneNumber_whenRegister_thenSucceed() {
+ given(phoneBookRepository.contains(momContactName)).willReturn(false);
+
+ phoneBookService.register(momContactName, momPhoneNumber);
+
+ verify(phoneBookRepository).insert(momContactName, momPhoneNumber);
+ }
+
+ @Test
+ public void givenEmptyPhoneNumber_whenRegister_thenFail() {
+ given(phoneBookRepository.contains(momContactName)).willReturn(false);
+
+ phoneBookService.register(xContactName, "");
+
+ then(phoneBookRepository).should(never()).insert(momContactName, momPhoneNumber);
+ }
+
+ @Test
+ public void givenLongPhoneNumber_whenRegister_thenFail() {
+ given(phoneBookRepository.contains(xContactName)).willReturn(false);
+ willThrow(new RuntimeException())
+ .given(phoneBookRepository).insert(any(String.class), eq(tooLongPhoneNumber));
+
+ try {
+ phoneBookService.register(xContactName, tooLongPhoneNumber);
+ fail("Should throw exception");
+ } catch (RuntimeException ex) { }
+
+ then(phoneBookRepository).should(never()).insert(momContactName, tooLongPhoneNumber);
+ }
+
+ @Test
+ public void givenExistentContactName_whenRegister_thenFail() {
+ given(phoneBookRepository.contains(momContactName))
+ .willThrow(new RuntimeException("Name already exist"));
+
+ try {
+ phoneBookService.register(momContactName, momPhoneNumber);
+ fail("Should throw exception");
+ } catch(Exception ex) { }
+
+ then(phoneBookRepository).should(never()).insert(momContactName, momPhoneNumber);
+ }
+
+}
diff --git a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookRepository.java b/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookRepository.java
index b73a1d835c..94d4a90d4b 100644
--- a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookRepository.java
+++ b/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookRepository.java
@@ -1,26 +1,26 @@
-package org.baeldung.bddmockito;
-
-public interface PhoneBookRepository {
-
- /**
- * Insert phone record
- * @param name Contact name
- * @param phone Phone number
- */
- void insert(String name, String phone);
-
- /**
- * Search for contact phone number
- * @param name Contact name
- * @return phone number
- */
- String getPhoneNumberByContactName(String name);
-
- /**
- * Check if the phonebook contains this contact
- * @param name Contact name
- * @return true if this contact name exists
- */
- boolean contains(String name);
-
-}
+package org.baeldung.bddmockito;
+
+public interface PhoneBookRepository {
+
+ /**
+ * Insert phone record
+ * @param name Contact name
+ * @param phone Phone number
+ */
+ void insert(String name, String phone);
+
+ /**
+ * Search for contact phone number
+ * @param name Contact name
+ * @return phone number
+ */
+ String getPhoneNumberByContactName(String name);
+
+ /**
+ * Check if the phonebook contains this contact
+ * @param name Contact name
+ * @return true if this contact name exists
+ */
+ boolean contains(String name);
+
+}
diff --git a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookService.java b/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookService.java
index 645884af02..8fc49b026d 100644
--- a/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookService.java
+++ b/testing-modules/mockito/src/test/java/org/baeldung/bddmockito/PhoneBookService.java
@@ -1,34 +1,34 @@
-package org.baeldung.bddmockito;
-
-public class PhoneBookService {
-
- private PhoneBookRepository phoneBookRepository;
-
- public PhoneBookService(PhoneBookRepository phoneBookRepository) {
- this.phoneBookRepository = phoneBookRepository;
- }
-
- /**
- * Register a contact
- * @param name Contact name
- * @param phone Phone number
- */
- public void register(String name, String phone) {
- if(!name.isEmpty() && !phone.isEmpty() && !phoneBookRepository.contains(name)) {
- phoneBookRepository.insert(name, phone);
- }
- }
-
- /**
- * Search for a phone number by contact name
- * @param name Contact name
- * @return Phone number
- */
- public String search(String name) {
- if(!name.isEmpty() && phoneBookRepository.contains(name)) {
- return phoneBookRepository.getPhoneNumberByContactName(name);
- }
- return null;
- }
-
-}
+package org.baeldung.bddmockito;
+
+public class PhoneBookService {
+
+ private PhoneBookRepository phoneBookRepository;
+
+ public PhoneBookService(PhoneBookRepository phoneBookRepository) {
+ this.phoneBookRepository = phoneBookRepository;
+ }
+
+ /**
+ * Register a contact
+ * @param name Contact name
+ * @param phone Phone number
+ */
+ public void register(String name, String phone) {
+ if(!name.isEmpty() && !phone.isEmpty() && !phoneBookRepository.contains(name)) {
+ phoneBookRepository.insert(name, phone);
+ }
+ }
+
+ /**
+ * Search for a phone number by contact name
+ * @param name Contact name
+ * @return Phone number
+ */
+ public String search(String name) {
+ if(!name.isEmpty() && phoneBookRepository.contains(name)) {
+ return phoneBookRepository.getPhoneNumberByContactName(name);
+ }
+ return null;
+ }
+
+}
diff --git a/testing-modules/mocks/javafaker/pom.xml b/testing-modules/mocks/javafaker/pom.xml
new file mode 100644
index 0000000000..8c1f8c080e
--- /dev/null
+++ b/testing-modules/mocks/javafaker/pom.xml
@@ -0,0 +1,26 @@
+
+ 4.0.0
+ javafaker
+ javafaker
+
+
+ com.baeldung
+ mocks
+ 1.0.0-SNAPSHOT
+ ../
+
+
+
+
+ com.github.javafaker
+ javafaker
+ ${javafaker.version}
+
+
+
+
+ 0.15
+
+
+
diff --git a/testing-modules/testing/src/test/java/com/baeldung/javafaker/JavaFakerUnitTest.java b/testing-modules/mocks/javafaker/src/test/java/com/baeldung/javafaker/JavaFakerUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/javafaker/JavaFakerUnitTest.java
rename to testing-modules/mocks/javafaker/src/test/java/com/baeldung/javafaker/JavaFakerUnitTest.java
diff --git a/testing-modules/mocks/jukito/pom.xml b/testing-modules/mocks/jukito/pom.xml
new file mode 100644
index 0000000000..752f097482
--- /dev/null
+++ b/testing-modules/mocks/jukito/pom.xml
@@ -0,0 +1,27 @@
+
+ 4.0.0
+ jukito
+ jukito
+
+
+ com.baeldung
+ mocks
+ 1.0.0-SNAPSHOT
+ ../
+
+
+
+
+ org.jukito
+ jukito
+ ${jukito.version}
+ test
+
+
+
+
+ 1.5
+
+
+
diff --git a/testing-modules/testing/src/main/java/com/baeldung/introductionjukito/Calculator.java b/testing-modules/mocks/jukito/src/main/java/com/baeldung/introductionjukito/Calculator.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/introductionjukito/Calculator.java
rename to testing-modules/mocks/jukito/src/main/java/com/baeldung/introductionjukito/Calculator.java
diff --git a/testing-modules/testing/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java b/testing-modules/mocks/jukito/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java
rename to testing-modules/mocks/jukito/src/main/java/com/baeldung/introductionjukito/ScientificCalculator.java
diff --git a/testing-modules/testing/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java b/testing-modules/mocks/jukito/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java
similarity index 100%
rename from testing-modules/testing/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java
rename to testing-modules/mocks/jukito/src/main/java/com/baeldung/introductionjukito/SimpleCalculator.java
diff --git a/testing-modules/testing/src/test/java/com/baeldung/introductionjukito/CalculatorUnitTest.java b/testing-modules/mocks/jukito/src/test/java/com/baeldung/introductionjukito/CalculatorUnitTest.java
similarity index 100%
rename from testing-modules/testing/src/test/java/com/baeldung/introductionjukito/CalculatorUnitTest.java
rename to testing-modules/mocks/jukito/src/test/java/com/baeldung/introductionjukito/CalculatorUnitTest.java
diff --git a/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/ArticleReader.java b/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/ArticleReader.java
old mode 100755
new mode 100644
index 9e4a15c27a..c4732e3452
--- a/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/ArticleReader.java
+++ b/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/ArticleReader.java
@@ -1,36 +1,36 @@
-package com.baeldung.easymock;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import static java.util.stream.Collectors.toList;
-
-public class ArticleReader {
-
- private List articles;
- private Iterator articleIter;
-
- public ArticleReader() {
- this(new ArrayList<>());
- }
-
- public ArticleReader(List articles) {
- this.articles = articles;
- this.articleIter = this.articles.iterator();
- }
-
- public List ofTopic(String topic) {
- return articles
- .stream()
- .filter(article -> article
- .title()
- .contains(topic))
- .collect(toList());
- }
-
- public BaeldungArticle next() {
- return this.articleIter.next();
- }
-
+package com.baeldung.easymock;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import static java.util.stream.Collectors.toList;
+
+public class ArticleReader {
+
+ private List articles;
+ private Iterator articleIter;
+
+ public ArticleReader() {
+ this(new ArrayList<>());
+ }
+
+ public ArticleReader(List articles) {
+ this.articles = articles;
+ this.articleIter = this.articles.iterator();
+ }
+
+ public List ofTopic(String topic) {
+ return articles
+ .stream()
+ .filter(article -> article
+ .title()
+ .contains(topic))
+ .collect(toList());
+ }
+
+ public BaeldungArticle next() {
+ return this.articleIter.next();
+ }
+
}
\ No newline at end of file
diff --git a/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/BaeldungArticle.java b/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/BaeldungArticle.java
old mode 100755
new mode 100644
index f386c980f4..9f332a9bac
--- a/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/BaeldungArticle.java
+++ b/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/BaeldungArticle.java
@@ -1,25 +1,25 @@
-package com.baeldung.easymock;
-
-public class BaeldungArticle {
-
- public static BaeldungArticle simpleArticle(String title, String content) {
- return new BaeldungArticle(title, content);
- }
-
- private String title;
- private String content;
-
- private BaeldungArticle(String title, String content) {
- this.title = title;
- this.content = content;
- }
-
- public String title() {
- return this.title;
- }
-
- public String content() {
- return this.content;
- }
-
+package com.baeldung.easymock;
+
+public class BaeldungArticle {
+
+ public static BaeldungArticle simpleArticle(String title, String content) {
+ return new BaeldungArticle(title, content);
+ }
+
+ private String title;
+ private String content;
+
+ private BaeldungArticle(String title, String content) {
+ this.title = title;
+ this.content = content;
+ }
+
+ public String title() {
+ return this.title;
+ }
+
+ public String content() {
+ return this.content;
+ }
+
}
\ No newline at end of file
diff --git a/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/BaeldungReader.java b/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/BaeldungReader.java
old mode 100755
new mode 100644
index 319dfc5d77..fc37b9f94a
--- a/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/BaeldungReader.java
+++ b/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/BaeldungReader.java
@@ -1,40 +1,40 @@
-package com.baeldung.easymock;
-
-import java.util.List;
-
-public class BaeldungReader {
-
- private ArticleReader articleReader;
- private IArticleWriter articleWriter;
-
- public BaeldungReader() {
- }
-
- ;
-
- public BaeldungReader(ArticleReader articleReader) {
- this.articleReader = articleReader;
- }
-
- public BaeldungReader(IArticleWriter writer) {
- this.articleWriter = writer;
- }
-
- public BaeldungReader(ArticleReader articleReader, IArticleWriter writer) {
- this.articleReader = articleReader;
- this.articleWriter = writer;
- }
-
- public BaeldungArticle readNext() {
- return articleReader.next();
- }
-
- public List readTopic(String topic) {
- return articleReader.ofTopic(topic);
- }
-
- public String write(String title, String content) {
- return articleWriter.write(title, content);
- }
-
+package com.baeldung.easymock;
+
+import java.util.List;
+
+public class BaeldungReader {
+
+ private ArticleReader articleReader;
+ private IArticleWriter articleWriter;
+
+ public BaeldungReader() {
+ }
+
+ ;
+
+ public BaeldungReader(ArticleReader articleReader) {
+ this.articleReader = articleReader;
+ }
+
+ public BaeldungReader(IArticleWriter writer) {
+ this.articleWriter = writer;
+ }
+
+ public BaeldungReader(ArticleReader articleReader, IArticleWriter writer) {
+ this.articleReader = articleReader;
+ this.articleWriter = writer;
+ }
+
+ public BaeldungArticle readNext() {
+ return articleReader.next();
+ }
+
+ public List readTopic(String topic) {
+ return articleReader.ofTopic(topic);
+ }
+
+ public String write(String title, String content) {
+ return articleWriter.write(title, content);
+ }
+
}
\ No newline at end of file
diff --git a/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/IArticleWriter.java b/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/IArticleWriter.java
old mode 100755
new mode 100644
index 4c8b190464..26970d5eb5
--- a/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/IArticleWriter.java
+++ b/testing-modules/mocks/mock-comparisons/src/main/java/com/baeldung/easymock/IArticleWriter.java
@@ -1,7 +1,7 @@
-package com.baeldung.easymock;
-
-public interface IArticleWriter {
-
- String write(String title, String content);
-
+package com.baeldung.easymock;
+
+public interface IArticleWriter {
+
+ String write(String title, String content);
+
}
\ No newline at end of file
diff --git a/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderAnnotatedUnitTest.java b/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderAnnotatedUnitTest.java
old mode 100755
new mode 100644
index afacd8d8ad..56a58dd6e8
--- a/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderAnnotatedUnitTest.java
+++ b/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderAnnotatedUnitTest.java
@@ -1,57 +1,57 @@
-package com.baeldung.easymock;
-
-import org.easymock.EasyMockRunner;
-import org.easymock.Mock;
-import org.easymock.TestSubject;
-import org.junit.*;
-import org.junit.runner.RunWith;
-
-import java.util.NoSuchElementException;
-
-import static org.easymock.EasyMock.*;
-
-@RunWith(EasyMockRunner.class)
-public class BaeldungReaderAnnotatedUnitTest {
-
- @Mock ArticleReader mockArticleReader;
-
- @Mock IArticleWriter mockArticleWriter;
-
- @TestSubject BaeldungReader baeldungReader = new BaeldungReader();
-
- @Test
- public void givenBaeldungReader_whenReadNext_thenNextArticleRead() {
- expect(mockArticleReader.next()).andReturn(null);
- replay(mockArticleReader);
- baeldungReader.readNext();
- verify(mockArticleReader);
- }
-
- @Mock BaeldungReader mockBaeldungReader;
-
- @Test
- public void givenBaeldungReader_whenWrite_thenWriterCalled() {
- expect(mockArticleWriter.write("title", "content")).andReturn(null);
- replay(mockArticleWriter);
- baeldungReader.write("title", "content");
- verify(mockArticleWriter);
- }
-
- @Test
- public void givenArticlesInReader_whenReadTillEnd_thenThrowException() {
- expect(mockArticleReader.next())
- .andReturn(null)
- .times(2)
- .andThrow(new NoSuchElementException());
- replay(mockArticleReader);
- try {
- for (int i = 0; i < 3; i++) {
- baeldungReader.readNext();
- }
- } catch (Exception ignored) {
- }
- verify(mockArticleReader);
- }
-
-}
-
+package com.baeldung.easymock;
+
+import org.easymock.EasyMockRunner;
+import org.easymock.Mock;
+import org.easymock.TestSubject;
+import org.junit.*;
+import org.junit.runner.RunWith;
+
+import java.util.NoSuchElementException;
+
+import static org.easymock.EasyMock.*;
+
+@RunWith(EasyMockRunner.class)
+public class BaeldungReaderAnnotatedUnitTest {
+
+ @Mock ArticleReader mockArticleReader;
+
+ @Mock IArticleWriter mockArticleWriter;
+
+ @TestSubject BaeldungReader baeldungReader = new BaeldungReader();
+
+ @Test
+ public void givenBaeldungReader_whenReadNext_thenNextArticleRead() {
+ expect(mockArticleReader.next()).andReturn(null);
+ replay(mockArticleReader);
+ baeldungReader.readNext();
+ verify(mockArticleReader);
+ }
+
+ @Mock BaeldungReader mockBaeldungReader;
+
+ @Test
+ public void givenBaeldungReader_whenWrite_thenWriterCalled() {
+ expect(mockArticleWriter.write("title", "content")).andReturn(null);
+ replay(mockArticleWriter);
+ baeldungReader.write("title", "content");
+ verify(mockArticleWriter);
+ }
+
+ @Test
+ public void givenArticlesInReader_whenReadTillEnd_thenThrowException() {
+ expect(mockArticleReader.next())
+ .andReturn(null)
+ .times(2)
+ .andThrow(new NoSuchElementException());
+ replay(mockArticleReader);
+ try {
+ for (int i = 0; i < 3; i++) {
+ baeldungReader.readNext();
+ }
+ } catch (Exception ignored) {
+ }
+ verify(mockArticleReader);
+ }
+
+}
+
diff --git a/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderAnnotatedWithRuleUnitTest.java b/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderAnnotatedWithRuleUnitTest.java
old mode 100755
new mode 100644
index 086ed88888..5b4219d263
--- a/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderAnnotatedWithRuleUnitTest.java
+++ b/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderAnnotatedWithRuleUnitTest.java
@@ -1,57 +1,57 @@
-package com.baeldung.easymock;
-
-import org.easymock.EasyMockRule;
-import org.easymock.Mock;
-import org.easymock.TestSubject;
-import org.junit.*;
-
-import java.util.NoSuchElementException;
-
-import static org.easymock.EasyMock.*;
-
-public class BaeldungReaderAnnotatedWithRuleUnitTest {
-
- @Rule public EasyMockRule mockRule = new EasyMockRule(this);
-
- @Mock ArticleReader mockArticleReader;
-
- @Mock IArticleWriter mockArticleWriter;
-
- @TestSubject BaeldungReader baeldungReader = new BaeldungReader();
-
- @Test
- public void givenBaeldungReader_whenReadNext_thenNextArticleRead() {
- expect(mockArticleReader.next()).andReturn(null);
- replay(mockArticleReader);
- baeldungReader.readNext();
- verify(mockArticleReader);
- }
-
- @Mock BaeldungReader mockBaeldungReader;
-
- @Test
- public void givenBaeldungReader_whenWrite_thenWriterCalled() {
- expect(mockArticleWriter.write("title", "content")).andReturn(null);
- replay(mockArticleWriter);
- baeldungReader.write("title", "content");
- verify(mockArticleWriter);
- }
-
- @Test
- public void givenArticlesInReader_whenReadTillEnd_thenThrowException() {
- expect(mockArticleReader.next())
- .andReturn(null)
- .times(2)
- .andThrow(new NoSuchElementException());
- replay(mockArticleReader);
- try {
- for (int i = 0; i < 3; i++) {
- baeldungReader.readNext();
- }
- } catch (Exception ignored) {
- }
- verify(mockArticleReader);
- }
-
-}
-
+package com.baeldung.easymock;
+
+import org.easymock.EasyMockRule;
+import org.easymock.Mock;
+import org.easymock.TestSubject;
+import org.junit.*;
+
+import java.util.NoSuchElementException;
+
+import static org.easymock.EasyMock.*;
+
+public class BaeldungReaderAnnotatedWithRuleUnitTest {
+
+ @Rule public EasyMockRule mockRule = new EasyMockRule(this);
+
+ @Mock ArticleReader mockArticleReader;
+
+ @Mock IArticleWriter mockArticleWriter;
+
+ @TestSubject BaeldungReader baeldungReader = new BaeldungReader();
+
+ @Test
+ public void givenBaeldungReader_whenReadNext_thenNextArticleRead() {
+ expect(mockArticleReader.next()).andReturn(null);
+ replay(mockArticleReader);
+ baeldungReader.readNext();
+ verify(mockArticleReader);
+ }
+
+ @Mock BaeldungReader mockBaeldungReader;
+
+ @Test
+ public void givenBaeldungReader_whenWrite_thenWriterCalled() {
+ expect(mockArticleWriter.write("title", "content")).andReturn(null);
+ replay(mockArticleWriter);
+ baeldungReader.write("title", "content");
+ verify(mockArticleWriter);
+ }
+
+ @Test
+ public void givenArticlesInReader_whenReadTillEnd_thenThrowException() {
+ expect(mockArticleReader.next())
+ .andReturn(null)
+ .times(2)
+ .andThrow(new NoSuchElementException());
+ replay(mockArticleReader);
+ try {
+ for (int i = 0; i < 3; i++) {
+ baeldungReader.readNext();
+ }
+ } catch (Exception ignored) {
+ }
+ verify(mockArticleReader);
+ }
+
+}
+
diff --git a/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderMockDelegationUnitTest.java b/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderMockDelegationUnitTest.java
old mode 100755
new mode 100644
index 89d3a2baee..6d8b553df7
--- a/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderMockDelegationUnitTest.java
+++ b/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderMockDelegationUnitTest.java
@@ -1,27 +1,27 @@
-package com.baeldung.easymock;
-
-import org.easymock.*;
-import org.junit.*;
-
-import static org.easymock.EasyMock.*;
-
-public class BaeldungReaderMockDelegationUnitTest {
-
- EasyMockSupport easyMockSupport = new EasyMockSupport();
-
- @Test
- public void givenBaeldungReader_whenReadAndWriteSequencially_thenWorks() {
- ArticleReader mockArticleReader = easyMockSupport.createMock(ArticleReader.class);
- IArticleWriter mockArticleWriter = easyMockSupport.createMock(IArticleWriter.class);
- BaeldungReader baeldungReader = new BaeldungReader(mockArticleReader, mockArticleWriter);
-
- expect(mockArticleReader.next()).andReturn(null);
- expect(mockArticleWriter.write("title", "content")).andReturn("");
- easyMockSupport.replayAll();
-
- baeldungReader.readNext();
- baeldungReader.write("title", "content");
- easyMockSupport.verifyAll();
- }
-
+package com.baeldung.easymock;
+
+import org.easymock.*;
+import org.junit.*;
+
+import static org.easymock.EasyMock.*;
+
+public class BaeldungReaderMockDelegationUnitTest {
+
+ EasyMockSupport easyMockSupport = new EasyMockSupport();
+
+ @Test
+ public void givenBaeldungReader_whenReadAndWriteSequencially_thenWorks() {
+ ArticleReader mockArticleReader = easyMockSupport.createMock(ArticleReader.class);
+ IArticleWriter mockArticleWriter = easyMockSupport.createMock(IArticleWriter.class);
+ BaeldungReader baeldungReader = new BaeldungReader(mockArticleReader, mockArticleWriter);
+
+ expect(mockArticleReader.next()).andReturn(null);
+ expect(mockArticleWriter.write("title", "content")).andReturn("");
+ easyMockSupport.replayAll();
+
+ baeldungReader.readNext();
+ baeldungReader.write("title", "content");
+ easyMockSupport.verifyAll();
+ }
+
}
\ No newline at end of file
diff --git a/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderMockSupportUnitTest.java b/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderMockSupportUnitTest.java
old mode 100755
new mode 100644
index cd0c906949..8b5c4d9d41
--- a/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderMockSupportUnitTest.java
+++ b/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderMockSupportUnitTest.java
@@ -1,42 +1,42 @@
-package com.baeldung.easymock;
-
-import org.easymock.*;
-import org.junit.*;
-import org.junit.runner.RunWith;
-
-import java.util.NoSuchElementException;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.assertEquals;
-
-@RunWith(EasyMockRunner.class)
-public class BaeldungReaderMockSupportUnitTest extends EasyMockSupport {
-
- @TestSubject BaeldungReader baeldungReader = new BaeldungReader();
- @Mock ArticleReader mockArticleReader;
- @Mock IArticleWriter mockArticleWriter;
-
- @Test
- public void givenBaeldungReader_whenReadAndWriteSequencially_thenWorks() {
- expect(mockArticleReader.next())
- .andReturn(null)
- .times(2)
- .andThrow(new NoSuchElementException());
- expect(mockArticleWriter.write("title", "content")).andReturn("BAEL-201801");
- replayAll();
-
- Exception expectedException = null;
- try {
- for (int i = 0; i < 3; i++) {
- baeldungReader.readNext();
- }
- } catch (Exception exception) {
- expectedException = exception;
- }
- String articleId = baeldungReader.write("title", "content");
- verifyAll();
- assertEquals(NoSuchElementException.class, expectedException.getClass());
- assertEquals("BAEL-201801", articleId);
- }
-
+package com.baeldung.easymock;
+
+import org.easymock.*;
+import org.junit.*;
+import org.junit.runner.RunWith;
+
+import java.util.NoSuchElementException;
+
+import static org.easymock.EasyMock.*;
+import static org.junit.Assert.assertEquals;
+
+@RunWith(EasyMockRunner.class)
+public class BaeldungReaderMockSupportUnitTest extends EasyMockSupport {
+
+ @TestSubject BaeldungReader baeldungReader = new BaeldungReader();
+ @Mock ArticleReader mockArticleReader;
+ @Mock IArticleWriter mockArticleWriter;
+
+ @Test
+ public void givenBaeldungReader_whenReadAndWriteSequencially_thenWorks() {
+ expect(mockArticleReader.next())
+ .andReturn(null)
+ .times(2)
+ .andThrow(new NoSuchElementException());
+ expect(mockArticleWriter.write("title", "content")).andReturn("BAEL-201801");
+ replayAll();
+
+ Exception expectedException = null;
+ try {
+ for (int i = 0; i < 3; i++) {
+ baeldungReader.readNext();
+ }
+ } catch (Exception exception) {
+ expectedException = exception;
+ }
+ String articleId = baeldungReader.write("title", "content");
+ verifyAll();
+ assertEquals(NoSuchElementException.class, expectedException.getClass());
+ assertEquals("BAEL-201801", articleId);
+ }
+
}
\ No newline at end of file
diff --git a/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderUnitTest.java b/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderUnitTest.java
old mode 100755
new mode 100644
index 31f6af116c..12fce4b07a
--- a/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderUnitTest.java
+++ b/testing-modules/mocks/mock-comparisons/src/test/java/com/baeldung/easymock/BaeldungReaderUnitTest.java
@@ -1,105 +1,105 @@
-package com.baeldung.easymock;
-
-import org.junit.*;
-
-import java.util.NoSuchElementException;
-
-import static org.easymock.EasyMock.*;
-import static org.junit.Assert.assertEquals;
-
-public class BaeldungReaderUnitTest {
-
- private BaeldungReader baeldungReader;
-
- private ArticleReader mockArticleReader;
-
- private IArticleWriter mockArticleWriter;
-
- @Test
- public void givenBaeldungReader_whenReadNext_thenNextArticleRead() {
- mockArticleReader = mock(ArticleReader.class);
- baeldungReader = new BaeldungReader(mockArticleReader);
-
- expect(mockArticleReader.next()).andReturn(null);
- replay(mockArticleReader);
-
- BaeldungArticle article = baeldungReader.readNext();
- verify(mockArticleReader);
- assertEquals(null, article);
- }
-
- @Test
- public void givenBaeldungReader_whenReadNextAndSkimTopics_thenAllAllowed() {
- mockArticleReader = strictMock(ArticleReader.class);
- baeldungReader = new BaeldungReader(mockArticleReader);
-
- expect(mockArticleReader.next()).andReturn(null);
- expect(mockArticleReader.ofTopic("easymock")).andReturn(null);
- replay(mockArticleReader);
-
- baeldungReader.readNext();
- baeldungReader.readTopic("easymock");
- verify(mockArticleReader);
- }
-
- @Test
- public void givenBaeldungReader_whenReadNextAndOthers_thenAllowed() {
- mockArticleReader = niceMock(ArticleReader.class);
- baeldungReader = new BaeldungReader(mockArticleReader);
-
- expect(mockArticleReader.next()).andReturn(null);
- replay(mockArticleReader);
-
- baeldungReader.readNext();
- baeldungReader.readTopic("easymock");
- verify(mockArticleReader);
- }
-
- @Test
- public void givenBaeldungReader_whenWriteMaliciousContent_thenArgumentIllegal() {
- mockArticleWriter = mock(IArticleWriter.class);
- baeldungReader = new BaeldungReader(mockArticleWriter);
- expect(mockArticleWriter.write("easymock", "")).andThrow(new IllegalArgumentException());
- replay(mockArticleWriter);
-
- Exception expectedException = null;
- try {
- baeldungReader.write("easymock", "");
- } catch (Exception exception) {
- expectedException = exception;
- }
-
- verify(mockArticleWriter);
- assertEquals(IllegalArgumentException.class, expectedException.getClass());
- }
-
- @Test
- public void givenBaeldungReader_whenWrite_thenWriterCalled() {
- mockArticleWriter = mock(IArticleWriter.class);
- baeldungReader = new BaeldungReader(mockArticleWriter);
- expect(mockArticleWriter.write("title", "content")).andReturn(null);
- replay(mockArticleWriter);
- String articleId = baeldungReader.write("title", "content");
- verify(mockArticleWriter);
- assertEquals(null, articleId);
- }
-
- @Test
- public void givenArticlesInReader_whenReadTillEnd_thenThrowException() {
- ArticleReader mockArticleReader = mock(ArticleReader.class);
- baeldungReader = new BaeldungReader(mockArticleReader);
- expect(mockArticleReader.next())
- .andReturn(null)
- .times(2)
- .andThrow(new NoSuchElementException());
- replay(mockArticleReader);
- try {
- for (int i = 0; i < 3; i++) {
- baeldungReader.readNext();
- }
- } catch (Exception ignored) {
- }
- verify(mockArticleReader);
- }
-
+package com.baeldung.easymock;
+
+import org.junit.*;
+
+import java.util.NoSuchElementException;
+
+import static org.easymock.EasyMock.*;
+import static org.junit.Assert.assertEquals;
+
+public class BaeldungReaderUnitTest {
+
+ private BaeldungReader baeldungReader;
+
+ private ArticleReader mockArticleReader;
+
+ private IArticleWriter mockArticleWriter;
+
+ @Test
+ public void givenBaeldungReader_whenReadNext_thenNextArticleRead() {
+ mockArticleReader = mock(ArticleReader.class);
+ baeldungReader = new BaeldungReader(mockArticleReader);
+
+ expect(mockArticleReader.next()).andReturn(null);
+ replay(mockArticleReader);
+
+ BaeldungArticle article = baeldungReader.readNext();
+ verify(mockArticleReader);
+ assertEquals(null, article);
+ }
+
+ @Test
+ public void givenBaeldungReader_whenReadNextAndSkimTopics_thenAllAllowed() {
+ mockArticleReader = strictMock(ArticleReader.class);
+ baeldungReader = new BaeldungReader(mockArticleReader);
+
+ expect(mockArticleReader.next()).andReturn(null);
+ expect(mockArticleReader.ofTopic("easymock")).andReturn(null);
+ replay(mockArticleReader);
+
+ baeldungReader.readNext();
+ baeldungReader.readTopic("easymock");
+ verify(mockArticleReader);
+ }
+
+ @Test
+ public void givenBaeldungReader_whenReadNextAndOthers_thenAllowed() {
+ mockArticleReader = niceMock(ArticleReader.class);
+ baeldungReader = new BaeldungReader(mockArticleReader);
+
+ expect(mockArticleReader.next()).andReturn(null);
+ replay(mockArticleReader);
+
+ baeldungReader.readNext();
+ baeldungReader.readTopic("easymock");
+ verify(mockArticleReader);
+ }
+
+ @Test
+ public void givenBaeldungReader_whenWriteMaliciousContent_thenArgumentIllegal() {
+ mockArticleWriter = mock(IArticleWriter.class);
+ baeldungReader = new BaeldungReader(mockArticleWriter);
+ expect(mockArticleWriter.write("easymock", "")).andThrow(new IllegalArgumentException());
+ replay(mockArticleWriter);
+
+ Exception expectedException = null;
+ try {
+ baeldungReader.write("easymock", "");
+ } catch (Exception exception) {
+ expectedException = exception;
+ }
+
+ verify(mockArticleWriter);
+ assertEquals(IllegalArgumentException.class, expectedException.getClass());
+ }
+
+ @Test
+ public void givenBaeldungReader_whenWrite_thenWriterCalled() {
+ mockArticleWriter = mock(IArticleWriter.class);
+ baeldungReader = new BaeldungReader(mockArticleWriter);
+ expect(mockArticleWriter.write("title", "content")).andReturn(null);
+ replay(mockArticleWriter);
+ String articleId = baeldungReader.write("title", "content");
+ verify(mockArticleWriter);
+ assertEquals(null, articleId);
+ }
+
+ @Test
+ public void givenArticlesInReader_whenReadTillEnd_thenThrowException() {
+ ArticleReader mockArticleReader = mock(ArticleReader.class);
+ baeldungReader = new BaeldungReader(mockArticleReader);
+ expect(mockArticleReader.next())
+ .andReturn(null)
+ .times(2)
+ .andThrow(new NoSuchElementException());
+ replay(mockArticleReader);
+ try {
+ for (int i = 0; i < 3; i++) {
+ baeldungReader.readNext();
+ }
+ } catch (Exception ignored) {
+ }
+ verify(mockArticleReader);
+ }
+
}
\ No newline at end of file
diff --git a/testing-modules/pom.xml b/testing-modules/pom.xml
index e15fdb4a37..5102e09349 100644
--- a/testing-modules/pom.xml
+++ b/testing-modules/pom.xml
@@ -2,8 +2,8 @@
4.0.0
- testing-modules
- testing-modules
+ testing-libraries
+ testing-libraries
pom
@@ -31,7 +31,6 @@
selenium-junit-testng
spring-testing
test-containers
- testing
testng
junit-5-basics
easymock
diff --git a/testing-modules/rest-assured/src/test/java/com/baeldung/restassured/Odd.java b/testing-modules/rest-assured/src/test/java/com/baeldung/restassured/Odd.java
index f60f1764c6..c3f82f0836 100644
--- a/testing-modules/rest-assured/src/test/java/com/baeldung/restassured/Odd.java
+++ b/testing-modules/rest-assured/src/test/java/com/baeldung/restassured/Odd.java
@@ -1,49 +1,49 @@
-package com.baeldung.restassured;
-
-public class Odd {
-
- float price;
- int status;
- float ck;
- String name;
-
- Odd(float price, int status, float ck, String name) {
- this.price = price;
- this.status = status;
- this.ck = ck;
- this.name = name;
- }
-
- public float getPrice() {
- return price;
- }
-
- public void setPrice(float price) {
- this.price = price;
- }
-
- public int getStatus() {
- return status;
- }
-
- public void setStatus(int status) {
- this.status = status;
- }
-
- public float getCk() {
- return ck;
- }
-
- public void setCk(float ck) {
- this.ck = ck;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
-}
+package com.baeldung.restassured;
+
+public class Odd {
+
+ float price;
+ int status;
+ float ck;
+ String name;
+
+ Odd(float price, int status, float ck, String name) {
+ this.price = price;
+ this.status = status;
+ this.ck = ck;
+ this.name = name;
+ }
+
+ public float getPrice() {
+ return price;
+ }
+
+ public void setPrice(float price) {
+ this.price = price;
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+ public float getCk() {
+ return ck;
+ }
+
+ public void setCk(float ck) {
+ this.ck = ck;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+}
diff --git a/testing-modules/selenium-junit-testng/geckodriver.mac b/testing-modules/selenium-junit-testng/geckodriver.mac
old mode 100755
new mode 100644
diff --git a/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/Employee.java b/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/Employee.java
index 0677b05d66..8d4eeb57c4 100644
--- a/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/Employee.java
+++ b/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/Employee.java
@@ -1,23 +1,23 @@
-package org.baeldung.reflectiontestutils.repository;
-
-public class Employee {
- private Integer id;
- private String name;
-
- public Integer getId() {
- return id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- private String employeeToString() {
- return "id: " + getId() + "; name: " + getName();
- }
-
-}
+package org.baeldung.reflectiontestutils.repository;
+
+public class Employee {
+ private Integer id;
+ private String name;
+
+ public Integer getId() {
+ return id;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ private String employeeToString() {
+ return "id: " + getId() + "; name: " + getName();
+ }
+
+}
diff --git a/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/EmployeeService.java b/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/EmployeeService.java
index 699ec3236c..d28745e2ab 100644
--- a/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/EmployeeService.java
+++ b/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/EmployeeService.java
@@ -1,14 +1,14 @@
-package org.baeldung.reflectiontestutils.repository;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-
-@Component
-public class EmployeeService {
- @Autowired
- private HRService hrService;
-
- public String findEmployeeStatus(Integer employeeId) {
- return "Employee " + employeeId + " status: " + hrService.getEmployeeStatus(employeeId);
- }
-}
+package org.baeldung.reflectiontestutils.repository;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+@Component
+public class EmployeeService {
+ @Autowired
+ private HRService hrService;
+
+ public String findEmployeeStatus(Integer employeeId) {
+ return "Employee " + employeeId + " status: " + hrService.getEmployeeStatus(employeeId);
+ }
+}
diff --git a/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/HRService.java b/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/HRService.java
index e693aca764..13a5973ee8 100644
--- a/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/HRService.java
+++ b/testing-modules/spring-testing/src/main/java/org/baeldung/reflectiontestutils/repository/HRService.java
@@ -1,11 +1,11 @@
-package org.baeldung.reflectiontestutils.repository;
-
-import org.springframework.stereotype.Component;
-
-@Component
-public class HRService {
-
- public String getEmployeeStatus(Integer employeeId) {
- return "Inactive";
- }
-}
+package org.baeldung.reflectiontestutils.repository;
+
+import org.springframework.stereotype.Component;
+
+@Component
+public class HRService {
+
+ public String getEmployeeStatus(Integer employeeId) {
+ return "Inactive";
+ }
+}
diff --git a/testing-modules/spring-testing/src/test/java/org/baeldung/reflectiontestutils/ReflectionTestUtilsUnitTest.java b/testing-modules/spring-testing/src/test/java/org/baeldung/reflectiontestutils/ReflectionTestUtilsUnitTest.java
index 64c7ca19ef..36e5428b58 100644
--- a/testing-modules/spring-testing/src/test/java/org/baeldung/reflectiontestutils/ReflectionTestUtilsUnitTest.java
+++ b/testing-modules/spring-testing/src/test/java/org/baeldung/reflectiontestutils/ReflectionTestUtilsUnitTest.java
@@ -1,46 +1,46 @@
-package org.baeldung.reflectiontestutils;
-
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.mock;
-
-import org.baeldung.reflectiontestutils.repository.Employee;
-import org.baeldung.reflectiontestutils.repository.EmployeeService;
-import org.baeldung.reflectiontestutils.repository.HRService;
-import org.junit.Test;
-import org.springframework.test.util.ReflectionTestUtils;
-
-import static org.mockito.Mockito.when;
-
-public class ReflectionTestUtilsUnitTest {
-
- @Test
- public void whenNonPublicField_thenReflectionTestUtilsSetField() {
- Employee employee = new Employee();
- ReflectionTestUtils.setField(employee, "id", 1);
- assertTrue(employee.getId().equals(1));
-
- }
-
- @Test
- public void whenNonPublicMethod_thenReflectionTestUtilsInvokeMethod() {
- Employee employee = new Employee();
- ReflectionTestUtils.setField(employee, "id", 1);
- employee.setName("Smith, John");
- assertTrue(ReflectionTestUtils.invokeMethod(employee, "employeeToString").equals("id: 1; name: Smith, John"));
- }
-
- @Test
- public void whenInjectingMockOfDependency_thenReflectionTestUtilsSetField() {
- Employee employee = new Employee();
- ReflectionTestUtils.setField(employee, "id", 1);
- employee.setName("Smith, John");
-
- HRService hrService = mock(HRService.class);
- when(hrService.getEmployeeStatus(employee.getId())).thenReturn("Active");
- EmployeeService employeeService = new EmployeeService();
-
- // Inject mock into the private field
- ReflectionTestUtils.setField(employeeService, "hrService", hrService);
- assertEquals("Employee " + employee.getId() + " status: Active", employeeService.findEmployeeStatus(employee.getId()));
- }
-}
+package org.baeldung.reflectiontestutils;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+
+import org.baeldung.reflectiontestutils.repository.Employee;
+import org.baeldung.reflectiontestutils.repository.EmployeeService;
+import org.baeldung.reflectiontestutils.repository.HRService;
+import org.junit.Test;
+import org.springframework.test.util.ReflectionTestUtils;
+
+import static org.mockito.Mockito.when;
+
+public class ReflectionTestUtilsUnitTest {
+
+ @Test
+ public void whenNonPublicField_thenReflectionTestUtilsSetField() {
+ Employee employee = new Employee();
+ ReflectionTestUtils.setField(employee, "id", 1);
+ assertTrue(employee.getId().equals(1));
+
+ }
+
+ @Test
+ public void whenNonPublicMethod_thenReflectionTestUtilsInvokeMethod() {
+ Employee employee = new Employee();
+ ReflectionTestUtils.setField(employee, "id", 1);
+ employee.setName("Smith, John");
+ assertTrue(ReflectionTestUtils.invokeMethod(employee, "employeeToString").equals("id: 1; name: Smith, John"));
+ }
+
+ @Test
+ public void whenInjectingMockOfDependency_thenReflectionTestUtilsSetField() {
+ Employee employee = new Employee();
+ ReflectionTestUtils.setField(employee, "id", 1);
+ employee.setName("Smith, John");
+
+ HRService hrService = mock(HRService.class);
+ when(hrService.getEmployeeStatus(employee.getId())).thenReturn("Active");
+ EmployeeService employeeService = new EmployeeService();
+
+ // Inject mock into the private field
+ ReflectionTestUtils.setField(employeeService, "hrService", hrService);
+ assertEquals("Employee " + employee.getId() + " status: Active", employeeService.findEmployeeStatus(employee.getId()));
+ }
+}
diff --git a/testing-modules/testing/README.md b/testing-modules/testing/README.md
deleted file mode 100644
index 135ef1054a..0000000000
--- a/testing-modules/testing/README.md
+++ /dev/null
@@ -1,24 +0,0 @@
-=========
-
-## Mutation Testing
-
-### Relevant Articles:
-- [Mutation Testing with PITest](http://www.baeldung.com/java-mutation-testing-with-pitest)
-- [Intro to JaCoCo](http://www.baeldung.com/jacoco)
-- [AssertJās Java 8 Features](http://www.baeldung.com/assertJ-java-8-features)
-- [AssertJ for Guava](http://www.baeldung.com/assertJ-for-guava)
-- [Introduction to AssertJ](http://www.baeldung.com/introduction-to-assertj)
-- [Cucumber and Scenario Outline](http://www.baeldung.com/cucumber-scenario-outline)
-- [Testing with Google Truth](http://www.baeldung.com/google-truth)
-- [Testing with JGoTesting](http://www.baeldung.com/jgotesting)
-- [Introduction to JUnitParams](http://www.baeldung.com/junit-params)
-- [Cucumber Java 8 Support](http://www.baeldung.com/cucumber-java-8-support)
-- [Introduction to Lambda Behave](http://www.baeldung.com/lambda-behave)
-- [Introduction to Jukito](http://www.baeldung.com/jukito)
-- [Custom JUnit 4 Test Runners](http://www.baeldung.com/junit-4-custom-runners)
-- [Guide to JSpec](http://www.baeldung.com/jspec)
-- [Custom Assertions with AssertJ](http://www.baeldung.com/assertj-custom-assertion)
-- [Using Conditions with AssertJ Assertions](http://www.baeldung.com/assertj-conditions)
-- [A Guide to JavaFaker](https://www.baeldung.com/java-faker)
-- [Running JUnit Tests Programmatically, from a Java Application](https://www.baeldung.com/junit-tests-run-programmatically-from-java)
-- [AssertJ Exception Assertions](http://www.baeldung.com/assertj-exception-assertion)
diff --git a/testing-modules/testing/pom.xml b/testing-modules/testing/pom.xml
deleted file mode 100644
index ccfa1070d1..0000000000
--- a/testing-modules/testing/pom.xml
+++ /dev/null
@@ -1,183 +0,0 @@
-
- 4.0.0
- com.baeldung
- testing
- 0.1-SNAPSHOT
- testing
-
-
- com.baeldung
- parent-java
- 0.0.1-SNAPSHOT
- ../../parent-java
-
-
-
-
- com.insightfullogic
- lambda-behave
- ${lambda-behave.version}
-
-
- org.assertj
- assertj-guava
- ${assertj-guava.version}
-
-
- org.assertj
- assertj-core
- ${assertj-core.version}
- test
-
-
- info.cukes
- cucumber-junit
- ${cucumber.version}
- test
-
-
- info.cukes
- cucumber-java
- ${cucumber.version}
- test
-
-
- info.cukes
- cucumber-java8
- ${cucumber.version}
- test
-
-
- org.pitest
- pitest-parent
- ${pitest.version}
- pom
-
-
- com.google.truth
- truth
- ${truth.version}
-
-
- com.google.truth.extensions
- truth-java8-extension
- ${truth.version}
- test
-
-
- pl.pragmatists
- JUnitParams
- ${jUnitParams.version}
- test
-
-
- org.jgotesting
- jgotesting
- ${jgotesting.version}
- test
-
-
- org.jukito
- jukito
- ${jukito.version}
- test
-
-
- org.javalite
- javalite-common
- ${javalite.version}
-
-
- com.github.javafaker
- javafaker
- ${javafaker.version}
-
-
-
-
-
-
- org.pitest
- pitest-maven
- ${pitest.version}
-
-
- com.baeldung.testing.mutation.*
-
-
- com.baeldung.mutation.test.*
-
-
-
-
- org.jacoco
- jacoco-maven-plugin
- ${jacoco.version}
-
-
-
- prepare-agent
-
-
-
- report
- prepare-package
-
- report
-
-
-
- jacoco-check
-
- check
-
-
-
-
- PACKAGE
-
-
- LINE
- COVEREDRATIO
- 0
-
-
-
-
-
-
-
-
-
- org.assertj
- assertj-assertions-generator-maven-plugin
- ${assertj-generator.version}
-
-
- com.baeldung.testing.assertj.custom.Person
-
-
-
-
-
-
-
- 1.2.5
- 1.1.10
- 0.7.7.201606060606
- 21.0
- 3.1.0
- 3.9.0
- 2.1.0
- 0.32
- 1.1.0
- 0.12
- 1.4.13
- 0.4
- 3.0.0
- 1.5
- 0.15
-
-
-
diff --git a/testing-modules/testing/src/main/resources/logback.xml b/testing-modules/testing/src/main/resources/logback.xml
deleted file mode 100644
index 7d900d8ea8..0000000000
--- a/testing-modules/testing/src/main/resources/logback.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/testing-modules/testng/pom.xml b/testing-modules/testng/pom.xml
index 8389604717..5d0c9f126b 100644
--- a/testing-modules/testng/pom.xml
+++ b/testing-modules/testng/pom.xml
@@ -1,48 +1,48 @@
-
-
- 4.0.0
- testng
- 0.1.0-SNAPSHOT
- testng
- jar
-
-
- com.baeldung
- parent-modules
- 1.0.0-SNAPSHOT
- ../../
-
-
-
-
-
- org.testng
- testng
- ${testng.version}
- test
-
-
-
-
- testng
-
-
- src/main/resources
- true
-
-
-
-
- src/main/resources
- true
-
-
-
-
-
-
- 6.10
-
-
+
+
+ 4.0.0
+ testng
+ 0.1.0-SNAPSHOT
+ testng
+ jar
+
+
+ com.baeldung
+ parent-modules
+ 1.0.0-SNAPSHOT
+ ../../
+
+
+
+
+
+ org.testng
+ testng
+ ${testng.version}
+ test
+
+
+
+
+ testng
+
+
+ src/main/resources
+ true
+
+
+
+
+ src/main/resources
+ true
+
+
+
+
+
+
+ 6.10
+
+
\ No newline at end of file
diff --git a/testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedListener.java b/testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedListener.java
index 1a0ff190e3..669d6a1a4c 100644
--- a/testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedListener.java
+++ b/testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedListener.java
@@ -1,67 +1,67 @@
-package com.baeldung.reports;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.ITestContext;
-import org.testng.ITestListener;
-import org.testng.ITestResult;
-
-public class CustomisedListener implements ITestListener {
- private static final Logger LOGGER = LoggerFactory.getLogger("CUSTOM_LOGS");
-
- @Override
- public void onFinish(ITestContext context) {
- LOGGER.info("PASSED TEST CASES");
- context.getPassedTests()
- .getAllResults()
- .forEach(result -> {
- LOGGER.info(result.getName());
- });
- LOGGER.info("FAILED TEST CASES");
- context.getFailedTests()
- .getAllResults()
- .forEach(result -> {
- LOGGER.info(result.getName());
- });
- LOGGER.info("Test completed on: " + context.getEndDate()
- .toString());
- }
-
- @Override
- public void onStart(ITestContext arg0) {
- LOGGER.info("Started testing on: " + arg0.getStartDate()
- .toString());
- }
-
- @Override
- public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
- // TODO Auto-generated method stub
-
- }
-
- @Override
- public void onTestFailure(ITestResult arg0) {
- LOGGER.info("Failed : " + arg0.getName());
-
- }
-
- @Override
- public void onTestSkipped(ITestResult arg0) {
- LOGGER.info("Skipped Test: " + arg0.getName());
-
- }
-
- @Override
- public void onTestStart(ITestResult arg0) {
- LOGGER.info("Testing: " + arg0.getName());
-
- }
-
- @Override
- public void onTestSuccess(ITestResult arg0) {
- long timeTaken = ((arg0.getEndMillis() - arg0.getStartMillis()));
- LOGGER.info("Tested: " + arg0.getName() + " Time taken:" + timeTaken + " ms");
-
- }
-
-}
+package com.baeldung.reports;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.ITestContext;
+import org.testng.ITestListener;
+import org.testng.ITestResult;
+
+public class CustomisedListener implements ITestListener {
+ private static final Logger LOGGER = LoggerFactory.getLogger("CUSTOM_LOGS");
+
+ @Override
+ public void onFinish(ITestContext context) {
+ LOGGER.info("PASSED TEST CASES");
+ context.getPassedTests()
+ .getAllResults()
+ .forEach(result -> {
+ LOGGER.info(result.getName());
+ });
+ LOGGER.info("FAILED TEST CASES");
+ context.getFailedTests()
+ .getAllResults()
+ .forEach(result -> {
+ LOGGER.info(result.getName());
+ });
+ LOGGER.info("Test completed on: " + context.getEndDate()
+ .toString());
+ }
+
+ @Override
+ public void onStart(ITestContext arg0) {
+ LOGGER.info("Started testing on: " + arg0.getStartDate()
+ .toString());
+ }
+
+ @Override
+ public void onTestFailedButWithinSuccessPercentage(ITestResult arg0) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void onTestFailure(ITestResult arg0) {
+ LOGGER.info("Failed : " + arg0.getName());
+
+ }
+
+ @Override
+ public void onTestSkipped(ITestResult arg0) {
+ LOGGER.info("Skipped Test: " + arg0.getName());
+
+ }
+
+ @Override
+ public void onTestStart(ITestResult arg0) {
+ LOGGER.info("Testing: " + arg0.getName());
+
+ }
+
+ @Override
+ public void onTestSuccess(ITestResult arg0) {
+ long timeTaken = ((arg0.getEndMillis() - arg0.getStartMillis()));
+ LOGGER.info("Tested: " + arg0.getName() + " Time taken:" + timeTaken + " ms");
+
+ }
+
+}
diff --git a/testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedReports.java b/testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedReports.java
index 2c57993e0b..6d53043918 100644
--- a/testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedReports.java
+++ b/testing-modules/testng/src/test/java/com/baeldung/reports/CustomisedReports.java
@@ -1,111 +1,111 @@
-package com.baeldung.reports;
-
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-import org.testng.*;
-import org.testng.xml.XmlSuite;
-
-import java.io.*;
-import java.nio.file.Files;
-import java.nio.file.Paths;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.function.Function;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
-
-import static java.util.stream.Collectors.toList;
-
-public class CustomisedReports implements IReporter {
- private static final Logger LOGGER = LoggerFactory.getLogger(CustomisedReports.class);
-
- private static final String ROW_TEMPLATE = "%s | %s | %s | %s | %s |
";
-
- public void generateReport(List xmlSuites, List suites, String outputDirectory) {
- String reportTemplate = initReportTemplate();
-
- final String body = suites
- .stream()
- .flatMap(suiteToResults())
- .collect(Collectors.joining());
-
- saveReportTemplate(outputDirectory, reportTemplate.replaceFirst("", String.format("%s", body)));
- }
-
- private Function> suiteToResults() {
- return suite -> suite.getResults().entrySet()
- .stream()
- .flatMap(resultsToRows(suite));
- }
-
- private Function, Stream extends String>> resultsToRows(ISuite suite) {
- return e -> {
- ITestContext testContext = e.getValue().getTestContext();
-
- Set failedTests = testContext
- .getFailedTests()
- .getAllResults();
- Set passedTests = testContext
- .getPassedTests()
- .getAllResults();
- Set skippedTests = testContext
- .getSkippedTests()
- .getAllResults();
-
- String suiteName = suite.getName();
-
- return Stream
- .of(failedTests, passedTests, skippedTests)
- .flatMap(results -> generateReportRows(e.getKey(), suiteName, results).stream());
- };
- }
-
- private List generateReportRows(String testName, String suiteName, Set allTestResults) {
- return allTestResults.stream()
- .map(testResultToResultRow(testName, suiteName))
- .collect(toList());
- }
-
- private Function testResultToResultRow(String testName, String suiteName) {
- return testResult -> {
- switch (testResult.getStatus()) {
- case ITestResult.FAILURE:
- return String.format(ROW_TEMPLATE, "danger", suiteName, testName, testResult.getName(), "FAILED", "NA");
-
- case ITestResult.SUCCESS:
- return String.format(ROW_TEMPLATE, "success", suiteName, testName, testResult.getName(), "PASSED", String.valueOf(testResult.getEndMillis() - testResult.getStartMillis()));
-
- case ITestResult.SKIP:
- return String.format(ROW_TEMPLATE, "warning", suiteName, testName, testResult.getName(), "SKIPPED", "NA");
-
- default:
- return "";
- }
- };
- }
-
- private String initReportTemplate() {
- String template = null;
- byte[] reportTemplate;
- try {
- reportTemplate = Files.readAllBytes(Paths.get("src/test/resources/reportTemplate.html"));
- template = new String(reportTemplate, "UTF-8");
- } catch (IOException e) {
- LOGGER.error("Problem initializing template", e);
- }
- return template;
- }
-
- private void saveReportTemplate(String outputDirectory, String reportTemplate) {
- new File(outputDirectory).mkdirs();
- try {
- PrintWriter reportWriter = new PrintWriter(new BufferedWriter(new FileWriter(new File(outputDirectory, "my-report.html"))));
- reportWriter.println(reportTemplate);
- reportWriter.flush();
- reportWriter.close();
- } catch (IOException e) {
- LOGGER.error("Problem saving template", e);
- }
- }
-}
+package com.baeldung.reports;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.testng.*;
+import org.testng.xml.XmlSuite;
+
+import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Paths;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static java.util.stream.Collectors.toList;
+
+public class CustomisedReports implements IReporter {
+ private static final Logger LOGGER = LoggerFactory.getLogger(CustomisedReports.class);
+
+ private static final String ROW_TEMPLATE = "%s | %s | %s | %s | %s |
";
+
+ public void generateReport(List xmlSuites, List suites, String outputDirectory) {
+ String reportTemplate = initReportTemplate();
+
+ final String body = suites
+ .stream()
+ .flatMap(suiteToResults())
+ .collect(Collectors.joining());
+
+ saveReportTemplate(outputDirectory, reportTemplate.replaceFirst("", String.format("%s", body)));
+ }
+
+ private Function> suiteToResults() {
+ return suite -> suite.getResults().entrySet()
+ .stream()
+ .flatMap(resultsToRows(suite));
+ }
+
+ private Function, Stream extends String>> resultsToRows(ISuite suite) {
+ return e -> {
+ ITestContext testContext = e.getValue().getTestContext();
+
+ Set failedTests = testContext
+ .getFailedTests()
+ .getAllResults();
+ Set passedTests = testContext
+ .getPassedTests()
+ .getAllResults();
+ Set skippedTests = testContext
+ .getSkippedTests()
+ .getAllResults();
+
+ String suiteName = suite.getName();
+
+ return Stream
+ .of(failedTests, passedTests, skippedTests)
+ .flatMap(results -> generateReportRows(e.getKey(), suiteName, results).stream());
+ };
+ }
+
+ private List generateReportRows(String testName, String suiteName, Set allTestResults) {
+ return allTestResults.stream()
+ .map(testResultToResultRow(testName, suiteName))
+ .collect(toList());
+ }
+
+ private Function testResultToResultRow(String testName, String suiteName) {
+ return testResult -> {
+ switch (testResult.getStatus()) {
+ case ITestResult.FAILURE:
+ return String.format(ROW_TEMPLATE, "danger", suiteName, testName, testResult.getName(), "FAILED", "NA");
+
+ case ITestResult.SUCCESS:
+ return String.format(ROW_TEMPLATE, "success", suiteName, testName, testResult.getName(), "PASSED", String.valueOf(testResult.getEndMillis() - testResult.getStartMillis()));
+
+ case ITestResult.SKIP:
+ return String.format(ROW_TEMPLATE, "warning", suiteName, testName, testResult.getName(), "SKIPPED", "NA");
+
+ default:
+ return "";
+ }
+ };
+ }
+
+ private String initReportTemplate() {
+ String template = null;
+ byte[] reportTemplate;
+ try {
+ reportTemplate = Files.readAllBytes(Paths.get("src/test/resources/reportTemplate.html"));
+ template = new String(reportTemplate, "UTF-8");
+ } catch (IOException e) {
+ LOGGER.error("Problem initializing template", e);
+ }
+ return template;
+ }
+
+ private void saveReportTemplate(String outputDirectory, String reportTemplate) {
+ new File(outputDirectory).mkdirs();
+ try {
+ PrintWriter reportWriter = new PrintWriter(new BufferedWriter(new FileWriter(new File(outputDirectory, "my-report.html"))));
+ reportWriter.println(reportTemplate);
+ reportWriter.flush();
+ reportWriter.close();
+ } catch (IOException e) {
+ LOGGER.error("Problem saving template", e);
+ }
+ }
+}
diff --git a/testing-modules/testng/src/test/resources/logback.xml b/testing-modules/testng/src/test/resources/logback.xml
index 035520aa15..ec0dc2469a 100644
--- a/testing-modules/testng/src/test/resources/logback.xml
+++ b/testing-modules/testng/src/test/resources/logback.xml
@@ -1,19 +1,19 @@
-
-
-
-
- web - %date [%thread] %-5level %logger{36} - %message%n
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ web - %date [%thread] %-5level %logger{36} - %message%n
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing-modules/testng/src/test/resources/parametrized_testng.xml b/testing-modules/testng/src/test/resources/parametrized_testng.xml
index d3a9a6dc51..1a9266dd59 100644
--- a/testing-modules/testng/src/test/resources/parametrized_testng.xml
+++ b/testing-modules/testng/src/test/resources/parametrized_testng.xml
@@ -1,13 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing-modules/testng/src/test/resources/test_group.xml b/testing-modules/testng/src/test/resources/test_group.xml
index 3f51c039d6..34a825855c 100644
--- a/testing-modules/testng/src/test/resources/test_group.xml
+++ b/testing-modules/testng/src/test/resources/test_group.xml
@@ -1,13 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing-modules/testng/src/test/resources/test_setup.xml b/testing-modules/testng/src/test/resources/test_setup.xml
index dea9d9bf5a..8e91349b0a 100644
--- a/testing-modules/testng/src/test/resources/test_setup.xml
+++ b/testing-modules/testng/src/test/resources/test_setup.xml
@@ -1,17 +1,17 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/testing-modules/testng/src/test/resources/test_suite.xml b/testing-modules/testng/src/test/resources/test_suite.xml
index 7a01f1af08..8b66799c4e 100644
--- a/testing-modules/testng/src/test/resources/test_suite.xml
+++ b/testing-modules/testng/src/test/resources/test_suite.xml
@@ -1,13 +1,13 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file