Skip to content

Commit 531158c

Browse files
committed
Added tests for monostate pattern
1 parent 6fe01e7 commit 531158c

File tree

6 files changed

+58
-15
lines changed

6 files changed

+58
-15
lines changed

monostate/pom.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,5 +14,10 @@
1414
<artifactId>junit</artifactId>
1515
<scope>test</scope>
1616
</dependency>
17+
<dependency>
18+
<groupId>org.mockito</groupId>
19+
<artifactId>mockito-core</artifactId>
20+
<scope>test</scope>
21+
</dependency>
1722
</dependencies>
1823
</project>

monostate/src/main/java/com/iluwatar/monostate/App.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ public class App {
2828
public static void main(String[] args) {
2929
LoadBalancer loadBalancer1 = new LoadBalancer();
3030
LoadBalancer loadBalancer2 = new LoadBalancer();
31-
loadBalancer1.serverequest(new Request("Hello"));
32-
loadBalancer2.serverequest(new Request("Hello World"));
31+
loadBalancer1.serverRequest(new Request("Hello"));
32+
loadBalancer2.serverRequest(new Request("Hello World"));
3333
}
3434

3535
}

monostate/src/main/java/com/iluwatar/monostate/LoadBalancer.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public static int getLastServedId() {
3939
return lastServedId;
4040
}
4141

42-
public void serverequest(Request request) {
42+
public void serverRequest(Request request) {
4343
if (lastServedId >= servers.size()) {
4444
lastServedId = 0;
4545
}

monostate/src/main/java/com/iluwatar/monostate/Server.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public int getPort() {
2525
return port;
2626
}
2727

28-
public final void serve(Request request) {
28+
public void serve(Request request) {
2929
System.out.println("Server ID " + id + " associated to host : " + getHost() + " and Port "
3030
+ getPort() + " Processed request with value " + request.value);
3131
}

monostate/src/test/java/com/iluwatar/monostate/AppTest.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -5,17 +5,6 @@
55

66
public class AppTest {
77

8-
@Test
9-
public void testSameStateAmonstAllInstances() {
10-
LoadBalancer balancer = new LoadBalancer();
11-
LoadBalancer balancer2 = new LoadBalancer();
12-
balancer.addServer(new Server("localhost", 8085, 6));
13-
// Both should have the same number of servers.
14-
Assert.assertTrue(balancer.getNoOfServers() == balancer2.getNoOfServers());
15-
// Both Should have the same LastServedId
16-
Assert.assertTrue(balancer.getLastServedId() == balancer2.getLastServedId());
17-
}
18-
198
@Test
209
public void testMain() {
2110
String[] args = {};
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
package com.iluwatar.monostate;
2+
3+
import org.junit.Assert;
4+
import org.junit.Test;
5+
6+
import static org.mockito.Mockito.mock;
7+
import static org.mockito.Mockito.times;
8+
import static org.mockito.Mockito.verify;
9+
import static org.mockito.Mockito.verifyNoMoreInteractions;
10+
import static org.mockito.Mockito.verifyZeroInteractions;
11+
12+
/**
13+
* Date: 12/21/15 - 12:26 PM
14+
*
15+
* @author Jeroen Meulemeester
16+
*/
17+
public class LoadBalancerTest {
18+
19+
@Test
20+
public void testSameStateAmongstAllInstances() {
21+
final LoadBalancer firstBalancer = new LoadBalancer();
22+
final LoadBalancer secondBalancer = new LoadBalancer();
23+
firstBalancer.addServer(new Server("localhost", 8085, 6));
24+
// Both should have the same number of servers.
25+
Assert.assertTrue(firstBalancer.getNoOfServers() == secondBalancer.getNoOfServers());
26+
// Both Should have the same LastServedId
27+
Assert.assertTrue(firstBalancer.getLastServedId() == secondBalancer.getLastServedId());
28+
}
29+
30+
@Test
31+
public void testServe() {
32+
final Server server = mock(Server.class);
33+
34+
final LoadBalancer loadBalancer = new LoadBalancer();
35+
loadBalancer.addServer(server);
36+
37+
verifyZeroInteractions(server);
38+
39+
final Request request = new Request("test");
40+
for (int i = 0; i < loadBalancer.getNoOfServers() * 2; i++) {
41+
loadBalancer.serverRequest(request);
42+
}
43+
44+
verify(server, times(2)).serve(request);
45+
verifyNoMoreInteractions(server);
46+
47+
}
48+
49+
}

0 commit comments

Comments
 (0)