Advertisement
Guest User

Untitled

a guest
Nov 19th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.75 KB | None | 0 0
  1. import org.junit.Before;
  2. import org.junit.Test;
  3. import static org.junit.Assert.*;
  4.  
  5. import java.util.Collections;
  6. import java.util.Set;
  7. import java.util.TreeSet;
  8.  
  9. /**
  10. * These tests are provided for testing the server's handling of channels and messages. You can and
  11. * should use these tests as a model for your own testing, but write your tests in
  12. * ServerModelTest.java.
  13. *
  14. * Note that "assert" commands used for testing can have a String as their first argument, denoting
  15. * what the "assert" command is testing.
  16. *
  17. * Remember to check http://junit.sourceforge.net/javadoc/org/junit/Assert.html for assert method
  18. * documention!
  19. */
  20. public class ChannelsMessagesTest {
  21. private ServerModel model;
  22.  
  23. // Before each test, we initialize model to be a new ServerModel (with all new, empty state)
  24. @Before
  25. public void setUp() {
  26. model = new ServerModel();
  27. }
  28.  
  29. @Test
  30. public void testCreateNewChannel() {
  31. model.registerUser(0);
  32. Command create = new CreateCommand(0, "User0", "java", false);
  33. Broadcast expected = Broadcast.okay(create, Collections.singleton("User0"));
  34. assertEquals("broadcast", expected, create.updateServerModel(model));
  35.  
  36. assertTrue("channel exists", model.getChannels().contains("java"));
  37. assertTrue("channel has creator", model.getUsersInChannel("java").contains("User0"));
  38. assertEquals("channel has owner", "User0", model.getOwner("java"));
  39. }
  40.  
  41. @Test
  42. public void testJoinChannelExistsNotMember() {
  43. model.registerUser(0);
  44. model.registerUser(1);
  45. Command create = new CreateCommand(0, "User0", "java", false);
  46. create.updateServerModel(model);
  47.  
  48. Command join = new JoinCommand(1, "User1", "java");
  49. Set<String> recipients = new TreeSet<>();
  50. recipients.add("User1");
  51. recipients.add("User0");
  52. Broadcast expected = Broadcast.names(join, recipients, "User0");
  53. assertEquals("broadcast", expected, join.updateServerModel(model));
  54.  
  55. assertTrue("User0 in channel", model.getUsersInChannel("java").contains("User0"));
  56. assertTrue("User1 in channel", model.getUsersInChannel("java").contains("User1"));
  57. assertEquals("num. users in channel", 2, model.getUsersInChannel("java").size());
  58. }
  59.  
  60. @Test
  61. public void testNickBroadcastsToChannelWhereMember() {
  62. model.registerUser(0);
  63. model.registerUser(1);
  64. Command create = new CreateCommand(0, "User0", "java", false);
  65. create.updateServerModel(model);
  66. Command join = new JoinCommand(1, "User1", "java");
  67. join.updateServerModel(model);
  68.  
  69. Command nick = new NicknameCommand(0, "User0", "Duke");
  70. Set<String> recipients = new TreeSet<>();
  71. recipients.add("User1");
  72. recipients.add("Duke");
  73. Broadcast expected = Broadcast.okay(nick, recipients);
  74. assertEquals("broadcast", expected, nick.updateServerModel(model));
  75.  
  76. assertFalse("old nick not in channel", model.getUsersInChannel("java").contains("User0"));
  77. assertTrue("new nick is in channel", model.getUsersInChannel("java").contains("Duke"));
  78. assertTrue("unaffected user still in channel", model.getUsersInChannel("java").contains("User1"));
  79. }
  80.  
  81. @Test
  82. public void testLeaveChannelExistsMember() {
  83. model.registerUser(0);
  84. model.registerUser(1);
  85. Command create = new CreateCommand(0, "User0", "java", false);
  86. create.updateServerModel(model);
  87. Command join = new JoinCommand(1, "User1", "java");
  88. join.updateServerModel(model);
  89.  
  90. Command leave = new LeaveCommand(1, "User1", "java");
  91. Set<String> recipients = new TreeSet<>();
  92. recipients.add("User1");
  93. recipients.add("User0");
  94. Broadcast expected = Broadcast.okay(leave, recipients);
  95. assertEquals("broadcast", expected, leave.updateServerModel(model));
  96.  
  97. assertTrue("User0 in channel", model.getUsersInChannel("java").contains("User0"));
  98. assertFalse("User1 not in channel", model.getUsersInChannel("java").contains("User1"));
  99. assertEquals("num. users in channel", 1, model.getUsersInChannel("java").size());
  100. }
  101.  
  102. @Test
  103. public void testDeregisterSendsDisconnectedWhereMember() {
  104. model.registerUser(0);
  105. model.registerUser(1);
  106. Command create = new CreateCommand(0, "User0", "java", false);
  107. create.updateServerModel(model);
  108. Command join = new JoinCommand(1, "User1", "java");
  109. join.updateServerModel(model);
  110.  
  111. Broadcast expected = Broadcast.disconnected("User1", Collections.singleton("User0"));
  112. assertEquals("broadcast", expected, model.deregisterUser(1));
  113.  
  114. assertTrue("channel still exists", model.getChannels().contains("java"));
  115. System.out.println(model.getUsersInChannel("java").size());
  116. assertEquals("num. users in channel", 1, model.getUsersInChannel("java").size());
  117. assertTrue("unaffected user still in channel", model.getUsersInChannel("java").contains("User0"));
  118. }
  119.  
  120. @Test
  121. public void testMesgChannelExistsMember() {
  122. model.registerUser(0);
  123. model.registerUser(1);
  124. Command create = new CreateCommand(0, "User0", "java", false);
  125. create.updateServerModel(model);
  126. Command join = new JoinCommand(1, "User1", "java");
  127. join.updateServerModel(model);
  128.  
  129. Command mesg = new MessageCommand(0, "User0", "java", "hey whats up hello");
  130. Set<String> recipients = new TreeSet<>();
  131. recipients.add("User1");
  132. recipients.add("User0");
  133. Broadcast expected = Broadcast.okay(mesg, recipients);
  134. assertEquals("broadcast", expected, mesg.updateServerModel(model));
  135. }
  136.  
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement