From 333953b204e473c06b7c86c72a164538e51f60e6 Mon Sep 17 00:00:00 2001 From: slavisa-baeldung Date: Sat, 18 Feb 2017 22:56:41 +0100 Subject: [PATCH] BAEL-183 - refactoring and moving testng to dedicated module --- ...edUnitTest.java => ParametrizedTests.java} | 17 ++-- .../junit4vstestng/RegistrationTest.java | 15 ++++ .../baeldung/junit4vstestng/SignInTest.java | 14 ++++ .../baeldung/junit4vstestng/SuiteTest.java | 2 +- pom.xml | 3 +- testng/pom.xml | 6 ++ .../java/baeldung/com/DependentTests.java | 35 ++------- .../baeldung/com/ParametrizedTestNGTest.java | 63 --------------- .../java/baeldung/com/ParametrizedTests.java | 77 +++++++++++++++++++ .../java/baeldung/com/RegistrationTest.java | 7 +- .../test/java/baeldung/com/SignInTest.java | 8 +- .../baeldung/com/SummationServiceTest.java | 3 + .../src/test/resources/parameterised_test.xml | 17 ---- .../src/test/resources/parametrized_test.xml | 10 +++ testng/src/test/resources/test_group.xml | 2 +- testng/src/test/resources/test_setup.xml | 17 ++++ testng/src/test/resources/test_suite.xml | 2 +- 17 files changed, 172 insertions(+), 126 deletions(-) rename core-java/src/test/java/com/baeldung/junit4vstestng/{MyParameterisedUnitTest.java => ParametrizedTests.java} (53%) create mode 100644 core-java/src/test/java/com/baeldung/junit4vstestng/RegistrationTest.java create mode 100644 core-java/src/test/java/com/baeldung/junit4vstestng/SignInTest.java delete mode 100644 testng/src/test/java/baeldung/com/ParametrizedTestNGTest.java create mode 100644 testng/src/test/java/baeldung/com/ParametrizedTests.java delete mode 100644 testng/src/test/resources/parameterised_test.xml create mode 100644 testng/src/test/resources/parametrized_test.xml create mode 100644 testng/src/test/resources/test_setup.xml diff --git a/core-java/src/test/java/com/baeldung/junit4vstestng/MyParameterisedUnitTest.java b/core-java/src/test/java/com/baeldung/junit4vstestng/ParametrizedTests.java similarity index 53% rename from core-java/src/test/java/com/baeldung/junit4vstestng/MyParameterisedUnitTest.java rename to core-java/src/test/java/com/baeldung/junit4vstestng/ParametrizedTests.java index 95f9274af3..e9a9c6a07a 100644 --- a/core-java/src/test/java/com/baeldung/junit4vstestng/MyParameterisedUnitTest.java +++ b/core-java/src/test/java/com/baeldung/junit4vstestng/ParametrizedTests.java @@ -11,23 +11,24 @@ import java.util.Arrays; import java.util.Collection; @RunWith(value = Parameterized.class) -public class MyParameterisedUnitTest { +public class ParametrizedTests { - private String name; + private int value; + private boolean isEven; - public MyParameterisedUnitTest(String myName) { - this.name = myName; + public ParametrizedTests(int value, boolean isEven) { + this.value = value; + this.isEven = isEven; } @Parameters public static Collection data() { - Object[][] data = new Object[][]{{"Peter"}, {"Sam"}, {"Tim"}, {"Lucy"}}; + Object[][] data = new Object[][]{{1, false}, {2, true}, {4, true}}; return Arrays.asList(data); } @Test - public void givenName_whenValidLength_thenTrue() { - boolean valid = name.length() > 0; - Assert.assertEquals(valid, true); + public void givenParametrizedNumber_ifEvenCheckOK_thenCorrect() { + Assert.assertEquals(isEven, value % 2 == 0); } } diff --git a/core-java/src/test/java/com/baeldung/junit4vstestng/RegistrationTest.java b/core-java/src/test/java/com/baeldung/junit4vstestng/RegistrationTest.java new file mode 100644 index 0000000000..4aa1fa1a17 --- /dev/null +++ b/core-java/src/test/java/com/baeldung/junit4vstestng/RegistrationTest.java @@ -0,0 +1,15 @@ +package com.baeldung.junit4vstestng; + +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +public class RegistrationTest { + private static final Logger LOGGER = LoggerFactory.getLogger(RegistrationTest.class); + + @Test + public void whenCalledFromSuite_thanOK() { + LOGGER.info("Registration successful"); + } +} diff --git a/core-java/src/test/java/com/baeldung/junit4vstestng/SignInTest.java b/core-java/src/test/java/com/baeldung/junit4vstestng/SignInTest.java new file mode 100644 index 0000000000..bb908ff37e --- /dev/null +++ b/core-java/src/test/java/com/baeldung/junit4vstestng/SignInTest.java @@ -0,0 +1,14 @@ +package com.baeldung.junit4vstestng; + +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class SignInTest { + private static final Logger LOGGER = LoggerFactory.getLogger(SignInTest.class); + + @Test + public void whenCalledFromSuite_thanOK() { + LOGGER.info("SignIn successful"); + } +} diff --git a/core-java/src/test/java/com/baeldung/junit4vstestng/SuiteTest.java b/core-java/src/test/java/com/baeldung/junit4vstestng/SuiteTest.java index 3d6d6cbbfb..effd7fa10a 100644 --- a/core-java/src/test/java/com/baeldung/junit4vstestng/SuiteTest.java +++ b/core-java/src/test/java/com/baeldung/junit4vstestng/SuiteTest.java @@ -4,7 +4,7 @@ import org.junit.runner.RunWith; import org.junit.runners.Suite; @RunWith(Suite.class) -@Suite.SuiteClasses({ StringCaseTest.class, DivisibilityTest.class }) +@Suite.SuiteClasses({ RegistrationTest.class, SignInTest.class }) public class SuiteTest { } diff --git a/pom.xml b/pom.xml index eb89b9cbaa..82df776044 100644 --- a/pom.xml +++ b/pom.xml @@ -182,6 +182,7 @@ spring-reactor testing + testng video-tutorials @@ -194,8 +195,6 @@ struts2 apache-velocity - testng - diff --git a/testng/pom.xml b/testng/pom.xml index 02f51d4d99..272b1d316d 100644 --- a/testng/pom.xml +++ b/testng/pom.xml @@ -43,6 +43,12 @@ true + + + src/main/resources + true + + diff --git a/testng/src/test/java/baeldung/com/DependentTests.java b/testng/src/test/java/baeldung/com/DependentTests.java index ab593e0439..b60f8a6c0d 100644 --- a/testng/src/test/java/baeldung/com/DependentTests.java +++ b/testng/src/test/java/baeldung/com/DependentTests.java @@ -1,46 +1,25 @@ package baeldung.com; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.testng.Assert; -import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; public class DependentTests { - private String validEmail = "abc@qwe.com"; - private EmailValidator emailValidator; - private LoginValidator loginValidator; + private static final Logger LOGGER = LoggerFactory.getLogger(DependentTests.class); - @BeforeClass - public void setup() { - emailValidator = new EmailValidator(); - loginValidator = new LoginValidator(); - } + private String email = "abc@qwe.com"; @Test public void givenEmail_ifValid_thenTrue() { - boolean valid = emailValidator.validate(validEmail); + boolean valid = email.contains("@"); Assert.assertEquals(valid, true); } - @Test(dependsOnMethods = { "givenEmail_ifValid_thenTrue" }) + @Test(dependsOnMethods = {"givenEmail_ifValid_thenTrue"}) public void givenValidEmail_whenLoggedIn_thenTrue() { - boolean valid = loginValidator.validate(); - Assert.assertEquals(valid, true); + LOGGER.info("Email {} valid >> logging in", email); } } -class EmailValidator { - - boolean validate(String validEmail) { - return true; - } - -} - -class LoginValidator { - - boolean validate() { - return true; - } - -} diff --git a/testng/src/test/java/baeldung/com/ParametrizedTestNGTest.java b/testng/src/test/java/baeldung/com/ParametrizedTestNGTest.java deleted file mode 100644 index e4f3aacf5b..0000000000 --- a/testng/src/test/java/baeldung/com/ParametrizedTestNGTest.java +++ /dev/null @@ -1,63 +0,0 @@ -package baeldung.com; - -import org.testng.Assert; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.DataProvider; -import org.testng.annotations.Parameters; -import org.testng.annotations.Test; - -public class ParametrizedTestNGTest { - - @Test - @Parameters({ "name", "expectedResult" }) - public void givenNumber_ifPrime_thenCorrect(String name, boolean expectedResult) { - Assert.assertEquals(expectedResult, name.length() > 0); - } - - @DataProvider(name = "test1") - public static Object[][] primeNumbers() { - return new Object[][] { { "Peter", true }, { "Sam", true }, { "Tim", true }, { "Lucy", true } }; - } - - @Test(dataProvider = "test1") - public void givenNumber_whenPrime_thenCorrect(String name, boolean expectedResult) { - Assert.assertEquals(expectedResult, name.length() > 0); - } - - @Test(dataProvider = "myDataProvider") - public void parameterCheckTest(User user) { - Assert.assertEquals("sam", user.getName()); - Assert.assertEquals(12, user.getAge()); - } - - @DataProvider(name = "myDataProvider") - public Object[][] parameterProvider() { - User usr = new User(); - usr.setName("sam"); - usr.setAge(12); - return new Object[][] { { usr } }; - } - -} - - -class User { - private String name; - private int age; - - public String getName() { - return name; - } - - public void setName(String name) { - this.name = name; - } - - public int getAge() { - return age; - } - - public void setAge(int age) { - this.age = age; - } -} diff --git a/testng/src/test/java/baeldung/com/ParametrizedTests.java b/testng/src/test/java/baeldung/com/ParametrizedTests.java new file mode 100644 index 0000000000..d3813f5382 --- /dev/null +++ b/testng/src/test/java/baeldung/com/ParametrizedTests.java @@ -0,0 +1,77 @@ +package baeldung.com; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.testng.Assert; +import org.testng.annotations.DataProvider; +import org.testng.annotations.Parameters; +import org.testng.annotations.Test; + +public class ParametrizedTests { + + private static final Logger LOGGER = LoggerFactory.getLogger(ParametrizedTests.class); + + @Test + @Parameters({"value", "isEven"}) + public void givenNumberFromXML_ifEvenCheckOK_thenCorrect(int value, boolean isEven) { + Assert.assertEquals(isEven, value % 2 == 0); + } + + @DataProvider(name = "numbers") + public static Object[][] evenNumbers() { + return new Object[][]{{1, false}, {2, true}, {4, true}}; + } + + @Test(dataProvider = "numbers") + public void givenNumberFromDataProvider_ifEvenCheckOK_thenCorrect(Integer number, boolean expected) { + Assert.assertEquals(expected, number % 2 == 0); + } + + @Test(dataProvider = "numbersObject") + public void givenNumberObjectFromDataProvider_ifEvenCheckOK_thenCorrect(EvenNumber number) { + Assert.assertEquals(number.isEven(), number.getValue() % 2 == 0); + } + + @DataProvider(name = "numbersObject") + public Object[][] parameterProvider() { + return new Object[][]{{new EvenNumber(1, false)}, {new EvenNumber(2, true)}, {new EvenNumber(4, true),}}; + } + +} + + +class EvenNumber { + private int value; + private boolean isEven; + + public EvenNumber(int number, boolean isEven) { + this.value = number; + this.isEven = isEven; + } + + public int getValue() { + return value; + } + + public void setValue(int value) { + this.value = value; + } + + public boolean isEven() { + return isEven; + } + + public void setEven(boolean even) { + isEven = even; + } + + @Override + public String toString() { + return "EvenNumber{" + + "value=" + value + + ", isEven=" + isEven + + '}'; + } +} + + diff --git a/testng/src/test/java/baeldung/com/RegistrationTest.java b/testng/src/test/java/baeldung/com/RegistrationTest.java index 7cb17c9cb8..ec551d9c27 100644 --- a/testng/src/test/java/baeldung/com/RegistrationTest.java +++ b/testng/src/test/java/baeldung/com/RegistrationTest.java @@ -1,11 +1,14 @@ package baeldung.com; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.testng.annotations.Test; public class RegistrationTest { + private static final Logger LOGGER = LoggerFactory.getLogger(RegistrationTest.class); @Test - public void givenEmail_ifValid_thenCorrect() { - + public void whenCalledFromSuite_thanOK() { + LOGGER.info("Registration successful"); } } diff --git a/testng/src/test/java/baeldung/com/SignInTest.java b/testng/src/test/java/baeldung/com/SignInTest.java index 4884154345..f0547374d1 100644 --- a/testng/src/test/java/baeldung/com/SignInTest.java +++ b/testng/src/test/java/baeldung/com/SignInTest.java @@ -1,12 +1,14 @@ package baeldung.com; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.testng.annotations.Test; public class SignInTest { + private static final Logger LOGGER = LoggerFactory.getLogger(SignInTest.class); @Test - public void givenUsername_ifValid_thenCorrect() { - + public void whenCalledFromSuite_thanOK() { + LOGGER.info("SignIn successful"); } - } diff --git a/testng/src/test/java/baeldung/com/SummationServiceTest.java b/testng/src/test/java/baeldung/com/SummationServiceTest.java index 471d7a7c8a..f377a009df 100644 --- a/testng/src/test/java/baeldung/com/SummationServiceTest.java +++ b/testng/src/test/java/baeldung/com/SummationServiceTest.java @@ -1,5 +1,7 @@ package baeldung.com; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.testng.Assert; import org.testng.TestNG; import org.testng.annotations.*; @@ -8,6 +10,7 @@ import java.util.ArrayList; import java.util.List; public class SummationServiceTest extends TestNG { + private static final Logger LOGGER = LoggerFactory.getLogger(DependentTests.class); private List numbers; diff --git a/testng/src/test/resources/parameterised_test.xml b/testng/src/test/resources/parameterised_test.xml deleted file mode 100644 index 2381ba67d0..0000000000 --- a/testng/src/test/resources/parameterised_test.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/testng/src/test/resources/parametrized_test.xml b/testng/src/test/resources/parametrized_test.xml new file mode 100644 index 0000000000..932af30e4e --- /dev/null +++ b/testng/src/test/resources/parametrized_test.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/testng/src/test/resources/test_group.xml b/testng/src/test/resources/test_group.xml index d636a4174d..26868375f2 100644 --- a/testng/src/test/resources/test_group.xml +++ b/testng/src/test/resources/test_group.xml @@ -1,6 +1,6 @@ - + diff --git a/testng/src/test/resources/test_setup.xml b/testng/src/test/resources/test_setup.xml new file mode 100644 index 0000000000..7d9708193e --- /dev/null +++ b/testng/src/test/resources/test_setup.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/testng/src/test/resources/test_suite.xml b/testng/src/test/resources/test_suite.xml index 201ed3f645..0fe5d1cc40 100644 --- a/testng/src/test/resources/test_suite.xml +++ b/testng/src/test/resources/test_suite.xml @@ -1,6 +1,6 @@ - +