From 25d3d6d1ff6f57ad354f03a0b6cc4f1a897bb342 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Kjetil=20=C3=98rbekk?= <kjetil.orbekk@gmail.com>
Date: Thu, 16 Feb 2012 15:43:43 +0100
Subject: Implement all MasterService operations in NewMaster.

Tested with tests ported from old MasterImplTest.
---
 .../test/java/com/orbekk/same/NewMasterTest.java   | 40 ++++++++++++++++++++++
 1 file changed, 40 insertions(+)

(limited to 'same/src/test/java/com')

diff --git a/same/src/test/java/com/orbekk/same/NewMasterTest.java b/same/src/test/java/com/orbekk/same/NewMasterTest.java
index 098b141..273fb3c 100644
--- a/same/src/test/java/com/orbekk/same/NewMasterTest.java
+++ b/same/src/test/java/com/orbekk/same/NewMasterTest.java
@@ -42,6 +42,26 @@ public class NewMasterTest {
                 masterS);
     }
 
+    @Test
+    public void joinNetworkAddsClient() throws Exception {
+        masterS.joinNetworkRequest("http://clientUrl");
+        List<String> participants = state.getList(".participants");
+        assertTrue(participants.contains("http://clientUrl"));
+    }
+
+    @Test
+    public void clientJoin() {
+        Client client = new Client(
+                new State("ClientNetwork"), connections,
+                "http://client/ClientService.json");
+        ClientService clientS = client.getService();
+        connections.clientMap.put("http://client/ClientService.json", clientS);
+        client.joinNetwork("http://master/MasterService.json");
+        master.performWork();
+        assertTrue(state.getList(".participants").contains("http://client/ClientService.json"));
+        assertEquals(state, client.testGetState());
+    }
+
     @Test
     public void updateStateRequest() throws Exception {
         Client client1 = new Client(
@@ -76,4 +96,24 @@ public class NewMasterTest {
         assertEquals(state, client1.testGetState());
         assertEquals(state, client2.testGetState());
     }
+
+    @Test
+    public void masterRemovesParticipant() throws Exception {
+        Client client = new Client(
+                new State("ClientNetwork"), connections,
+                "http://client/ClientService.json");
+        ClientService clientS = client.getService();
+        connections.clientMap.put("http://client/ClientService.json", clientS);
+        client.joinNetwork("http://master/MasterService.json");
+        master.performWork();
+        assertTrue(state.getList(".participants").contains("http://client/ClientService.json"));
+        
+        connections.clientMap.put("http://client/ClientService.json",
+                new UnreachableClient());
+        masterS.updateStateRequest("NewState", "NewStateData", 0);
+        master.performWork();
+        
+        assertEquals("[]", state.getDataOf(".participants"));
+    }
+
 }
-- 
cgit v1.2.3