Update to JUnit5 across all modules ()

* Updated saga to JUnit 5

* Update fix for CI job in trampoline module

* Updated update-method module to JUnit 5

* Upgraded to latest JUnit Jupiter
JUnit 4 is not needed when using JUnit-Vintage

* Reverted change to access modifier on Trampoline

* Cleanup to resolve code smells

* Formatting

* Formatting

* Migrating to JUnit5 and updating some Mockito patterns

* Migrating to JUnit5

* Migrating to JUnit5

* Migrating to JUnit 5

* Formatting cleanup

* Added missing scope for junit

* Fixed tests that were not running previously.

Co-authored-by: Subhrodip Mohanta <hello@subho.xyz>
This commit is contained in:
CF 2021-03-06 04:12:46 -05:00 committed by GitHub
parent e9d0b3e98c
commit c150871a94
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
53 changed files with 333 additions and 412 deletions
arrange-act-assert
pom.xml
src/test/java/com/iluwatar/arrangeactassert
async-method-invocation
combinator
double-buffer
pom.xml
src/test/java/com/iluwatar/doublebuffer
factory
game-loop
half-sync-half-async
leader-followers
marker/src/test/java
partial-response
pom.xml
src/test/java/com/iluwatar/partialresponse
registry
role-object
serverless/src/test/java/com/iluwatar/serverless/faas/api
sharding
singleton
pom.xml
src/test/java/com/iluwatar/singleton
subclass-sandbox
pom.xml
src/test/java/com/iluwatar/subclasssandbox
tolerant-reader
unit-of-work
pom.xml
src/test/java/com/iluwatar/unitofwork

@ -36,8 +36,8 @@
<artifactId>arrange-act-assert</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
</dependencies>

