Guest User

Untitled

a guest
May 4th, 2018
117
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) [email protected] - this is a test subject for email9\n" +
  97. "2) [email protected] - this is a test subject for email6\n" +
  98. "3) [email protected] - this is a test subject for email3\n" +
  99. "4) [email protected] - 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. "What do you want to do?\n" +
  131. " 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";
  132.  
  133.  
  134. String receivedContent = testOutputContent.toString();
  135. expectedContent.replaceAll("\\s", "");
  136. receivedContent.replaceAll("\\s", "");
  137.  
  138. assertEquals(expectedContent, receivedContent);
  139. }
  140.  
  141. @Ignore
  142. public void testChangeProjectPhase() {
  143. // Test 5: Test that Project can have it's phase increased and stopped when it reaches the maximum. Should pass.
  144. // Written by Marek Canavan, James Abbott
  145. // BUG FIX: See nextPhase() in CompanyProject.
  146. InputStream inputContent = new ByteArrayInputStream("2\rN\rN\rN\rN\rN".getBytes()); // Enters 'p' into console to get past initial phase
  147. System.setIn(inputContent);
  148.  
  149. CompanyEmailSystem.main(null);
  150. String expectedContent = "What do you want to do?\n" +
  151. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it\n" +
  152. "What do you want to do?\n" +
  153. " 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" +
  154. "[Phase changed: Proj2 [Implementation]\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 [Testing]\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 [Deployment]\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 [Completed]\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. "Project already in last phase.\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.  
  170.  
  171. String receivedContent = testOutputContent.toString();
  172. expectedContent.replaceAll("\\s", "");
  173. receivedContent.replaceAll("\\s", "");
  174.  
  175. assertEquals(expectedContent, receivedContent);
  176.  
  177. }
  178.  
  179. @Ignore
  180. // Test 6: Test that phases are listed and formatted correctly. Should pass.
  181. // Written by Matthew and Richard
  182. // BUG FIX: Incorrectly had an x as a parameter for getEmailsForPhase when it doesn't take a parameter.
  183.  
  184. public void testListPhases() {
  185. InputStream inputContent = new ByteArrayInputStream("2\rF".getBytes());
  186. System.setIn(inputContent);
  187.  
  188. CompanyEmailSystem.main(null);
  189.  
  190. String expectedContent = "What do you want to do?\n" +
  191. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it\n" +
  192. "What do you want to do?\n" +
  193. " 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" +
  194. "1) Design - 3 Emails\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.  
  198. String receivedContent = testOutputContent.toString();
  199. expectedContent.replaceAll("\\s", "");
  200. receivedContent.replaceAll("\\s", "");
  201.  
  202. assertEquals(expectedContent,receivedContent);
  203. }
  204.  
  205. @Ignore
  206. // Test 7: Test if email is added and formatted correctly. Should pass.
  207. // Written by Matthew and Richard
  208. // No Bug Fix
  209. public void testAddEmail() {
  210. InputStream inputContent = new ByteArrayInputStream("2\rA\[email protected]\[email protected]\rsubject\rmessage\rL".getBytes());
  211. System.setIn(inputContent);
  212.  
  213. CompanyEmailSystem.main(null);
  214.  
  215. String expectedContent = "What do you want to do?\n" +
  216. " P = List [P]rojects, [num] = Open Project [num], A = [A]dd Project, X = E[x]it\n" +
  217.  
  218. "What do you want to do?\n" +
  219. " 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" +
  220.  
  221. "Which email address is it from?\n" +
  222.  
  223. "Which email address is it to?\n" +
  224.  
  225. "What is the Subject?\n" +
  226.  
  227. "What is the Message?\n" +
  228.  
  229. "[Email added to Proj2 [Design]]\n" +
  230. "What do you want to do?\n" +
  231. " 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" +
  232.  
  233. "Proj2 [Design]\n" +
  234. "\n" +
  235. " From Subject\n" +
  236. "--------------------------------\n" +
  237. "1) [email protected] - subject\n" +
  238. "2) [email protected] - this is a test subject for email7\n" +
  239. "3) [email protected] - this is a test subject for email4\n" +
  240. "4) [email protected] - this is a test subject for email1\n" +
  241. "What do you want to do?\n" +
  242. " 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";
  243.  
  244. String receivedContent = testOutputContent.toString();
  245. expectedContent.replaceAll("\\s", "");
  246. receivedContent.replaceAll("\\s", "");
  247.  
  248. assertEquals(expectedContent,receivedContent);
  249. }
  250.  
  251. }
Add Comment
Please, Sign In to add comment