Guest User

Untitled

a guest
May 4th, 2018
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.76 KB | None | 0 0
  1. import static org.junit.Assert.*;
  2.  
  3. import java.io.ByteArrayInputStream;
  4. import java.io.ByteArrayOutputStream;
  5. import java.io.InputStream;
  6. import java.io.PrintStream;
  7.  
  8. import org.junit.Before;
  9. import org.junit.Ignore;
  10. import org.junit.Test;
  11.  
  12. public class CompanyEmailSystemTest extends CompanyEmailSystem {
  13.  
  14. private final ByteArrayOutputStream testOutputContent = new ByteArrayOutputStream();
  15.  
  16. @Before
  17. public void setUpStreams() {
  18. System.setOut(new PrintStream(testOutputContent));
  19. }
  20.  
  21. @Ignore
  22. public void testListProjects() {
  23. // Test 1: Test that projects are listed and formatted correctly. Should pass.
  24. // Written by Marek Canavan, James Abbott, Richard Thomas and Matthew Carter
  25. // BUG FIX: Added a space to improve formatting.
  26. InputStream inputContent = new ByteArrayInputStream("P".getBytes());
  27. System.setIn(inputContent);
  28.  
  29. CompanyEmailSystem.main(null);
  30.  
  31. String expectedContent = "What do you want to do?\n" +
  32. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it\n" +
  33. "1) Proj1 [Design] - 4 emails\n" +
  34. "2) Proj2 [Design] - 3 emails\n" +
  35. "3) Proj3 [Design] - 3 emails\n" +
  36. "What do you want to do?\n" +
  37. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it Software\n";
  38.  
  39.  
  40. String receivedContent = testOutputContent.toString();
  41. expectedContent.replaceAll("\\s", "");
  42. receivedContent.replaceAll("\\s", "");
  43.  
  44. assertEquals(expectedContent, receivedContent);
  45. }
  46.  
  47. @Ignore
  48. public void testAddProject() {
  49. // Test 2: Test that project is added and formatted correctly. Should pass.
  50. // Written by Marek Canavan, James Abbott, Richard Thomas and Matthew Carter
  51. // No Bug Fixes.
  52. InputStream inputContent1 = new ByteArrayInputStream("A \rProject Nottingham\r P".getBytes());
  53. System.setIn(inputContent1);
  54. CompanyEmailSystem.main(null);
  55.  
  56.  
  57. String expectedContent = "What do you want to do?\n" +
  58. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it\n" +
  59. "What is the title of the project?\n" +
  60. "[Project added]\n" +
  61. "What do you want to do?\n" +
  62. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it Software\n" +
  63. "1) Proj1 [Design] - 4 emails\n" +
  64. "2) Proj2 [Design] - 3 emails\n" +
  65. "3) Proj3 [Design] - 3 emails\n" +
  66. "4) Project Nottingham [Design] - 0 emails\n" +
  67. "What do you want to do?\n" +
  68. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it Software\n";
  69.  
  70.  
  71. String receivedContent = testOutputContent.toString();
  72. expectedContent.replaceAll("\\s", "");
  73. receivedContent.replaceAll("\\s", "");
  74.  
  75. assertEquals(expectedContent, receivedContent);
  76. }
  77.  
  78. @Ignore
  79. public void testListEmails() {
  80. // Test 3: Test that function returns correct email for given phase. Should pass.
  81. // Written by Marek Canavan, James Abbott
  82. // BUG FIX: Previously could not access project 1, as it was being used as the escape case, so changed the escape case to -99.
  83. InputStream inputContent1 = new ByteArrayInputStream("1\rL".getBytes());
  84. System.setIn(inputContent1);
  85. CompanyEmailSystem.main(null);
  86.  
  87.  
  88. String expectedContent = "What do you want to do?\n" +
  89. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it\n" +
  90. "What do you want to do?\n" +
  91. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n" +
  92. "Proj1 [Design]\n" +
  93. "\n" +
  94. " From Subject\n" +
  95. "--------------------------------\n" +
  96. "1) me9@me.com - this is a test subject for email9\n" +
  97. "2) me6@me.com - this is a test subject for email6\n" +
  98. "3) me3@me.com - this is a test subject for email3\n" +
  99. "4) me0@me.com - this is a test subject for email0\n" +
  100. "What do you want to do?\n" +
  101. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n";
  102.  
  103.  
  104. String receivedContent = testOutputContent.toString();
  105. expectedContent.replaceAll("\\s", "");
  106. receivedContent.replaceAll("\\s", "");
  107.  
  108. assertEquals(expectedContent, receivedContent);
  109. }
  110.  
  111. @Ignore
  112. public void testListContacts() {
  113. // Test 4: Test that contacts are listed and formatted correctly. Should pass.
  114. // Written by Marek Canavan, James Abbott
  115. // No Bug Fix
  116. InputStream inputContent = new ByteArrayInputStream("P\r2\rC".getBytes()); // Enters 'p' into console to get past initial phase
  117. System.setIn(inputContent);
  118.  
  119. CompanyEmailSystem.main(null);
  120.  
  121. String expectedContent = "What do you want to do?\n" +
  122. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it\n" +
  123. "1) Proj1 [Design] - 4 emails\n" +
  124. "2) Proj2 [Design] - 3 emails\n" +
  125. "3) Proj3 [Design] - 3 emails\n" +
  126. "What do you want to do?\n" +
  127. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it Software\n" +
  128. "What do you want to do?\n" +
  129. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n" +
  130. "1) me1@me.com\n" +
  131. "2) me4@me.com\n" +
  132. "3) me7@me.com\n" +
  133. "What do you want to do?\n" +
  134. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n";
  135.  
  136.  
  137. String receivedContent = testOutputContent.toString();
  138. expectedContent.replaceAll("\\s", "");
  139. receivedContent.replaceAll("\\s", "");
  140.  
  141. assertEquals(expectedContent, receivedContent);
  142. }
  143.  
  144. @Ignore
  145. public void testChangeProjectPhase() {
  146. // Test 5: Test that Project can have it's phase increased and stopped when it reaches the maximum. Should pass.
  147. // Written by Marek Canavan, James Abbott
  148. // BUG FIX: See nextPhase() in CompanyProject.
  149. InputStream inputContent = new ByteArrayInputStream("2\rN\rN\rN\rN\rN".getBytes()); // Enters 'p' into console to get past initial phase
  150. System.setIn(inputContent);
  151.  
  152. CompanyEmailSystem.main(null);
  153. String expectedContent = "What do you want to do?\n" +
  154. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it\n" +
  155. "What do you want to do?\n" +
  156. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n" +
  157. "[Phase changed: Proj2 [Implementation]\n" +
  158. "What do you want to do?\n" +
  159. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n" +
  160. "[Phase changed: Proj2 [Testing]\n" +
  161. "What do you want to do?\n" +
  162. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n" +
  163. "[Phase changed: Proj2 [Deployment]\n" +
  164. "What do you want to do?\n" +
  165. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n" +
  166. "[Phase changed: Proj2 [Completed]\n" +
  167. "What do you want to do?\n" +
  168. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n" +
  169. "Project already in last phase.\n" +
  170. "What do you want to do?\n" +
  171. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n";
  172.  
  173.  
  174. String receivedContent = testOutputContent.toString();
  175. expectedContent.replaceAll("\\s", "");
  176. receivedContent.replaceAll("\\s", "");
  177.  
  178. assertEquals(expectedContent, receivedContent);
  179.  
  180. }
  181.  
  182. @Ignore
  183. // Test 6: Test that phases are listed and formatted correctly. Should pass.
  184. // Written by Matthew and Richard
  185. // BUG FIX: Incorrectly had an x as a parameter for getEmailsForPhase when it doesn't take a parameter.
  186.  
  187. public void testListPhases() {
  188. InputStream inputContent = new ByteArrayInputStream("2\rF".getBytes());
  189. System.setIn(inputContent);
  190.  
  191. CompanyEmailSystem.main(null);
  192.  
  193. String expectedContent = "What do you want to do?\n" +
  194. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it\n" +
  195. "What do you want to do?\n" +
  196. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n" +
  197. "1) Design - 3 Emails\n" +
  198. "What do you want to do?\n" +
  199. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n";
  200.  
  201. String receivedContent = testOutputContent.toString();
  202. expectedContent.replaceAll("\\s", "");
  203. receivedContent.replaceAll("\\s", "");
  204.  
  205. assertEquals(expectedContent,receivedContent);
  206. }
  207.  
  208. @Ignore
  209. // Test 7: Test if email is added and formatted correctly. Should pass.
  210. // Written by Matthew and Richard
  211. // No Bug Fix
  212. public void testAddEmail() {
  213. InputStream inputContent = new ByteArrayInputStream("2\rA\rfrom@email.com\rto@email.com\rsubject\rmessage\rL".getBytes());
  214. System.setIn(inputContent);
  215.  
  216. CompanyEmailSystem.main(null);
  217.  
  218. String expectedContent = "What do you want to do?\n" +
  219. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it\n" +
  220.  
  221. "What do you want to do?\n" +
  222. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n" +
  223.  
  224. "Which email address is it from?\n" +
  225.  
  226. "Which email address is it to?\n" +
  227.  
  228. "What is the Subject?\n" +
  229.  
  230. "What is the Message?\n" +
  231.  
  232. "[Email added to Proj2 [Design]]\n" +
  233. "What do you want to do?\n" +
  234. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n" +
  235.  
  236. "Proj2 [Design]\n" +
  237. "\n" +
  238. " From Subject\n" +
  239. "--------------------------------\n" +
  240. "1) from@email.com - subject\n" +
  241. "2) me7@me.com - this is a test subject for email7\n" +
  242. "3) me4@me.com - this is a test subject for email4\n" +
  243. "4) me1@me.com - this is a test subject for email1\n" +
  244. "What do you want to do?\n" +
  245. " L = [L]ist Emails, A = [A]dd Email, F = List Phase [F]olders, N = Move to [N]ext Phase, [num] = List Emails in Phase [num], C = List [C]ontacts, X = E[x]it Project\n";
  246.  
  247. String receivedContent = testOutputContent.toString();
  248. expectedContent.replaceAll("\\s", "");
  249. receivedContent.replaceAll("\\s", "");
  250.  
  251. assertEquals(expectedContent,receivedContent);
  252. }
  253.  
  254. }
Add Comment
Please, Sign In to add comment