@ -23,11 +23,11 @@
package com.iluwatar.arrangeactassert;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* Arrange/Act/Assert (AAA) is a pattern for organizing unit tests. It is a way to structure your
@ -51,10 +51,11 @@ import org.junit.Test;
* change and one reason to fail. In a large and complicated code base, tests that honor the single
* responsibility principle are much easier to troubleshoot.
*/
public class CashAAATest {
class CashAAATest {
@Test
public void testPlus() {
void testPlus() {
//Arrange
var cash = new Cash(3);
//Act
@ -64,7 +65,7 @@ public class CashAAATest {
}
@Test
public void testMinus() {
void testMinus() {
//Arrange
var cash = new Cash(8);
//Act
@ -75,7 +76,7 @@ public class CashAAATest {
}
@Test
public void testInsufficientMinus() {
void testInsufficientMinus() {
//Arrange
var cash = new Cash(1);
//Act
@ -86,7 +87,7 @@ public class CashAAATest {
}
@Test
public void testUpdate() {
void testUpdate() {
//Arrange
var cash = new Cash(5);
//Act

@ -23,23 +23,24 @@
package com.iluwatar.arrangeactassert;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* ({@link CashAAATest}) is an anti-example of AAA pattern. This test is functionally correct, but
* with the addition of new feature, it needs refactoring. There are an awful lot of steps in that
* with the addition of a new feature, it needs refactoring. There are an awful lot of steps in that
* test method, but it verifies the class' important behavior in just eleven lines. It violates the
* single responsibility principle. If this test method failed after a small code change, it might
* take some digging to discover why.
*/
public class CashAntiAAATest {
class CashAntiAAATest {
@Test
public void testCash() {
void testCash() {
//initialize
var cash = new Cash(3);
//test plus

@ -45,11 +45,6 @@
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>

@ -34,12 +34,6 @@
<artifactId>combinator</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>

@ -23,11 +23,11 @@
package com.iluwatar.combinator;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
public class CombinatorAppTest {
import org.junit.jupiter.api.Test;
class CombinatorAppTest {
/**
* Issue: Add at least one assertion to this test case.
@ -37,7 +37,7 @@ public class CombinatorAppTest {
*/
@Test
public void shouldExecuteApplicationWithoutException() {
void shouldExecuteApplicationWithoutException() {
assertDoesNotThrow(() -> CombinatorApp.main(new String[]{}));
}
}
}

@ -23,22 +23,19 @@
package com.iluwatar.combinator;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.List;
import org.junit.jupiter.api.Test;
import static org.junit.Assert.*;
public class FinderTest {
class FinderTest {
@Test
public void contains() {
void contains() {
var example = "the first one \nthe second one \n";
var result = Finder.contains("second").find(example);
Assert.assertEquals(result.size(),1);
Assert.assertEquals(result.get(0),"the second one ");
assertEquals(1, result.size());
assertEquals("the second one ", result.get(0));
}
}
}

@ -23,44 +23,44 @@
package com.iluwatar.combinator;
import org.junit.Assert;
import org.junit.Test;
import static com.iluwatar.combinator.Finders.advancedFinder;
import static com.iluwatar.combinator.Finders.expandedFinder;
import static com.iluwatar.combinator.Finders.filteredFinder;
import static com.iluwatar.combinator.Finders.specializedFinder;
import static org.junit.jupiter.api.Assertions.assertEquals;
import java.util.List;
import org.junit.jupiter.api.Test;
import static com.iluwatar.combinator.Finders.*;
import static org.junit.Assert.*;
public class FindersTest {
class FindersTest {
@Test
public void advancedFinderTest() {
void advancedFinderTest() {
var res = advancedFinder("it was","kingdom","sea").find(text());
Assert.assertEquals(res.size(),1);
Assert.assertEquals(res.get(0),"It was many and many a year ago,");
assertEquals(1, res.size());
assertEquals("It was many and many a year ago,", res.get(0));
}
@Test
public void filteredFinderTest() {
void filteredFinderTest() {
var res = filteredFinder(" was ", "many", "child").find(text());
Assert.assertEquals(res.size(),1);
Assert.assertEquals(res.get(0),"But we loved with a love that was more than love-");
assertEquals(1, res.size());
assertEquals("But we loved with a love that was more than love-", res.get(0));
}
@Test
public void specializedFinderTest() {
void specializedFinderTest() {
var res = specializedFinder("love","heaven").find(text());
Assert.assertEquals(res.size(),1);
Assert.assertEquals(res.get(0),"With a love that the winged seraphs of heaven");
assertEquals(1, res.size());
assertEquals("With a love that the winged seraphs of heaven", res.get(0));
}
@Test
public void expandedFinderTest() {
void expandedFinderTest() {
var res = expandedFinder("It was","kingdom").find(text());
Assert.assertEquals(res.size(),3);
Assert.assertEquals(res.get(0),"It was many and many a year ago,");
Assert.assertEquals(res.get(1),"In a kingdom by the sea,");
Assert.assertEquals(res.get(2),"In this kingdom by the sea;");
assertEquals(3, res.size());
assertEquals("It was many and many a year ago,", res.get(0));
assertEquals("In a kingdom by the sea,", res.get(1));
assertEquals("In this kingdom by the sea;", res.get(2));
}
@ -80,4 +80,4 @@ public class FindersTest {
+ "Coveted her and me.";
}
}
}

@ -36,10 +36,6 @@
<artifactId>double-buffer</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>

@ -23,14 +23,14 @@
package com.iluwatar.doublebuffer;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import org.junit.jupiter.api.Test;
/**
* App unit test.
*/
public class AppTest {
class AppTest {
/**
* Issue: Add at least one assertion to this test case.
@ -40,7 +40,7 @@ public class AppTest {
*/
@Test
public void shouldExecuteApplicationWithoutException() {
void shouldExecuteApplicationWithoutException() {
assertDoesNotThrow(() -> App.main(new String[]{}));
}

@ -23,17 +23,19 @@
package com.iluwatar.doublebuffer;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import java.util.Arrays;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* FrameBuffer unit test.
*/
public class FrameBufferTest {
class FrameBufferTest {
@Test
public void testClearAll() {
void testClearAll() {
try {
var field = FrameBuffer.class.getDeclaredField("pixels");
var pixels = new Pixel[FrameBuffer.HEIGHT * FrameBuffer.WIDTH];
@ -43,14 +45,14 @@ public class FrameBufferTest {
field.setAccessible(true);
field.set(frameBuffer, pixels);
frameBuffer.clearAll();
Assert.assertEquals(Pixel.WHITE, frameBuffer.getPixels()[0]);
assertEquals(Pixel.WHITE, frameBuffer.getPixels()[0]);
} catch (NoSuchFieldException | IllegalAccessException e) {
Assert.fail("Fail to modify field access.");
fail("Fail to modify field access.");
}
}
@Test
public void testClear() {
void testClear() {
try {
var field = FrameBuffer.class.getDeclaredField("pixels");
var pixels = new Pixel[FrameBuffer.HEIGHT * FrameBuffer.WIDTH];
@ -60,21 +62,21 @@ public class FrameBufferTest {
field.setAccessible(true);
field.set(frameBuffer, pixels);
frameBuffer.clear(0, 0);
Assert.assertEquals(Pixel.WHITE, frameBuffer.getPixels()[0]);
assertEquals(Pixel.WHITE, frameBuffer.getPixels()[0]);
} catch (NoSuchFieldException | IllegalAccessException e) {
Assert.fail("Fail to modify field access.");
fail("Fail to modify field access.");
}
}
@Test
public void testDraw() {
void testDraw() {
var frameBuffer = new FrameBuffer();
frameBuffer.draw(0, 0);
Assert.assertEquals(Pixel.BLACK, frameBuffer.getPixels()[0]);
assertEquals(Pixel.BLACK, frameBuffer.getPixels()[0]);
}
@Test
public void testGetPixels() {
void testGetPixels() {
try {
var field = FrameBuffer.class.getDeclaredField("pixels");
var pixels = new Pixel[FrameBuffer.HEIGHT * FrameBuffer.WIDTH];
@ -83,9 +85,9 @@ public class FrameBufferTest {
var frameBuffer = new FrameBuffer();
field.setAccessible(true);
field.set(frameBuffer, pixels);
Assert.assertEquals(pixels, frameBuffer.getPixels());
assertEquals(pixels, frameBuffer.getPixels());
} catch (NoSuchFieldException | IllegalAccessException e) {
Assert.fail("Fail to modify field access.");
fail("Fail to modify field access.");
}
}

@ -23,17 +23,19 @@
package com.iluwatar.doublebuffer;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import java.util.ArrayList;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* Scene unit tests.
*/
public class SceneTest {
class SceneTest {
@Test
public void testGetBuffer() {
void testGetBuffer() {
try {
var scene = new Scene();
var field1 = Scene.class.getDeclaredField("current");
@ -46,14 +48,14 @@ public class SceneTest {
var field2 = Scene.class.getDeclaredField("frameBuffers");
field2.setAccessible(true);
field2.set(scene, frameBuffers);
Assert.assertEquals(frameBuffer, scene.getBuffer());
assertEquals(frameBuffer, scene.getBuffer());
} catch (NoSuchFieldException | IllegalAccessException e) {
Assert.fail("Fail to access private field.");
fail("Fail to access private field.");
}
}
@Test
public void testDraw() {
void testDraw() {
try {
var scene = new Scene();
var field1 = Scene.class.getDeclaredField("current");
@ -63,10 +65,10 @@ public class SceneTest {
field2.setAccessible(true);
field2.set(scene, 1);
scene.draw(new ArrayList<>());
Assert.assertEquals(1, field1.get(scene));
Assert.assertEquals(0, field2.get(scene));
assertEquals(1, field1.get(scene));
assertEquals(0, field2.get(scene));
} catch (NoSuchFieldException | IllegalAccessException e) {
Assert.fail("Fail to access private field");
fail("Fail to access private field");
}
}
}

@ -38,10 +38,6 @@
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
<build>
<plugins>

@ -35,11 +35,6 @@
<artifactId>game-loop</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>

@ -43,11 +43,6 @@
<artifactId>mockito-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>

@ -32,11 +32,6 @@
</parent>
<artifactId>leader-followers</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>

@ -23,20 +23,20 @@
package com;
import com.iluwatar.leaderfollowers.App;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import com.iluwatar.leaderfollowers.App;
import org.junit.jupiter.api.Test;
/**
*
* Application test
*
*/
public class AppTest {
class AppTest {
@Test
public void shouldExecuteApplicationWithoutException() {
void shouldExecuteApplicationWithoutException() {
assertDoesNotThrow(() -> App.main(new String[]{}));
}

@ -23,22 +23,23 @@
package com;
import static org.junit.jupiter.api.Assertions.assertTrue;
import com.iluwatar.leaderfollowers.Task;
import com.iluwatar.leaderfollowers.TaskHandler;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* Tests for TaskHandler
*/
public class TaskHandlerTest {
class TaskHandlerTest {
@Test
public void testHandleTask() throws InterruptedException {
void testHandleTask() throws InterruptedException {
var taskHandler = new TaskHandler();
var handle = new Task(100);
taskHandler.handleTask(handle);
Assert.assertTrue(handle.isFinished());
assertTrue(handle.isFinished());
}
}

@ -23,30 +23,31 @@
package com;
import static org.junit.jupiter.api.Assertions.assertEquals;
import com.iluwatar.leaderfollowers.Task;
import com.iluwatar.leaderfollowers.TaskSet;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* Tests for TaskSet
*/
public class TaskSetTest {
class TaskSetTest {
@Test
public void testAddTask() throws InterruptedException {
void testAddTask() throws InterruptedException {
var taskSet = new TaskSet();
taskSet.addTask(new Task(10));
Assert.assertTrue(taskSet.getSize() == 1);
assertEquals(1, taskSet.getSize());
}
@Test
public void testGetTask() throws InterruptedException {
void testGetTask() throws InterruptedException {
var taskSet = new TaskSet();
taskSet.addTask(new Task(100));
Task task = taskSet.getTask();
Assert.assertTrue(task.getTime() == 100);
Assert.assertTrue(taskSet.getSize() == 0);
assertEquals(100, task.getTime());
assertEquals(0, taskSet.getSize());
}
}

@ -23,43 +23,45 @@
package com;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNull;
import com.iluwatar.leaderfollowers.TaskHandler;
import com.iluwatar.leaderfollowers.TaskSet;
import com.iluwatar.leaderfollowers.WorkCenter;
import org.junit.Assert;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* Tests for WorkCenter
*/
public class WorkCenterTest {
class WorkCenterTest {
@Test
public void testCreateWorkers() {
void testCreateWorkers() {
var taskSet = new TaskSet();
var taskHandler = new TaskHandler();
var workCenter = new WorkCenter();
workCenter.createWorkers(5, taskSet, taskHandler);
Assert.assertEquals(workCenter.getWorkers().size(), 5);
Assert.assertEquals(workCenter.getWorkers().get(0), workCenter.getLeader());
assertEquals(5, workCenter.getWorkers().size());
assertEquals(workCenter.getWorkers().get(0), workCenter.getLeader());
}
@Test
public void testNullLeader() {
void testNullLeader() {
var workCenter = new WorkCenter();
workCenter.promoteLeader();
Assert.assertNull(workCenter.getLeader());
assertNull(workCenter.getLeader());
}
@Test
public void testPromoteLeader() {
void testPromoteLeader() {
var taskSet = new TaskSet();
var taskHandler = new TaskHandler();
var workCenter = new WorkCenter();
workCenter.createWorkers(5, taskSet, taskHandler);
workCenter.removeWorker(workCenter.getLeader());
workCenter.promoteLeader();
Assert.assertEquals(workCenter.getWorkers().size(), 4);
Assert.assertEquals(workCenter.getWorkers().get(0), workCenter.getLeader());
assertEquals(4, workCenter.getWorkers().size());
assertEquals(workCenter.getWorkers().get(0), workCenter.getLeader());
}
}

@ -21,18 +21,18 @@
* THE SOFTWARE.
*/
import org.junit.jupiter.api.Test;
import static org.hamcrest.CoreMatchers.instanceOf;
import static org.hamcrest.MatcherAssert.assertThat;
import org.junit.jupiter.api.Test;
/**
* Guard test
*/
public class GuardTest {
class GuardTest {
@Test
public void testGuard() {
void testGuard() {
var guard = new Guard();
assertThat(guard, instanceOf(Permission.class));
}

@ -35,12 +35,6 @@
<artifactId>partial-response</artifactId>
<dependencies>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.4.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>

@ -23,17 +23,18 @@
package com.iluwatar.partialresponse;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.eq;
import java.util.Map;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.Map;
/**
* tests {@link VideoResource}.
*/
@ -44,8 +45,8 @@ class VideoResourceTest {
private static VideoResource resource;
@BeforeAll
static void setUp() {
@BeforeEach
void setUp() {
var videos = Map.of(
1, new Video(1, "Avatar", 178, "epic science fiction film",
"James Cameron", "English"),
@ -70,7 +71,7 @@ class VideoResourceTest {
var fields = new String[]{"id", "title", "length"};
var expectedDetails = "{\"id\": 1,\"title\": \"Avatar\",\"length\": 178}";
Mockito.when(fieldJsonMapper.toJson(Matchers.any(Video.class), Matchers.eq(fields))).thenReturn(expectedDetails);
Mockito.when(fieldJsonMapper.toJson(any(Video.class), eq(fields))).thenReturn(expectedDetails);
var actualFieldsDetails = resource.getDetails(2, fields);

@ -41,10 +41,6 @@
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
<build>

@ -34,11 +34,6 @@
<artifactId>role-object</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>

@ -23,14 +23,14 @@
package com.iluwatar.roleobject;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
public class ApplicationRoleObjectTest {
import org.junit.jupiter.api.Test;
class ApplicationRoleObjectTest {
@Test
public void shouldExecuteApplicationWithoutException() {
void shouldExecuteApplicationWithoutException() {
assertDoesNotThrow(() -> ApplicationRoleObject.main(new String[]{}));
}
}

@ -23,15 +23,16 @@
package com.iluwatar.roleobject;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class BorrowerRoleTest {
import org.junit.jupiter.api.Test;
class BorrowerRoleTest {
@Test
public void borrowTest() {
void borrowTest() {
var borrowerRole = new BorrowerRole();
borrowerRole.setName("test");
Assert.assertEquals(borrowerRole.borrow(), "Borrower test wants to get some money.");
assertEquals("Borrower test wants to get some money.", borrowerRole.borrow());
}
}

@ -23,22 +23,22 @@
package com.iluwatar.roleobject;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.Test;
import org.junit.jupiter.api.Test;
public class CustomerCoreTest {
class CustomerCoreTest {
@Test
public void addRole() {
void addRole() {
var core = new CustomerCore();
assertTrue(core.addRole(Role.Borrower));
}
@Test
public void hasRole() {
void hasRole() {
var core = new CustomerCore();
core.addRole(Role.Borrower);
assertTrue(core.hasRole(Role.Borrower));
@ -46,7 +46,7 @@ public class CustomerCoreTest {
}
@Test
public void remRole() {
void remRole() {
var core = new CustomerCore();
core.addRole(Role.Borrower);
@ -60,7 +60,7 @@ public class CustomerCoreTest {
}
@Test
public void getRole() {
void getRole() {
var core = new CustomerCore();
core.addRole(Role.Borrower);
@ -76,17 +76,17 @@ public class CustomerCoreTest {
@Test
public void toStringTest() {
void toStringTest() {
var core = new CustomerCore();
core.addRole(Role.Borrower);
assertEquals(core.toString(), "Customer{roles=[Borrower]}");
assertEquals("Customer{roles=[Borrower]}", core.toString());
core = new CustomerCore();
core.addRole(Role.Investor);
assertEquals(core.toString(), "Customer{roles=[Investor]}");
assertEquals("Customer{roles=[Investor]}", core.toString());
core = new CustomerCore();
assertEquals(core.toString(), "Customer{roles=[]}");
assertEquals("Customer{roles=[]}", core.toString());
}

@ -23,16 +23,17 @@
package com.iluwatar.roleobject;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
public class InvestorRoleTest {
import org.junit.jupiter.api.Test;
class InvestorRoleTest {
@Test
public void investTest() {
void investTest() {
var investorRole = new InvestorRole();
investorRole.setName("test");
investorRole.setAmountToInvest(10);
Assert.assertEquals(investorRole.invest(), "Investor test has invested 10 dollars");
assertEquals("Investor test has invested 10 dollars", investorRole.invest());
}
}

@ -23,15 +23,17 @@
package com.iluwatar.roleobject;
import org.junit.Assert;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class RoleTest {
import org.junit.jupiter.api.Test;
class RoleTest {
@Test
public void instanceTest() {
void instanceTest() {
var instance = Role.Borrower.instance();
Assert.assertTrue(instance.isPresent());
Assert.assertEquals(instance.get().getClass(), BorrowerRole.class);
assertTrue(instance.isPresent());
assertEquals(instance.get().getClass(), BorrowerRole.class);
}
}

@ -30,17 +30,14 @@ import static org.mockito.Mockito.when;
import com.amazonaws.services.lambda.runtime.Context;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.mockito.runners.MockitoJUnitRunner;
/**
* Unit tests for LambdaInfoApiHandler
*/
@RunWith(MockitoJUnitRunner.class)
public class LambdaInfoApiHandlerTest {
class LambdaInfoApiHandlerTest {
@Test
public void handleRequestWithMockContext() {
void handleRequestWithMockContext() {
var lambdaInfoApiHandler = new LambdaInfoApiHandler();
var context = mock(Context.class);
when(context.getAwsRequestId()).thenReturn("mock aws request id");

@ -36,10 +36,6 @@
<artifactId>sharding</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>

@ -23,17 +23,17 @@
package com.iluwatar.sharding;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import org.junit.jupiter.api.Test;
/**
* Unit tests for App class.
*/
public class AppTest {
class AppTest {
@Test
public void shouldExecuteWithoutException() {
void shouldExecuteWithoutException() {
assertDoesNotThrow(() -> App.main(new String[]{}));
}

@ -23,22 +23,22 @@
package com.iluwatar.sharding;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
/**
* Unit tests for HashShardManager class.
*/
public class HashShardManagerTest {
class HashShardManagerTest {
private HashShardManager hashShardManager;
/**
* Initialize hashShardManager instance.
*/
@Before
@BeforeEach
public void setup() {
hashShardManager = new HashShardManager();
var shard1 = new Shard(1);
@ -49,16 +49,11 @@ public class HashShardManagerTest {
hashShardManager.addNewShard(shard3);
}
@After
public void tearDown() {
}
@Test
public void testStoreData() {
void testStoreData() {
var data = new Data(1, "test", Data.DataType.TYPE_1);
hashShardManager.storeData(data);
Assert.assertEquals(data, hashShardManager.getShardById(1).getDataById(1));
assertEquals(data, hashShardManager.getShardById(1).getDataById(1));
}
}

@ -23,22 +23,24 @@
package com.iluwatar.sharding;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import java.util.Map;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
/**
* Unit tests for LookupShardManager class.
*/
public class LookupShardManagerTest {
class LookupShardManagerTest {
private LookupShardManager lookupShardManager;
/**
* Initialize lookupShardManager instance.
*/
@Before
@BeforeEach
public void setup() {
lookupShardManager = new LookupShardManager();
var shard1 = new Shard(1);
@ -50,7 +52,7 @@ public class LookupShardManagerTest {
}
@Test
public void testStoreData() {
void testStoreData() {
try {
var data = new Data(1, "test", Data.DataType.TYPE_1);
lookupShardManager.storeData(data);
@ -59,9 +61,9 @@ public class LookupShardManagerTest {
var lookupMap = (Map<Integer, Integer>) field.get(lookupShardManager);
var shardId = lookupMap.get(1);
var shard = lookupShardManager.getShardById(shardId);
Assert.assertEquals(data, shard.getDataById(1));
assertEquals(data, shard.getDataById(1));
} catch (NoSuchFieldException | IllegalAccessException e) {
Assert.fail("Fail to modify field access.");
fail("Fail to modify field access.");
}
}
}

@ -23,21 +23,22 @@
package com.iluwatar.sharding;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
/**
* Unit tests for RangeShardManager class.
*/
public class RangeShardManagerTest {
class RangeShardManagerTest {
private RangeShardManager rangeShardManager;
/**
* Initialize rangeShardManager instance.
*/
@Before
@BeforeEach
public void setup() {
rangeShardManager = new RangeShardManager();
var shard1 = new Shard(1);
@ -49,10 +50,10 @@ public class RangeShardManagerTest {
}
@Test
public void testStoreData() {
void testStoreData() {
var data = new Data(1, "test", Data.DataType.TYPE_1);
rangeShardManager.storeData(data);
Assert.assertEquals(data, rangeShardManager.getShardById(1).getDataById(1));
assertEquals(data, rangeShardManager.getShardById(1).getDataById(1));
}
}

@ -23,49 +23,46 @@
package com.iluwatar.sharding;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.fail;
import java.util.Map;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
/**
* Unit tests for ShardManager class.
*/
public class ShardManagerTest {
class ShardManagerTest {
private ShardManager shardManager;
/**
* Initialize shardManager instance.
*/
@Before
public void setup() {
@BeforeEach
void setup() {
shardManager = new TestShardManager();
}
@After
public void tearDown() {
}
@Test
public void testAddNewShard() {
void testAddNewShard() {
try {
var shard = new Shard(1);
shardManager.addNewShard(shard);
var field = ShardManager.class.getDeclaredField("shardMap");
field.setAccessible(true);
var map = (Map<Integer, Shard>) field.get(shardManager);
Assert.assertEquals(1, map.size());
Assert.assertEquals(shard, map.get(1));
assertEquals(1, map.size());
assertEquals(shard, map.get(1));
} catch (NoSuchFieldException | IllegalAccessException e) {
Assert.fail("Fail to modify field access.");
fail("Fail to modify field access.");
}
}
@Test
public void testRemoveShardById() {
void testRemoveShardById() {
try {
var shard = new Shard(1);
shardManager.addNewShard(shard);
@ -73,19 +70,19 @@ public class ShardManagerTest {
var field = ShardManager.class.getDeclaredField("shardMap");
field.setAccessible(true);
var map = (Map<Integer, Shard>) field.get(shardManager);
Assert.assertEquals(true, flag);
Assert.assertEquals(0, map.size());
assertTrue(flag);
assertEquals(0, map.size());
} catch (IllegalAccessException | NoSuchFieldException e) {
Assert.fail("Fail to modify field access.");
fail("Fail to modify field access.");
}
}
@Test
public void testGetShardById() {
void testGetShardById() {
var shard = new Shard(1);
shardManager.addNewShard(shard);
var tmpShard = shardManager.getShardById(1);
Assert.assertEquals(shard, tmpShard);
assertEquals(shard, tmpShard);
}
class TestShardManager extends ShardManager {

@ -23,50 +23,47 @@
package com.iluwatar.sharding;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;
import java.util.HashMap;
import java.util.Map;
import org.junit.After;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
/**
* Unit tests for Shard class.
*/
public class ShardTest {
class ShardTest {
private Data data;
private Shard shard;
@Before
@BeforeEach
public void setup() {
data = new Data(1, "test", Data.DataType.TYPE_1);
shard = new Shard(1);
}
@After
public void tearDown() {
}
@Test
public void testStoreData() {
void testStoreData() {
try {
shard.storeData(data);
var field = Shard.class.getDeclaredField("dataStore");
field.setAccessible(true);
var dataMap = (Map<Integer, Data>) field.get(shard);
Assert.assertEquals(1, dataMap.size());
Assert.assertEquals(data, dataMap.get(1));
assertEquals(1, dataMap.size());
assertEquals(data, dataMap.get(1));
} catch (NoSuchFieldException | IllegalAccessException e) {
Assert.fail("Fail to modify field access.");
fail("Fail to modify field access.");
}
}
@Test
public void testClearData() {
void testClearData() {
try {
var dataMap = new HashMap<Integer, Data>();
dataMap.put(1, data);
@ -75,9 +72,9 @@ public class ShardTest {
field.set(shard, dataMap);
shard.clearData();
dataMap = (HashMap<Integer, Data>) field.get(shard);
Assert.assertEquals(0, dataMap.size());
assertEquals(0, dataMap.size());
} catch (NoSuchFieldException | IllegalAccessException e) {
Assert.fail("Fail to modify field access.");
fail("Fail to modify field access.");
}
}
}

@ -38,10 +38,6 @@
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies>
<build>
<plugins>

@ -23,15 +23,17 @@
package com.iluwatar.singleton;
import static org.junit.jupiter.api.Assertions.assertThrows;
import java.lang.reflect.InvocationTargetException;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* Date: 12/29/15 - 19:26 PM.
*
* @author Jeroen Meulemeester
*/
public class ThreadSafeDoubleCheckLockingTest extends SingletonTest<ThreadSafeDoubleCheckLocking> {
class ThreadSafeDoubleCheckLockingTest extends SingletonTest<ThreadSafeDoubleCheckLocking> {
/**
* Create a new singleton test instance using the given 'getInstance' method.
@ -43,12 +45,12 @@ public class ThreadSafeDoubleCheckLockingTest extends SingletonTest<ThreadSafeDo
/**
* Test creating new instance by refection.
*/
@Test(expected = InvocationTargetException.class)
public void testCreatingNewInstanceByRefection() throws Exception {
@Test
void testCreatingNewInstanceByRefection() throws Exception {
ThreadSafeDoubleCheckLocking.getInstance();
var constructor = ThreadSafeDoubleCheckLocking.class.getDeclaredConstructor();
constructor.setAccessible(true);
constructor.newInstance((Object[]) null);
assertThrows(InvocationTargetException.class, () -> constructor.newInstance((Object[]) null));
}
}

@ -36,10 +36,6 @@
<artifactId>subclass-sandbox</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>com.github.stefanbirkner</groupId>
<artifactId>system-lambda</artifactId>

@ -23,17 +23,17 @@
package com.iluwatar.subclasssandbox;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import org.junit.jupiter.api.Test;
/**
* App unit tests.
*/
public class AppTest {
class AppTest {
@Test
public void shouldExecuteWithoutException() {
void shouldExecuteWithoutException() {
assertDoesNotThrow(() -> App.main(new String[]{}));
}
}

@ -23,45 +23,45 @@
package com.iluwatar.subclasssandbox;
import com.github.stefanbirkner.systemlambda.Statement;
import org.junit.Assert;
import org.junit.Test;
import static com.github.stefanbirkner.systemlambda.SystemLambda.tapSystemOutNormalized;
import static org.junit.jupiter.api.Assertions.assertEquals;
import com.github.stefanbirkner.systemlambda.Statement;
import org.junit.jupiter.api.Test;
/**
* GroundDive unit tests.
*/
public class GroundDiveTest {
class GroundDiveTest {
@Test
public void testMove() throws Exception {
void testMove() throws Exception {
var groundDive = new GroundDive();
groundDive.move(1.0, 1.0, 1.0);
var outputLog = getLogContent(() -> groundDive.move(1.0, 1.0, 1.0));
var expectedLog = "Move to ( 1.0, 1.0, 1.0 )";
Assert.assertEquals(outputLog, expectedLog);
assertEquals(outputLog, expectedLog);
}
@Test
public void testPlaySound() throws Exception {
void testPlaySound() throws Exception {
var groundDive = new GroundDive();
var outputLog = getLogContent(() -> groundDive.playSound("SOUND_NAME", 1));
var expectedLog = "Play SOUND_NAME with volumn 1";
Assert.assertEquals(outputLog, expectedLog);
assertEquals(outputLog, expectedLog);
}
@Test
public void testSpawnParticles() throws Exception {
void testSpawnParticles() throws Exception {
var groundDive = new GroundDive();
final var outputLog = getLogContent(
() -> groundDive.spawnParticles("PARTICLE_TYPE", 100));
final var expectedLog = "Spawn 100 particle with type PARTICLE_TYPE";
Assert.assertEquals(outputLog, expectedLog);
assertEquals(outputLog, expectedLog);
}
@Test
public void testActivate() throws Exception {
void testActivate() throws Exception {
var groundDive = new GroundDive();
var logs = tapSystemOutNormalized(groundDive::activate)
.split("\n");
@ -72,10 +72,10 @@ public class GroundDiveTest {
final var expectedLog2 = "Play GROUNDDIVE_SOUND with volumn 5";
final var log3 = getLogContent(logs[2]);
final var expectedLog3 = "Spawn 20 particle with type GROUNDDIVE_PARTICLE";
Assert.assertEquals(logs.length, expectedSize);
Assert.assertEquals(log1, expectedLog1);
Assert.assertEquals(log2, expectedLog2);
Assert.assertEquals(log3, expectedLog3);
assertEquals(logs.length, expectedSize);
assertEquals(log1, expectedLog1);
assertEquals(log2, expectedLog2);
assertEquals(log3, expectedLog3);
}
private String getLogContent(Statement statement) throws Exception {

@ -23,44 +23,44 @@
package com.iluwatar.subclasssandbox;
import com.github.stefanbirkner.systemlambda.Statement;
import org.junit.Assert;
import org.junit.Test;
import static com.github.stefanbirkner.systemlambda.SystemLambda.tapSystemOutNormalized;
import static org.junit.jupiter.api.Assertions.assertEquals;
import com.github.stefanbirkner.systemlambda.Statement;
import org.junit.jupiter.api.Test;
/**
* SkyLaunch unit tests.
*/
public class SkyLaunchTest {
class SkyLaunchTest {
@Test
public void testMove() throws Exception {
void testMove() throws Exception {
var skyLaunch = new SkyLaunch();
var outputLog = getLogContent(() -> skyLaunch.move(1.0, 1.0, 1.0));
var expectedLog = "Move to ( 1.0, 1.0, 1.0 )";
Assert.assertEquals(outputLog, expectedLog);
assertEquals(outputLog, expectedLog);
}
@Test
public void testPlaySound() throws Exception {
void testPlaySound() throws Exception {
var skyLaunch = new SkyLaunch();
var outputLog = getLogContent(() -> skyLaunch.playSound("SOUND_NAME", 1));
var expectedLog = "Play SOUND_NAME with volumn 1";
Assert.assertEquals(outputLog, expectedLog);
assertEquals(outputLog, expectedLog);
}
@Test
public void testSpawnParticles() throws Exception {
void testSpawnParticles() throws Exception {
var skyLaunch = new SkyLaunch();
var outputLog = getLogContent(
() -> skyLaunch.spawnParticles("PARTICLE_TYPE", 100));
var expectedLog = "Spawn 100 particle with type PARTICLE_TYPE";
Assert.assertEquals(outputLog, expectedLog);
assertEquals(outputLog, expectedLog);
}
@Test
public void testActivate() throws Exception {
void testActivate() throws Exception {
var skyLaunch = new SkyLaunch();
var logs = tapSystemOutNormalized(skyLaunch::activate)
.split("\n");
@ -71,10 +71,10 @@ public class SkyLaunchTest {
final var expectedLog2 = "Play SKYLAUNCH_SOUND with volumn 1";
final var log3 = getLogContent(logs[2]);
final var expectedLog3 = "Spawn 100 particle with type SKYLAUNCH_PARTICLE";
Assert.assertEquals(logs.length, expectedSize);
Assert.assertEquals(log1, expectedLog1);
Assert.assertEquals(log2, expectedLog2);
Assert.assertEquals(log3, expectedLog3);
assertEquals(logs.length, expectedSize);
assertEquals(log1, expectedLog1);
assertEquals(log2, expectedLog2);
assertEquals(log3, expectedLog3);
}
private String getLogContent(Statement statement) throws Exception {

@ -38,11 +38,6 @@
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-migrationsupport</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>

@ -68,7 +68,7 @@ public final class RainbowFishSerializer {
var map = Map.of(
"name", rainbowFish.getName(),
"age", String.format("%d", rainbowFish.getAge()),
"lengthMeters", String.format("%d", rainbowFish.getLengthMeters()),
LENGTH_METERS, String.format("%d", rainbowFish.getLengthMeters()),
WEIGHT_TONS, String.format("%d", rainbowFish.getWeightTons()),
"angry", Boolean.toString(rainbowFish.getAngry()),
"hungry", Boolean.toString(rainbowFish.getHungry()),
@ -95,7 +95,7 @@ public final class RainbowFishSerializer {
return new RainbowFish(
map.get("name"),
Integer.parseInt(map.get("age")),
Integer.parseInt(map.get("lengthMeters")),
Integer.parseInt(map.get(LENGTH_METERS)),
Integer.parseInt(map.get(WEIGHT_TONS))
);
}

@ -23,14 +23,13 @@
package com.iluwatar.tolerantreader;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import java.io.File;
import java.io.IOException;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
/**
* Application test
*/

@ -25,26 +25,32 @@ package com.iluwatar.tolerantreader;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertNotSame;
import static org.junit.jupiter.api.Assertions.assertTrue;
import java.io.File;
import org.junit.Rule;
import java.nio.file.Files;
import java.nio.file.Path;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.migrationsupport.rules.EnableRuleMigrationSupport;
import org.junit.rules.TemporaryFolder;
import org.junit.jupiter.api.io.TempDir;
/**
* Date: 12/30/15 - 18:39 PM
*
* @author Jeroen Meulemeester
*/
@EnableRuleMigrationSupport
public class RainbowFishSerializerTest {
class RainbowFishSerializerTest {
/**
* Create a temporary folder, used to generate files in during this test
*/
@Rule
public final TemporaryFolder testFolder = new TemporaryFolder();
@TempDir
static Path testFolder;
@BeforeEach
void beforeEach() {
assertTrue(Files.isDirectory(testFolder));
}
/**
* Rainbow fish version 1 used during the tests
@ -60,11 +66,11 @@ public class RainbowFishSerializerTest {
* Verify if a fish, written as version 1 can be read back as version 1
*/
@Test
public void testWriteV1ReadV1() throws Exception {
final var outputFile = this.testFolder.newFile();
RainbowFishSerializer.writeV1(V1, outputFile.getPath());
void testWriteV1ReadV1() throws Exception {
final var outputPath = Files.createFile(testFolder.resolve("outputFile"));
RainbowFishSerializer.writeV1(V1, outputPath.toString());
final var fish = RainbowFishSerializer.readV1(outputFile.getPath());
final var fish = RainbowFishSerializer.readV1(outputPath.toString());
assertNotSame(V1, fish);
assertEquals(V1.getName(), fish.getName());
assertEquals(V1.getAge(), fish.getAge());
@ -77,11 +83,11 @@ public class RainbowFishSerializerTest {
* Verify if a fish, written as version 2 can be read back as version 1
*/
@Test
public void testWriteV2ReadV1() throws Exception {
final var outputFile = this.testFolder.newFile();
RainbowFishSerializer.writeV2(V2, outputFile.getPath());
void testWriteV2ReadV1() throws Exception {
final var outputPath = Files.createFile(testFolder.resolve("outputFile2"));
RainbowFishSerializer.writeV2(V2, outputPath.toString());
final var fish = RainbowFishSerializer.readV1(outputFile.getPath());
final var fish = RainbowFishSerializer.readV1(outputPath.toString());
assertNotSame(V2, fish);
assertEquals(V2.getName(), fish.getName());
assertEquals(V2.getAge(), fish.getAge());
@ -89,4 +95,4 @@ public class RainbowFishSerializerTest {
assertEquals(V2.getWeightTons(), fish.getWeightTons());
}
}
}

@ -23,22 +23,22 @@
package com.iluwatar.tolerantreader;
import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* Date: 12/30/15 - 18:34 PM
*
* @author Jeroen Meulemeester
*/
public class RainbowFishTest {
class RainbowFishTest {
/**
* Verify if the getters of a {@link RainbowFish} return the expected values
*/
@Test
public void testValues() {
void testValues() {
final var fish = new RainbowFish("name", 1, 2, 3);
assertEquals("name", fish.getName());
assertEquals(1, fish.getAge());

@ -27,20 +27,20 @@ import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertFalse;
import static org.junit.jupiter.api.Assertions.assertTrue;
import org.junit.Test;
import org.junit.jupiter.api.Test;
/**
* Date: 12/30/15 - 18:35 PM
*
* @author Jeroen Meulemeester
*/
public class RainbowFishV2Test {
class RainbowFishV2Test {
/**
* Verify if the getters of a {@link RainbowFish} return the expected values
*/
@Test
public void testValues() {
void testValues() {
final var fish = new RainbowFishV2("name", 1, 2, 3, false, true, false);
assertEquals("name", fish.getName());
assertEquals(1, fish.getAge());

@ -35,19 +35,9 @@
<artifactId>unit-of-work</artifactId>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.0.0</version>
<scope>test</scope>
</dependency>
<dependency>

@ -23,17 +23,17 @@
package com.iluwatar.unitofwork;
import org.junit.Test;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import org.junit.jupiter.api.Test;
/**
* AppTest
*/
public class AppTest {
class AppTest {
@Test
public void shouldExecuteWithoutException() {
void shouldExecuteWithoutException() {
assertDoesNotThrow(() -> App.main(new String[]{}));
}
}

@ -23,43 +23,32 @@
package com.iluwatar.unitofwork;
import static org.junit.Assert.assertEquals;
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.never;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
import static org.mockito.Mockito.verifyZeroInteractions;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
import org.junit.jupiter.api.Test;
/**
* tests {@link StudentRepository}
*/
@RunWith(MockitoJUnitRunner.class)
public class StudentRepositoryTest {
class StudentRepositoryTest {
private final Student student1 = new Student(1, "Ram", "street 9, cupertino");
private final Student student2 = new Student(1, "Sham", "Z bridge, pune");
private Map<String, List<Student>> context;
@Mock
private StudentDatabase studentDatabase;
private StudentRepository studentRepository;
@Before
public void setUp() {
context = new HashMap<>();
studentRepository = new StudentRepository(context, studentDatabase);
}
private final Map<String, List<Student>> context = new HashMap<>();
private final StudentDatabase studentDatabase = mock(StudentDatabase.class);
private final StudentRepository studentRepository = new StudentRepository(context, studentDatabase);;
@Test
public void shouldSaveNewStudentWithoutWritingToDb() {
void shouldSaveNewStudentWithoutWritingToDb() {
studentRepository.registerNew(student1);
studentRepository.registerNew(student2);
@ -68,7 +57,7 @@ public class StudentRepositoryTest {
}
@Test
public void shouldSaveDeletedStudentWithoutWritingToDb() {
void shouldSaveDeletedStudentWithoutWritingToDb() {
studentRepository.registerDeleted(student1);
studentRepository.registerDeleted(student2);
@ -77,7 +66,7 @@ public class StudentRepositoryTest {
}
@Test
public void shouldSaveModifiedStudentWithoutWritingToDb() {
void shouldSaveModifiedStudentWithoutWritingToDb() {
studentRepository.registerModified(student1);
studentRepository.registerModified(student2);
@ -86,7 +75,7 @@ public class StudentRepositoryTest {
}
@Test
public void shouldSaveAllLocalChangesToDb() {
void shouldSaveAllLocalChangesToDb() {
context.put(UnitActions.INSERT.getActionValue(), List.of(student1));
context.put(UnitActions.MODIFY.getActionValue(), List.of(student1));
context.put(UnitActions.DELETE.getActionValue(), List.of(student1));
@ -99,7 +88,7 @@ public class StudentRepositoryTest {
}
@Test
public void shouldNotWriteToDbIfContextIsNull() {
void shouldNotWriteToDbIfContextIsNull() {
var studentRepository = new StudentRepository(null, studentDatabase);
studentRepository.commit();
@ -108,16 +97,16 @@ public class StudentRepositoryTest {
}
@Test
public void shouldNotWriteToDbIfNothingToCommit() {
void shouldNotWriteToDbIfNothingToCommit() {
var studentRepository = new StudentRepository(new HashMap<>(), studentDatabase);
studentRepository.commit();
verifyZeroInteractions(studentDatabase);
verifyNoMoreInteractions(studentDatabase);
}
@Test
public void shouldNotInsertToDbIfNoRegisteredStudentsToBeCommitted() {
void shouldNotInsertToDbIfNoRegisteredStudentsToBeCommitted() {
context.put(UnitActions.MODIFY.getActionValue(), List.of(student1));
context.put(UnitActions.DELETE.getActionValue(), List.of(student1));
@ -127,7 +116,7 @@ public class StudentRepositoryTest {
}
@Test
public void shouldNotModifyToDbIfNotRegisteredStudentsToBeCommitted() {
void shouldNotModifyToDbIfNotRegisteredStudentsToBeCommitted() {
context.put(UnitActions.INSERT.getActionValue(), List.of(student1));
context.put(UnitActions.DELETE.getActionValue(), List.of(student1));
@ -137,7 +126,7 @@ public class StudentRepositoryTest {
}
@Test
public void shouldNotDeleteFromDbIfNotRegisteredStudentsToBeCommitted() {
void shouldNotDeleteFromDbIfNotRegisteredStudentsToBeCommitted() {
context.put(UnitActions.INSERT.getActionValue(), List.of(student1));
context.put(UnitActions.MODIFY.getActionValue(), List.of(student1));
@ -145,4 +134,4 @@ public class StudentRepositoryTest {
verify(studentDatabase, never()).delete(student1);
}
}
}