Guest User

test

a guest
Feb 25th, 2021
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.68 KB | None | 0 0
  1. package fundamentals;
  2.  
  3. import org.junit.jupiter.api.AfterEach;
  4. import org.junit.jupiter.api.BeforeEach;
  5. import org.junit.jupiter.api.Test;
  6. import org.junit.jupiter.params.ParameterizedTest;
  7. import org.junit.jupiter.params.provider.ValueSource;
  8.  
  9. import java.io.ByteArrayInputStream;
  10. import java.io.ByteArrayOutputStream;
  11. import java.io.InputStream;
  12. import java.io.PrintStream;
  13.  
  14. import static org.junit.jupiter.api.Assertions.assertEquals;
  15.  
  16. class MainFundamentalsTest {
  17.  
  18.     private MainFundamentals mainFundamentals;
  19.     private final InputStream standardIn = System.in;
  20.     private final PrintStream standardOut = System.out;
  21.     private final ByteArrayOutputStream outputStreamCaptor = new ByteArrayOutputStream();
  22.  
  23.  
  24.     @BeforeEach
  25.     void setUp() {
  26.         System.setOut(new PrintStream(outputStreamCaptor));
  27.         mainFundamentals = new MainFundamentals();
  28.     }
  29.  
  30.  
  31.     @AfterEach
  32.     void tearDown() {
  33.         System.setIn(standardIn);
  34.         System.setOut(standardOut);
  35.     }
  36.  
  37.     private void provideInput(String data) {
  38.         System.setIn(new ByteArrayInputStream(
  39.                 data.getBytes())
  40.         );
  41.     }
  42.  
  43.     @Test
  44.     void greetUserEnteringNameViaCli() {
  45.         provideInput("Jor");
  46.         mainFundamentals.greetUserEnteringNameViaCli();
  47.         assertEquals("Welcome, Jor!", outputStreamCaptor.toString()
  48.                 .substring(outputStreamCaptor.toString()
  49.                         .indexOf(System.lineSeparator())).trim());
  50.     }
  51.  
  52.     @Test
  53.     void printCliArgumentsInReverseOrder() {
  54.         mainFundamentals.printCliArgumentsInReverseOrder(
  55.                 new String[]{"1", "2", "3", "4", "5"});
  56.         assertEquals("5 4 3 2 1", outputStreamCaptor.toString());
  57.     }
  58.  
  59.     @Test
  60.     void printRandomNumbersWithAndWithoutNewLine() {
  61.         provideInput("5");
  62.         mainFundamentals.printRandomNumbersWithAndWithoutNewLine();
  63.         String expected = "Please, enter the number of random numbers: " +
  64.                 "Random numbers with the transition to a new line: \r\n" +
  65.                 "9\r\n" +
  66.                 "2\r\n" +
  67.                 "9\r\n" +
  68.                 "6\r\n" +
  69.                 "4\r\n" +
  70.                 "Random numbers without a line break: \r\n" +
  71.                 "9 2 9 6 4 ";
  72.         assertEquals(expected, outputStreamCaptor.toString());
  73.     }
  74.  
  75.     @Test
  76.     void printSumAndCompositionOfCliArgs() {
  77.         mainFundamentals.printSumAndCompositionOfCliArgs(
  78.                 new String[]{"1", "2", "3", "4", "5"});
  79.         String expected = "sum: 15\r\n" +
  80.                 "composition: 120";
  81.         assertEquals(expected, outputStreamCaptor.toString().trim());
  82.     }
  83.  
  84.     @ParameterizedTest
  85.     @ValueSource(ints = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 20})
  86.     void printNameOfMonthCorrespondingToSpecifiedDate(int number) {
  87.         String[] months = new String[]{
  88.                 null,
  89.                 "January",
  90.                 "February",
  91.                 "March",
  92.                 "April",
  93.                 "May",
  94.                 "June",
  95.                 "July",
  96.                 "August",
  97.                 "September",
  98.                 "October",
  99.                 "November",
  100.                 "December",
  101.                 "Wrong number. Please enter the date corresponding to the month of the year."
  102.         };
  103.  
  104.         if (number > months.length || number < 1) {
  105.             number = 13;
  106.         }
  107.  
  108.         provideInput(String.valueOf(number));
  109.         mainFundamentals.printNameOfMonthCorrespondingToSpecifiedDate();
  110.         assertEquals(months[number], outputStreamCaptor.toString().substring(outputStreamCaptor.toString()
  111.                 .indexOf(System.lineSeparator())).trim());
  112.     }
  113. }
Advertisement
Add Comment
Please, Sign In to add comment