diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/java/pl/edu/mimuw/cloudatlas/agent/UDUPTest.java | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/src/test/java/pl/edu/mimuw/cloudatlas/agent/UDUPTest.java b/src/test/java/pl/edu/mimuw/cloudatlas/agent/UDUPTest.java index 975c918..545ad56 100644 --- a/src/test/java/pl/edu/mimuw/cloudatlas/agent/UDUPTest.java +++ b/src/test/java/pl/edu/mimuw/cloudatlas/agent/UDUPTest.java @@ -1,4 +1,186 @@ package pl.edu.mimuw.cloudatlas.agent; +import org.junit.*; +import pl.edu.mimuw.cloudatlas.agent.messages.GetStateMessage; +import pl.edu.mimuw.cloudatlas.agent.messages.UDUPMessage; +import pl.edu.mimuw.cloudatlas.agent.modules.Module; +import pl.edu.mimuw.cloudatlas.agent.modules.ModuleType; +import pl.edu.mimuw.cloudatlas.agent.modules.UDUP; +import pl.edu.mimuw.cloudatlas.model.PathName; +import pl.edu.mimuw.cloudatlas.model.ValueContact; + +import java.net.InetAddress; +import java.net.UnknownHostException; + public class UDUPTest { + + @Test + public void messageBetweenUDUPs() { + UDUP udp1 = null; + UDUP udp2 = null; + UDUPMessage msg1 = null; + boolean testSuccess = true; + + try { + System.out.println("Starting udp1"); + + udp1 = new UDUP( + ModuleType.UDP, + InetAddress.getByName("127.0.0.2"), + 5999, + 1000, + 5000, + 20000); + + System.out.println("Starting udp2"); + + udp2 = new UDUP( + ModuleType.UDP, + InetAddress.getByName("127.0.0.3"), + 5999, + 1000, + 5000, + 20000); + + msg1 = new UDUPMessage( + "1", + new ValueContact(new PathName("/udp2"), InetAddress.getByName("127.0.0.3")), + null, //new GetStateMessage("getstate1", 0, ModuleType.UDP, 1), + 0, + "conv1"); + + } catch (UnknownHostException e) { + e.printStackTrace(); + } + + Thread udpThread1 = new Thread(udp1); + udpThread1.start(); + Thread udpThread2 = new Thread(udp2); + udpThread2.start(); + + try { + Thread.sleep(5000); + System.out.println("Sending message"); + if (udp1 == null | udp2 == null) { + Assert.fail("UDPs not initialized"); + } else { + udp1.handle(msg1); + Thread.sleep(10000); + UDUPMessage conv = udp2.fetchConversation("conv1"); + if (!conv.getConversationId().equals("conv1")) { + testSuccess = false; + } + } + } catch (InterruptedException | Module.InvalidMessageType e) { + e.printStackTrace(); + testSuccess = false; + } catch (UDUP.InvalidConversation invalidConversation) { + System.out.println("Invalid conversation"); + testSuccess = false; + } + + udpThread1.interrupt(); + udpThread2.interrupt(); + + if (testSuccess) { + Assert.assertTrue(true); + } else { + Assert.fail(); + } + } +/* + @Test + public void bigMessageBetweenUDUPs() { + UDUP udp1 = new UDUP( + ModuleType.UDP, + 5999, + 1000, + 5000, + 256); + + UDUP udp2 = new UDUP( + ModuleType.UDP, + 5998, + 1000, + 5000, + 256); + + AttributesMap bigAttrib = new AttributesMap(); + for (Long i = 1L; i < 20; i++) { + bigAttrib.add(i.toString(), new ValueInt(i)); + } + + UDUPMessage msg1 = new UDUPMessage( + "udp1", + ModuleType.UDP, + "localhost", + 5998, + new UpdateAttributesMessage("updateattrib1", 0,"/", bigAttrib), + 0, + "conv1"); + + try { + udp1.handle(msg1); + Thread.sleep(1000); + UDUPMessage conv = udp2.fetchConversation("conv1"); + Assert.assertEquals(conv.getConversationId(), "conv1"); + } catch (InterruptedException | Module.InvalidMessageType e) { + e.printStackTrace(); + } catch (UDUP.InvalidConversation noConversationError) { + Assert.fail(); + } + } + + + @Test + public void sendMultipleMessages() { + @Test + public void messageBetweenUDUPs() { + UDUP udp1 = new UDUP( + ModuleType.UDP, + 5999, + 1000, + 5000, + 3, + 256); + + UDUP udp2 = new UDUP( + ModuleType.UDP, + 5998, + 1000, + 5000, + 3, + 256); + + UDUPMessage msg1 = new UDUPMessage( + "1", + ModuleType.UDP, + "localhost", + 5998, + null, + 0, + "conv1"); + + + + + try { + udp1.handle(msg1); + udp1.handle(msg2); + udp1.handle(msg3); + Thread.sleep(1000); + UDUPMessage conv1 = udp2.fetchConversation("conv1"); + Assert.assertEquals(conv1.getConversationId(), "conv1"); + UDUPMessage conv2 = udp2.fetchConversation("conv2"); + Assert.assertEquals(conv2.getConversationId(), "conv2"); + UDUPMessage conv3 = udp2.fetchConversation("conv3"); + Assert.assertEquals(conv3.getConversationId(), "conv3"); + } catch (InterruptedException | Module.InvalidMessageType e) { + e.printStackTrace(); + } catch (UDUP.InvalidConversation invalidConversation) { + Assert.fail(); + } + } + } +*/ } |