Unittests mit Mockito
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

83 lines
2.1 KiB

3 years ago
  1. package de.edu.hsfulda.ciip.tdd;
  2. import static org.junit.jupiter.api.Assertions.assertEquals;
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.io.PrintStream;
  6. import java.util.Arrays;
  7. import java.util.List;
  8. import org.junit.jupiter.api.Test;
  9. import org.junit.jupiter.api.extension.ExtendWith;
  10. import org.mockito.InOrder;
  11. import org.mockito.Mock;
  12. import org.mockito.Mockito;
  13. import org.mockito.junit.jupiter.MockitoExtension;
  14. @ExtendWith(MockitoExtension.class)
  15. class TannenbaumUiTest {
  16. @Mock
  17. PrintStream output;
  18. @Mock
  19. InputStream input;
  20. @Test
  21. void parseUserInputToInteger() throws IOException {
  22. Mockito.doReturn(1).when(input).available();
  23. Mockito.doReturn((int) '7').when(input).read();
  24. int expected = 7;
  25. int treeSize = new TannenbaumUi(input, output).getTreeSize();
  26. assertEquals(expected, treeSize, "tree size");
  27. InOrder inOrder = Mockito.inOrder(input, output);
  28. inOrder.verify(output).println(TannenbaumUi.TREE_SIZE_PROMPT);
  29. inOrder.verify(input).available();
  30. }
  31. @Test
  32. void parseUserInputToInteger2() throws IOException {
  33. Mockito.doReturn(1).when(input).available();
  34. Mockito.doReturn((int) '9').when(input).read();
  35. int expected = 9;
  36. int treeSize = new TannenbaumUi(input, output).getTreeSize();
  37. assertEquals(expected, treeSize, "tree size");
  38. }
  39. @Test
  40. void parseUserInputToInteger2Digits() throws IOException {
  41. Mockito.doReturn(2).when(input).available();
  42. Mockito.doReturn((int) '3').doReturn((int) '5').when(input).read();
  43. int expected = 35;
  44. int treeSize = new TannenbaumUi(input, output).getTreeSize();
  45. assertEquals(expected, treeSize, "tree size");
  46. }
  47. @Test
  48. void writeSingleLine() throws Exception {
  49. String message = "hello world";
  50. new TannenbaumUi(input, output).print(Arrays.asList(message));
  51. Mockito.verify(output).println(message);
  52. }
  53. @Test
  54. void writeMultipeleLines() throws Exception {
  55. List<String> messageLines = Arrays.asList("hello", "world");
  56. new TannenbaumUi(input, output).print(messageLines);
  57. Mockito.verify(output).println(messageLines.get(0));
  58. Mockito.verify(output).println(messageLines.get(1));
  59. }
  60. }