From 3ddec5745abac902b4ed7e7fc3826a3207c6ae9a Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Tue, 8 Oct 2019 11:18:11 +0530 Subject: [PATCH 01/15] BAEL3236 Execution time Junit --- .../execution/time/RandomNumberUnitTest.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 libraries-2/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java diff --git a/libraries-2/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java b/libraries-2/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java new file mode 100644 index 0000000000..35a2f69e9b --- /dev/null +++ b/libraries-2/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java @@ -0,0 +1,13 @@ +package com.baeldung.execution.time; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class RandomNumberUnitTest { + + @Test + public void whenTwoRandomNumberThenAssertUniqueness() { + + Assertions.assertNotEquals(Math.random(), Math.random()); + } +} From 55f8d83c035757159ce9821635dec4dd61fb55ae Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Wed, 9 Oct 2019 17:20:04 +0530 Subject: [PATCH 02/15] BAEL3236 Execution time Junit --- .../java/com/baeldung/execution/time/RandomNumberUnitTest.java | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename {libraries-2 => testing-modules/junit-5}/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java (100%) diff --git a/libraries-2/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java similarity index 100% rename from libraries-2/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java From 6ac43dbd7e997d22e093e188cc59e79b7f21c993 Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Sun, 13 Oct 2019 01:22:34 +0530 Subject: [PATCH 03/15] BAEL3236 Added more test cases --- testing-modules/junit-5/pom.xml | 19 ++++++- .../time/SlowServiceResponseUnitTest.java | 55 +++++++++++++++++++ ...tTest.java => UUIDUniquenessUnitTest.java} | 0 .../execution/time/ValidateEmailUnitTest.java | 32 +++++++++++ 4 files changed, 105 insertions(+), 1 deletion(-) create mode 100644 testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java rename testing-modules/junit-5/src/test/java/com/baeldung/execution/time/{RandomNumberUnitTest.java => UUIDUniquenessUnitTest.java} (100%) create mode 100644 testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java diff --git a/testing-modules/junit-5/pom.xml b/testing-modules/junit-5/pom.xml index 96944b4dc6..b0dd660733 100644 --- a/testing-modules/junit-5/pom.xml +++ b/testing-modules/junit-5/pom.xml @@ -70,6 +70,17 @@ spring-context ${spring.version} + + org.springframework + spring-webmvc + ${spring.version} + + + org.apache.httpcomponents + httpclient + ${http.client.version} + + org.powermock powermock-module-junit4 @@ -124,9 +135,13 @@ com.baeldung.TestLauncher + + org.apache.maven.plugins + maven-surefire-report-plugin + ${surefire.report.plugin} + - 5.4.2 2.23.0 @@ -137,6 +152,8 @@ 2.22.0 1.6.0 5.0.1.RELEASE + 4.5.10 + 3.0.0-M3 diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java new file mode 100644 index 0000000000..0ae10df684 --- /dev/null +++ b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java @@ -0,0 +1,55 @@ +package com.baeldung.execution.time; + +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.mock.http.client.MockClientHttpResponse; +import org.springframework.test.web.client.ExpectedCount; +import org.springframework.test.web.client.MockRestServiceServer; +import org.springframework.web.client.RestTemplate; + +import java.net.URI; +import java.net.URISyntaxException; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.springframework.test.web.client.match.MockRestRequestMatchers.method; +import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; + +public class SlowServiceResponseIntegrationTest { + + public static final String RESOURCE_URL = "http://localhost:8080/doSomething"; + + private RestTemplate restTemplate; + private MockRestServiceServer serviceServer; + + @BeforeEach + public void setup() { + + restTemplate = new RestTemplate(); + serviceServer = MockRestServiceServer.createServer(restTemplate); + } + + @Test + public void whenGetThenSuccessAfterFiveSeconds() throws URISyntaxException { + + serviceServer.expect(ExpectedCount.once(), + requestTo(RESOURCE_URL)) + .andExpect(method(HttpMethod.GET)) + .andRespond(request -> { + try { + //do some processing + Thread.sleep(5000); + } catch (InterruptedException e) { + } + + return new MockClientHttpResponse("sucess".getBytes(), HttpStatus.OK); + }); + + ResponseEntity entity = restTemplate.getForEntity(new URI(RESOURCE_URL), String.class); + assertEquals(HttpStatus.OK, entity.getStatusCode()); + + + } +} diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/UUIDUniquenessUnitTest.java similarity index 100% rename from testing-modules/junit-5/src/test/java/com/baeldung/execution/time/RandomNumberUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/execution/time/UUIDUniquenessUnitTest.java diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java new file mode 100644 index 0000000000..eac81dde83 --- /dev/null +++ b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java @@ -0,0 +1,32 @@ +package com.baeldung.execution.time; + +import org.junit.jupiter.api.Test; + +import java.util.regex.Pattern; + +import static org.junit.jupiter.api.Assertions.assertTrue; + +public class PublishListUnitTest { + + @Test + public void whenValidEmailThenReturnTrue() { + String email = "execution.time@baeldung.com"; + + assertTrue(isValid(email)); + } + + public boolean isValid(String email) { + if (email == null || email.isEmpty()) + return false; + + String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\." + + "[a-zA-Z0-9_+&*-]+)*@" + + "(?:[a-zA-Z0-9-]+\\.)+[a-z" + + "A-Z]{2,7}$"; + + Pattern pat = Pattern.compile(emailRegex); + + return pat.matcher(email).matches(); + + } +} From 362cc5d41bbf05834637d51e32b773fee5f10c54 Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Sun, 13 Oct 2019 01:37:01 +0530 Subject: [PATCH 04/15] BAEL3236 Added more test cases --- .../execution/time/SlowServiceResponseUnitTest.java | 2 +- .../execution/time/UUIDUniquenessUnitTest.java | 11 +++++++---- .../execution/time/ValidateEmailUnitTest.java | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java index 0ae10df684..cde5cf27a3 100644 --- a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java @@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.client.match.MockRestRequestMatchers.method; import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; -public class SlowServiceResponseIntegrationTest { +public class SlowServiceResponseUnitTest { public static final String RESOURCE_URL = "http://localhost:8080/doSomething"; diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/UUIDUniquenessUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/UUIDUniquenessUnitTest.java index 35a2f69e9b..452f5c7d41 100644 --- a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/UUIDUniquenessUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/UUIDUniquenessUnitTest.java @@ -1,13 +1,16 @@ package com.baeldung.execution.time; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -public class RandomNumberUnitTest { +import java.util.UUID; + +import static org.junit.jupiter.api.Assertions.assertNotEquals; + +public class UUIDUniquenessUnitTest { @Test - public void whenTwoRandomNumberThenAssertUniqueness() { + public void whenTwoUUIDThenAssertNotEqual() { - Assertions.assertNotEquals(Math.random(), Math.random()); + assertNotEquals(UUID.randomUUID(), UUID.randomUUID()); } } diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java index eac81dde83..0252455cb8 100644 --- a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java @@ -6,7 +6,7 @@ import java.util.regex.Pattern; import static org.junit.jupiter.api.Assertions.assertTrue; -public class PublishListUnitTest { +public class ValidateEmailUnitTest { @Test public void whenValidEmailThenReturnTrue() { From f067ebd43ef1f34dfb80673d844b4965672b1864 Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Mon, 14 Oct 2019 08:19:11 +0530 Subject: [PATCH 05/15] BAEL3236 Renaming to integration test --- ...nseUnitTest.java => SlowServiceResponseIntegrationTest.java} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename testing-modules/junit-5/src/test/java/com/baeldung/execution/time/{SlowServiceResponseUnitTest.java => SlowServiceResponseIntegrationTest.java} (97%) diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseIntegrationTest.java similarity index 97% rename from testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java rename to testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseIntegrationTest.java index cde5cf27a3..0ae10df684 100644 --- a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseIntegrationTest.java @@ -17,7 +17,7 @@ import static org.junit.jupiter.api.Assertions.assertEquals; import static org.springframework.test.web.client.match.MockRestRequestMatchers.method; import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; -public class SlowServiceResponseUnitTest { +public class SlowServiceResponseIntegrationTest { public static final String RESOURCE_URL = "http://localhost:8080/doSomething"; From 7a5396e95ce44e01a65fadabf67422de15215c52 Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Mon, 14 Oct 2019 08:26:53 +0530 Subject: [PATCH 06/15] BAEL3236 Temporary enabling --- pom.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/pom.xml b/pom.xml index d15e7f22ff..1e121845f0 100644 --- a/pom.xml +++ b/pom.xml @@ -110,7 +110,6 @@ 3 true - **/*IntegrationTest.java **/*IntTest.java **/*LongRunningUnitTest.java **/*ManualTest.java From 41638c05dbd23411bd7919ae3242b77bed89a243 Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Mon, 14 Oct 2019 08:33:37 +0530 Subject: [PATCH 07/15] BAEL3236 Reverting Integration tests --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 1e121845f0..d15e7f22ff 100644 --- a/pom.xml +++ b/pom.xml @@ -110,6 +110,7 @@ 3 true + **/*IntegrationTest.java **/*IntTest.java **/*LongRunningUnitTest.java **/*ManualTest.java From 83570edebc38503e75a87758cba4009f259840e5 Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Thu, 24 Oct 2019 16:40:20 +0530 Subject: [PATCH 08/15] BAEL3236 Refactoring TCs --- .../time/SampleExecutionTimeUnitTest.java | 16 ++++++ .../SlowServiceResponseIntegrationTest.java | 55 ------------------- .../time/UUIDUniquenessUnitTest.java | 16 ------ .../execution/time/ValidateEmailUnitTest.java | 32 ----------- 4 files changed, 16 insertions(+), 103 deletions(-) create mode 100644 testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java delete mode 100644 testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseIntegrationTest.java delete mode 100644 testing-modules/junit-5/src/test/java/com/baeldung/execution/time/UUIDUniquenessUnitTest.java delete mode 100644 testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java new file mode 100644 index 0000000000..5a198e0ee1 --- /dev/null +++ b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java @@ -0,0 +1,16 @@ +package com.baeldung.execution.time; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.fail; + +public class SampleExecutionTimeUnitTest { + + @Test + public void someUnitTest() { + + assertTrue(SampleTest::doSomething); + } + +} diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseIntegrationTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseIntegrationTest.java deleted file mode 100644 index 0ae10df684..0000000000 --- a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SlowServiceResponseIntegrationTest.java +++ /dev/null @@ -1,55 +0,0 @@ -package com.baeldung.execution.time; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; -import org.springframework.http.HttpMethod; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.mock.http.client.MockClientHttpResponse; -import org.springframework.test.web.client.ExpectedCount; -import org.springframework.test.web.client.MockRestServiceServer; -import org.springframework.web.client.RestTemplate; - -import java.net.URI; -import java.net.URISyntaxException; - -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.method; -import static org.springframework.test.web.client.match.MockRestRequestMatchers.requestTo; - -public class SlowServiceResponseIntegrationTest { - - public static final String RESOURCE_URL = "http://localhost:8080/doSomething"; - - private RestTemplate restTemplate; - private MockRestServiceServer serviceServer; - - @BeforeEach - public void setup() { - - restTemplate = new RestTemplate(); - serviceServer = MockRestServiceServer.createServer(restTemplate); - } - - @Test - public void whenGetThenSuccessAfterFiveSeconds() throws URISyntaxException { - - serviceServer.expect(ExpectedCount.once(), - requestTo(RESOURCE_URL)) - .andExpect(method(HttpMethod.GET)) - .andRespond(request -> { - try { - //do some processing - Thread.sleep(5000); - } catch (InterruptedException e) { - } - - return new MockClientHttpResponse("sucess".getBytes(), HttpStatus.OK); - }); - - ResponseEntity entity = restTemplate.getForEntity(new URI(RESOURCE_URL), String.class); - assertEquals(HttpStatus.OK, entity.getStatusCode()); - - - } -} diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/UUIDUniquenessUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/UUIDUniquenessUnitTest.java deleted file mode 100644 index 452f5c7d41..0000000000 --- a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/UUIDUniquenessUnitTest.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.baeldung.execution.time; - -import org.junit.jupiter.api.Test; - -import java.util.UUID; - -import static org.junit.jupiter.api.Assertions.assertNotEquals; - -public class UUIDUniquenessUnitTest { - - @Test - public void whenTwoUUIDThenAssertNotEqual() { - - assertNotEquals(UUID.randomUUID(), UUID.randomUUID()); - } -} diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java deleted file mode 100644 index 0252455cb8..0000000000 --- a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/ValidateEmailUnitTest.java +++ /dev/null @@ -1,32 +0,0 @@ -package com.baeldung.execution.time; - -import org.junit.jupiter.api.Test; - -import java.util.regex.Pattern; - -import static org.junit.jupiter.api.Assertions.assertTrue; - -public class ValidateEmailUnitTest { - - @Test - public void whenValidEmailThenReturnTrue() { - String email = "execution.time@baeldung.com"; - - assertTrue(isValid(email)); - } - - public boolean isValid(String email) { - if (email == null || email.isEmpty()) - return false; - - String emailRegex = "^[a-zA-Z0-9_+&*-]+(?:\\." + - "[a-zA-Z0-9_+&*-]+)*@" + - "(?:[a-zA-Z0-9-]+\\.)+[a-z" + - "A-Z]{2,7}$"; - - Pattern pat = Pattern.compile(emailRegex); - - return pat.matcher(email).matches(); - - } -} From a319f016456548f5fc2d65fe28ddd6f1ece34b98 Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Thu, 24 Oct 2019 16:43:18 +0530 Subject: [PATCH 09/15] BAEL3236 Refactoring TCs --- .../time/SampleExecutionTimeUnitTest.java | 32 ++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java index 5a198e0ee1..0e24aa140f 100644 --- a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java @@ -10,7 +10,37 @@ public class SampleExecutionTimeUnitTest { @Test public void someUnitTest() { - assertTrue(SampleTest::doSomething); + assertTrue(this::doSomething); } + @Test + public void someIntegrationTest() { + + try { + //simulate an operation that may take 5 seconds + Thread.sleep(5000); + } catch (InterruptedException e) { + fail(); + } + + assertTrue(this::doSomething); + } + + @Test + public void someEndToEndTest() { + + try { + //simulate an operation that may take 10 seconds + Thread.sleep(10000); + } catch (InterruptedException e) { + fail(); + } + + assertTrue(this::doSomething); + + } + + private boolean doSomething() { + return true; + } } From f1d42c95fea5e2c54c4ba1854703e7da88d395c4 Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Fri, 25 Oct 2019 14:56:53 +0530 Subject: [PATCH 10/15] BAEL3236 Removing now unused spring and http client deps --- testing-modules/junit-5/pom.xml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/testing-modules/junit-5/pom.xml b/testing-modules/junit-5/pom.xml index b0dd660733..c493adb269 100644 --- a/testing-modules/junit-5/pom.xml +++ b/testing-modules/junit-5/pom.xml @@ -70,17 +70,6 @@ spring-context ${spring.version} - - org.springframework - spring-webmvc - ${spring.version} - - - org.apache.httpcomponents - httpclient - ${http.client.version} - - org.powermock powermock-module-junit4 @@ -152,8 +141,6 @@ 2.22.0 1.6.0 5.0.1.RELEASE - 4.5.10 - 3.0.0-M3 From 967c9eb6b5e52d952300a82d4da71f5492f6b5af Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Sat, 26 Oct 2019 18:46:18 +0530 Subject: [PATCH 11/15] BAEL3236 Fixing test cases and updating the missed version in pom.xml --- testing-modules/junit-5/pom.xml | 1 + .../time/SampleExecutionTimeUnitTest.java | 52 ++++++++----------- 2 files changed, 23 insertions(+), 30 deletions(-) diff --git a/testing-modules/junit-5/pom.xml b/testing-modules/junit-5/pom.xml index c493adb269..a27e4da61b 100644 --- a/testing-modules/junit-5/pom.xml +++ b/testing-modules/junit-5/pom.xml @@ -141,6 +141,7 @@ 2.22.0 1.6.0 5.0.1.RELEASE + 3.0.0-M3 diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java index 0e24aa140f..8090085cb3 100644 --- a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java @@ -1,44 +1,36 @@ package com.baeldung.execution.time; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertTrue; -import static org.junit.jupiter.api.Assertions.fail; -public class SampleExecutionTimeUnitTest { +class SampleExecutionTimeUnitTest { @Test - public void someUnitTest() { + void someUnitTest() { - assertTrue(this::doSomething); + assertTrue(doSomething()); } - @Test - public void someIntegrationTest() { - - try { - //simulate an operation that may take 5 seconds - Thread.sleep(5000); - } catch (InterruptedException e) { - fail(); - } - - assertTrue(this::doSomething); - } - - @Test - public void someEndToEndTest() { - - try { - //simulate an operation that may take 10 seconds - Thread.sleep(10000); - } catch (InterruptedException e) { - fail(); - } - - assertTrue(this::doSomething); - - } +// @Test +// void someIntegrationTest() throws InterruptedException { +// +// //simulate an operation that may take 5 seconds +// Thread.sleep(5000); +// +// assertTrue(doSomething()); +// } +// +// @Test +// void someEndToEndTest() throws InterruptedException { +// +// //simulate an operation that may take 10 seconds +// Thread.sleep(10000); +// +// assertTrue(doSomething()); +// +// } private boolean doSomething() { return true; From 7b0e0eb41416919ced70d7375929b5668657eee6 Mon Sep 17 00:00:00 2001 From: Chirag Dewan Date: Sun, 3 Nov 2019 10:39:05 +0530 Subject: [PATCH 12/15] BAEL3236 throwing Exception in TCs --- .../baeldung/execution/time/SampleExecutionTimeUnitTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java index 8090085cb3..7d43d1a560 100644 --- a/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java +++ b/testing-modules/junit-5/src/test/java/com/baeldung/execution/time/SampleExecutionTimeUnitTest.java @@ -14,7 +14,7 @@ class SampleExecutionTimeUnitTest { } // @Test -// void someIntegrationTest() throws InterruptedException { +// void someIntegrationTest() throws Exception { // // //simulate an operation that may take 5 seconds // Thread.sleep(5000); @@ -23,7 +23,7 @@ class SampleExecutionTimeUnitTest { // } // // @Test -// void someEndToEndTest() throws InterruptedException { +// void someEndToEndTest() throws Exception { // // //simulate an operation that may take 10 seconds // Thread.sleep(10000); From a5de4c1f2c39e90af639ec7cf554cf05c209f4ec Mon Sep 17 00:00:00 2001 From: chirag d Date: Mon, 2 Dec 2019 19:52:17 +0530 Subject: [PATCH 13/15] BAEL3455 Maximum Subarray Problem --- .../subarray/maximum/BruteForceAlgorithm.java | 30 +++++++++++++++++++ .../subarray/maximum/KadaneAlgorithm.java | 29 ++++++++++++++++++ .../maximum/BruteForceAlgorithmUnitTest.java | 24 +++++++++++++++ .../maximum/KadaneAlgorithmUnitTest.java | 23 ++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithm.java create mode 100644 algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithm.java create mode 100644 algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithmUnitTest.java create mode 100644 algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithmUnitTest.java diff --git a/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithm.java b/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithm.java new file mode 100644 index 0000000000..fcf404af88 --- /dev/null +++ b/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithm.java @@ -0,0 +1,30 @@ +package com.baeldung.algorithms.subarray.maximum; + +public class BruteForceAlgorithm { + + public int maxSubArray(int[] arr) { + + int size = arr.length; + int maximumSubArraySum = Integer.MIN_VALUE; + int start = 0; + int end = 0; + + for (int left = 0; left < size; left++) { + + int runningWindowSum = 0; + + for (int right = left; right < size; right++) { + runningWindowSum += arr[right]; + + if (runningWindowSum > maximumSubArraySum) { + maximumSubArraySum = runningWindowSum; + start = left; + end = right; + } + } + } + System.out.println("Found Maximum Subarray between " + start + " and " + end); + return maximumSubArraySum; + } + +} diff --git a/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithm.java b/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithm.java new file mode 100644 index 0000000000..98b121108c --- /dev/null +++ b/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithm.java @@ -0,0 +1,29 @@ +package com.baeldung.algorithms.subarray.maximum; + +public class KadaneAlgorithm { + + public int maxSubArraySum(int[] arr) { + + int size = arr.length; + int start = 0; + int end = 0; + + int maxSoFar = 0, maxEndingHere = 0; + + for (int i = 0; i < size; i++) { + + if (arr[i] > maxEndingHere + arr[i]) { + start = i; + maxEndingHere = arr[i]; + } else + maxEndingHere = maxEndingHere + arr[i]; + + if (maxSoFar < maxEndingHere) { + maxSoFar = maxEndingHere; + end = i; + } + } + System.out.println("Found Maximum Subarray between " + start + " and " + end); + return maxSoFar; + } +} diff --git a/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithmUnitTest.java b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithmUnitTest.java new file mode 100644 index 0000000000..3a66c6b5d6 --- /dev/null +++ b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithmUnitTest.java @@ -0,0 +1,24 @@ +package com.baeldung.algorithms.subarray.maximum; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +class BruteForceAlgorithmUnitTest { + + @Test + void givenArrayWithNegativeNumberWhenMaximumSubarrayThenReturns6() { + //given + int[] arr = new int[]{-3, 1, -8, 4, -1, 2, 1, -5, 5}; + + //when + BruteForceAlgorithm algorithm = new BruteForceAlgorithm(); + int maximumSum = algorithm.maxSubArray(arr); + + //then + assertEquals(6, maximumSum); + + } + +} \ No newline at end of file diff --git a/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithmUnitTest.java b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithmUnitTest.java new file mode 100644 index 0000000000..38afa5c871 --- /dev/null +++ b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithmUnitTest.java @@ -0,0 +1,23 @@ +package com.baeldung.algorithms.subarray.maximum; + +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; + +class KadaneAlgorithmUnitTest { + + @Test + void givenArrayWithNegativeNumberWhenMaximumSubarrayThenReturns6() { + //given + int[] arr = new int[]{-3, 1, -8, 4, -1, 2, 1, -5, 5}; + + //when + KadaneAlgorithm algorithm = new KadaneAlgorithm(); + int maxSum = algorithm.maxSubArraySum(arr); + + //then + assertEquals(6, maxSum); + + } + +} \ No newline at end of file From b4de9403ae3ef29c96ba07dcb0389a613449f4a4 Mon Sep 17 00:00:00 2001 From: chirag d Date: Sun, 8 Dec 2019 18:47:23 +0530 Subject: [PATCH 14/15] BAEL3455 Max subarray problem --- .../BruteForceAlgorithm.java | 9 +++++++-- .../maximum => maximumsubarray}/KadaneAlgorithm.java | 9 +++++++-- .../BruteForceAlgorithmTest.java} | 9 ++------- .../KadaneAlgorithmTest.java} | 10 +++------- 4 files changed, 19 insertions(+), 18 deletions(-) rename algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/{subarray/maximum => maximumsubarray}/BruteForceAlgorithm.java (71%) rename algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/{subarray/maximum => maximumsubarray}/KadaneAlgorithm.java (68%) rename algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/{subarray/maximum/BruteForceAlgorithmUnitTest.java => maximumsubarray/BruteForceAlgorithmTest.java} (77%) rename algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/{subarray/maximum/KadaneAlgorithmUnitTest.java => maximumsubarray/KadaneAlgorithmTest.java} (73%) diff --git a/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithm.java b/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithm.java similarity index 71% rename from algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithm.java rename to algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithm.java index fcf404af88..932ded5018 100644 --- a/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithm.java +++ b/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithm.java @@ -1,7 +1,12 @@ -package com.baeldung.algorithms.subarray.maximum; +package com.baeldung.algorithms.maximumsubarray; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class BruteForceAlgorithm { + private Logger logger = LoggerFactory.getLogger(BruteForceAlgorithm.class.getName()); + public int maxSubArray(int[] arr) { int size = arr.length; @@ -23,7 +28,7 @@ public class BruteForceAlgorithm { } } } - System.out.println("Found Maximum Subarray between " + start + " and " + end); + logger.info("Found Maximum Subarray between {} and {}", start, end); return maximumSubArraySum; } diff --git a/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithm.java b/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithm.java similarity index 68% rename from algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithm.java rename to algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithm.java index 98b121108c..0aaa1b6c23 100644 --- a/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithm.java +++ b/algorithms-miscellaneous-5/src/main/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithm.java @@ -1,7 +1,12 @@ -package com.baeldung.algorithms.subarray.maximum; +package com.baeldung.algorithms.maximumsubarray; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class KadaneAlgorithm { + private Logger logger = LoggerFactory.getLogger(BruteForceAlgorithm.class.getName()); + public int maxSubArraySum(int[] arr) { int size = arr.length; @@ -23,7 +28,7 @@ public class KadaneAlgorithm { end = i; } } - System.out.println("Found Maximum Subarray between " + start + " and " + end); + logger.info("Found Maximum Subarray between {} and {}", start, end); return maxSoFar; } } diff --git a/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithmUnitTest.java b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithmTest.java similarity index 77% rename from algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithmUnitTest.java rename to algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithmTest.java index 3a66c6b5d6..9359a8eea8 100644 --- a/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/BruteForceAlgorithmUnitTest.java +++ b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithmTest.java @@ -1,24 +1,19 @@ -package com.baeldung.algorithms.subarray.maximum; +package com.baeldung.algorithms.maximumsubarray; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; -class BruteForceAlgorithmUnitTest { +class BruteForceAlgorithmTest { @Test void givenArrayWithNegativeNumberWhenMaximumSubarrayThenReturns6() { //given int[] arr = new int[]{-3, 1, -8, 4, -1, 2, 1, -5, 5}; - //when BruteForceAlgorithm algorithm = new BruteForceAlgorithm(); int maximumSum = algorithm.maxSubArray(arr); - //then assertEquals(6, maximumSum); - } - } \ No newline at end of file diff --git a/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithmUnitTest.java b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithmTest.java similarity index 73% rename from algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithmUnitTest.java rename to algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithmTest.java index 38afa5c871..2320131dd0 100644 --- a/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/subarray/maximum/KadaneAlgorithmUnitTest.java +++ b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithmTest.java @@ -1,23 +1,19 @@ -package com.baeldung.algorithms.subarray.maximum; +package com.baeldung.algorithms.maximumsubarray; import org.junit.jupiter.api.Test; -import static org.junit.jupiter.api.Assertions.*; +import static org.junit.jupiter.api.Assertions.assertEquals; -class KadaneAlgorithmUnitTest { +class KadaneAlgorithmTest { @Test void givenArrayWithNegativeNumberWhenMaximumSubarrayThenReturns6() { //given int[] arr = new int[]{-3, 1, -8, 4, -1, 2, 1, -5, 5}; - //when KadaneAlgorithm algorithm = new KadaneAlgorithm(); int maxSum = algorithm.maxSubArraySum(arr); - //then assertEquals(6, maxSum); - } - } \ No newline at end of file From 6f971744917e64e4fd439fe8d9b514b03a030a6c Mon Sep 17 00:00:00 2001 From: chirag d Date: Sun, 8 Dec 2019 18:59:51 +0530 Subject: [PATCH 15/15] BAEL3455 Max subarray problem --- ...ForceAlgorithmTest.java => BruteForceAlgorithmUnitTest.java} | 2 +- .../{KadaneAlgorithmTest.java => KadaneAlgorithmUnitTest.java} | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) rename algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/{BruteForceAlgorithmTest.java => BruteForceAlgorithmUnitTest.java} (93%) rename algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/{KadaneAlgorithmTest.java => KadaneAlgorithmUnitTest.java} (93%) diff --git a/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithmTest.java b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithmUnitTest.java similarity index 93% rename from algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithmTest.java rename to algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithmUnitTest.java index 9359a8eea8..b818046b2a 100644 --- a/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithmTest.java +++ b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/BruteForceAlgorithmUnitTest.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; -class BruteForceAlgorithmTest { +class BruteForceAlgorithmUnitTest { @Test void givenArrayWithNegativeNumberWhenMaximumSubarrayThenReturns6() { diff --git a/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithmTest.java b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithmUnitTest.java similarity index 93% rename from algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithmTest.java rename to algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithmUnitTest.java index 2320131dd0..9bece56f5b 100644 --- a/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithmTest.java +++ b/algorithms-miscellaneous-5/src/test/java/com/baeldung/algorithms/maximumsubarray/KadaneAlgorithmUnitTest.java @@ -4,7 +4,7 @@ import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; -class KadaneAlgorithmTest { +class KadaneAlgorithmUnitTest { @Test void givenArrayWithNegativeNumberWhenMaximumSubarrayThenReturns6() {