Advertisement
JeffGrigg

Final Solution

Feb 9th, 2024 (edited)
831
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5 27.54 KB | Software | 0 0
  1. import junit.framework.TestCase;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6. import java.util.stream.Collectors;
  7.  
  8. public class NBottlesOfBeerOnTheWallTest extends TestCase {
  9.  
  10.     private static final int DEFAULT_NUMBER_OF_BOTTLES_OF_BEER = 99;
  11.  
  12.     private final int _originalNumberOfBottlesOfBeer;
  13.     private int _numberOfBottlesOfBeer;
  14.     private final List<String> _lines = new ArrayList<>();
  15.  
  16.     public NBottlesOfBeerOnTheWallTest(final int numberOfBottlesOfBeer) {
  17.         _originalNumberOfBottlesOfBeer = (numberOfBottlesOfBeer > 0) ? numberOfBottlesOfBeer : DEFAULT_NUMBER_OF_BOTTLES_OF_BEER;
  18.         _numberOfBottlesOfBeer = numberOfBottlesOfBeer;
  19.     }
  20.  
  21.     public String[] getLyrics() {
  22.         if (_lines.isEmpty()) {
  23.             while (true) {
  24.                 addLineSayingHowManyBottlesOfBeerAreOnTheWall();
  25.                 if (_numberOfBottlesOfBeer > 0) {
  26.                     describeRemovingOneBottleFromTheWall();
  27.                     _lines.add("");
  28.                 } else {
  29.                     describeRestockingTheBeerWall();
  30.                     break;
  31.                 }
  32.             }
  33.         }
  34.         return _lines.toArray(new String[_lines.size()]);
  35.     }
  36.  
  37.     private void addLineSayingHowManyBottlesOfBeerAreOnTheWall() {
  38.         _lines.add(bottlesOfBeerOnTheWallText(true) + ", " + bottlesOfBeerText() + ".");
  39.     }
  40.  
  41.     private void describeRemovingOneBottleFromTheWall() {
  42.         --_numberOfBottlesOfBeer;
  43.         _lines.add("Take one down and pass it around, " + bottlesOfBeerOnTheWallText() + ".");
  44.     }
  45.  
  46.     private void describeRestockingTheBeerWall() {
  47.         _numberOfBottlesOfBeer = _originalNumberOfBottlesOfBeer;
  48.         _lines.add("Go to the store and buy some more, " + bottlesOfBeerOnTheWallText() + ".");
  49.     }
  50.  
  51.     private String bottlesOfBeerOnTheWallText(final boolean... isStartOfSentence) {
  52.         return bottlesOfBeerText(isStartOfSentence) + " on the wall";
  53.     }
  54.  
  55.     private String bottlesOfBeerText(final boolean... isStartOfSentence) {
  56.  
  57.         switch (_numberOfBottlesOfBeer) {
  58.  
  59.             case 0:
  60.                 if (isStartOfSentence.length > 0 && isStartOfSentence[0]) {
  61.                     return "No more bottles of beer";
  62.                 } else {
  63.                     return "no more bottles of beer";
  64.                 }
  65.  
  66.             case 1:
  67.                 return "1 bottle of beer";
  68.  
  69.             default:
  70.                 return "" + _numberOfBottlesOfBeer + " bottles of beer";
  71.         }
  72.     }
  73.  
  74.     /**
  75.      * JUnit test constructor.
  76.      */
  77.     public NBottlesOfBeerOnTheWallTest() {
  78.         _originalNumberOfBottlesOfBeer = -1;
  79.     }
  80.  
  81.     public void testZeroBottlesOfBeer() {
  82.         assertEqualsArrayValues(new String[]{
  83.                         "No more bottles of beer on the wall, no more bottles of beer.",
  84.                         "Go to the store and buy some more, 99 bottles of beer on the wall."},
  85.                 new NBottlesOfBeerOnTheWallTest(0).getLyrics());
  86.     }
  87.  
  88.     public void testOneBottleOfBeer() {
  89.         assertEqualsArrayValues(new String[]{
  90.                         "1 bottle of beer on the wall, 1 bottle of beer.",
  91.                         "Take one down and pass it around, no more bottles of beer on the wall.",
  92.                         "",
  93.                         "No more bottles of beer on the wall, no more bottles of beer.",
  94.                         "Go to the store and buy some more, 1 bottle of beer on the wall."
  95.                 },
  96.                 new NBottlesOfBeerOnTheWallTest(1).getLyrics());
  97.     }
  98.  
  99.     public void testTwoBottlesOfBeer() {
  100.         assertEqualsArrayValues(new String[]{
  101.                         "2 bottles of beer on the wall, 2 bottles of beer.",
  102.                         "Take one down and pass it around, 1 bottle of beer on the wall.",
  103.                         "",
  104.                         "1 bottle of beer on the wall, 1 bottle of beer.",
  105.                         "Take one down and pass it around, no more bottles of beer on the wall.",
  106.                         "",
  107.                         "No more bottles of beer on the wall, no more bottles of beer.",
  108.                         "Go to the store and buy some more, 2 bottles of beer on the wall."
  109.                 },
  110.                 new NBottlesOfBeerOnTheWallTest(2).getLyrics());
  111.     }
  112.  
  113.     public void testSixBottlesOfBeer() {
  114.         assertEqualsArrayValues(new String[]{
  115.                         "6 bottles of beer on the wall, 6 bottles of beer.",
  116.                         "Take one down and pass it around, 5 bottles of beer on the wall.",
  117.                         "",
  118.                         "5 bottles of beer on the wall, 5 bottles of beer.",
  119.                         "Take one down and pass it around, 4 bottles of beer on the wall.",
  120.                         "",
  121.                         "4 bottles of beer on the wall, 4 bottles of beer.",
  122.                         "Take one down and pass it around, 3 bottles of beer on the wall.",
  123.                         "",
  124.                         "3 bottles of beer on the wall, 3 bottles of beer.",
  125.                         "Take one down and pass it around, 2 bottles of beer on the wall.",
  126.                         "",
  127.                         "2 bottles of beer on the wall, 2 bottles of beer.",
  128.                         "Take one down and pass it around, 1 bottle of beer on the wall.",
  129.                         "",
  130.                         "1 bottle of beer on the wall, 1 bottle of beer.",
  131.                         "Take one down and pass it around, no more bottles of beer on the wall.",
  132.                         "",
  133.                         "No more bottles of beer on the wall, no more bottles of beer.",
  134.                         "Go to the store and buy some more, 6 bottles of beer on the wall."
  135.                 },
  136.                 new NBottlesOfBeerOnTheWallTest(6).getLyrics());
  137.     }
  138.  
  139.     public void testNinetyNineBottlesOfBeer() {
  140.         assertEqualsArrayValues(new String[]{
  141.                         "99 bottles of beer on the wall, 99 bottles of beer.",
  142.                         "Take one down and pass it around, 98 bottles of beer on the wall.",
  143.                         "",
  144.                         "98 bottles of beer on the wall, 98 bottles of beer.",
  145.                         "Take one down and pass it around, 97 bottles of beer on the wall.",
  146.                         "",
  147.                         "97 bottles of beer on the wall, 97 bottles of beer.",
  148.                         "Take one down and pass it around, 96 bottles of beer on the wall.",
  149.                         "",
  150.                         "96 bottles of beer on the wall, 96 bottles of beer.",
  151.                         "Take one down and pass it around, 95 bottles of beer on the wall.",
  152.                         "",
  153.                         "95 bottles of beer on the wall, 95 bottles of beer.",
  154.                         "Take one down and pass it around, 94 bottles of beer on the wall.",
  155.                         "",
  156.                         "94 bottles of beer on the wall, 94 bottles of beer.",
  157.                         "Take one down and pass it around, 93 bottles of beer on the wall.",
  158.                         "",
  159.                         "93 bottles of beer on the wall, 93 bottles of beer.",
  160.                         "Take one down and pass it around, 92 bottles of beer on the wall.",
  161.                         "",
  162.                         "92 bottles of beer on the wall, 92 bottles of beer.",
  163.                         "Take one down and pass it around, 91 bottles of beer on the wall.",
  164.                         "",
  165.                         "91 bottles of beer on the wall, 91 bottles of beer.",
  166.                         "Take one down and pass it around, 90 bottles of beer on the wall.",
  167.                         "",
  168.                         "90 bottles of beer on the wall, 90 bottles of beer.",
  169.                         "Take one down and pass it around, 89 bottles of beer on the wall.",
  170.                         "",
  171.                         "89 bottles of beer on the wall, 89 bottles of beer.",
  172.                         "Take one down and pass it around, 88 bottles of beer on the wall.",
  173.                         "",
  174.                         "88 bottles of beer on the wall, 88 bottles of beer.",
  175.                         "Take one down and pass it around, 87 bottles of beer on the wall.",
  176.                         "",
  177.                         "87 bottles of beer on the wall, 87 bottles of beer.",
  178.                         "Take one down and pass it around, 86 bottles of beer on the wall.",
  179.                         "",
  180.                         "86 bottles of beer on the wall, 86 bottles of beer.",
  181.                         "Take one down and pass it around, 85 bottles of beer on the wall.",
  182.                         "",
  183.                         "85 bottles of beer on the wall, 85 bottles of beer.",
  184.                         "Take one down and pass it around, 84 bottles of beer on the wall.",
  185.                         "",
  186.                         "84 bottles of beer on the wall, 84 bottles of beer.",
  187.                         "Take one down and pass it around, 83 bottles of beer on the wall.",
  188.                         "",
  189.                         "83 bottles of beer on the wall, 83 bottles of beer.",
  190.                         "Take one down and pass it around, 82 bottles of beer on the wall.",
  191.                         "",
  192.                         "82 bottles of beer on the wall, 82 bottles of beer.",
  193.                         "Take one down and pass it around, 81 bottles of beer on the wall.",
  194.                         "",
  195.                         "81 bottles of beer on the wall, 81 bottles of beer.",
  196.                         "Take one down and pass it around, 80 bottles of beer on the wall.",
  197.                         "",
  198.                         "80 bottles of beer on the wall, 80 bottles of beer.",
  199.                         "Take one down and pass it around, 79 bottles of beer on the wall.",
  200.                         "",
  201.                         "79 bottles of beer on the wall, 79 bottles of beer.",
  202.                         "Take one down and pass it around, 78 bottles of beer on the wall.",
  203.                         "",
  204.                         "78 bottles of beer on the wall, 78 bottles of beer.",
  205.                         "Take one down and pass it around, 77 bottles of beer on the wall.",
  206.                         "",
  207.                         "77 bottles of beer on the wall, 77 bottles of beer.",
  208.                         "Take one down and pass it around, 76 bottles of beer on the wall.",
  209.                         "",
  210.                         "76 bottles of beer on the wall, 76 bottles of beer.",
  211.                         "Take one down and pass it around, 75 bottles of beer on the wall.",
  212.                         "",
  213.                         "75 bottles of beer on the wall, 75 bottles of beer.",
  214.                         "Take one down and pass it around, 74 bottles of beer on the wall.",
  215.                         "",
  216.                         "74 bottles of beer on the wall, 74 bottles of beer.",
  217.                         "Take one down and pass it around, 73 bottles of beer on the wall.",
  218.                         "",
  219.                         "73 bottles of beer on the wall, 73 bottles of beer.",
  220.                         "Take one down and pass it around, 72 bottles of beer on the wall.",
  221.                         "",
  222.                         "72 bottles of beer on the wall, 72 bottles of beer.",
  223.                         "Take one down and pass it around, 71 bottles of beer on the wall.",
  224.                         "",
  225.                         "71 bottles of beer on the wall, 71 bottles of beer.",
  226.                         "Take one down and pass it around, 70 bottles of beer on the wall.",
  227.                         "",
  228.                         "70 bottles of beer on the wall, 70 bottles of beer.",
  229.                         "Take one down and pass it around, 69 bottles of beer on the wall.",
  230.                         "",
  231.                         "69 bottles of beer on the wall, 69 bottles of beer.",
  232.                         "Take one down and pass it around, 68 bottles of beer on the wall.",
  233.                         "",
  234.                         "68 bottles of beer on the wall, 68 bottles of beer.",
  235.                         "Take one down and pass it around, 67 bottles of beer on the wall.",
  236.                         "",
  237.                         "67 bottles of beer on the wall, 67 bottles of beer.",
  238.                         "Take one down and pass it around, 66 bottles of beer on the wall.",
  239.                         "",
  240.                         "66 bottles of beer on the wall, 66 bottles of beer.",
  241.                         "Take one down and pass it around, 65 bottles of beer on the wall.",
  242.                         "",
  243.                         "65 bottles of beer on the wall, 65 bottles of beer.",
  244.                         "Take one down and pass it around, 64 bottles of beer on the wall.",
  245.                         "",
  246.                         "64 bottles of beer on the wall, 64 bottles of beer.",
  247.                         "Take one down and pass it around, 63 bottles of beer on the wall.",
  248.                         "",
  249.                         "63 bottles of beer on the wall, 63 bottles of beer.",
  250.                         "Take one down and pass it around, 62 bottles of beer on the wall.",
  251.                         "",
  252.                         "62 bottles of beer on the wall, 62 bottles of beer.",
  253.                         "Take one down and pass it around, 61 bottles of beer on the wall.",
  254.                         "",
  255.                         "61 bottles of beer on the wall, 61 bottles of beer.",
  256.                         "Take one down and pass it around, 60 bottles of beer on the wall.",
  257.                         "",
  258.                         "60 bottles of beer on the wall, 60 bottles of beer.",
  259.                         "Take one down and pass it around, 59 bottles of beer on the wall.",
  260.                         "",
  261.                         "59 bottles of beer on the wall, 59 bottles of beer.",
  262.                         "Take one down and pass it around, 58 bottles of beer on the wall.",
  263.                         "",
  264.                         "58 bottles of beer on the wall, 58 bottles of beer.",
  265.                         "Take one down and pass it around, 57 bottles of beer on the wall.",
  266.                         "",
  267.                         "57 bottles of beer on the wall, 57 bottles of beer.",
  268.                         "Take one down and pass it around, 56 bottles of beer on the wall.",
  269.                         "",
  270.                         "56 bottles of beer on the wall, 56 bottles of beer.",
  271.                         "Take one down and pass it around, 55 bottles of beer on the wall.",
  272.                         "",
  273.                         "55 bottles of beer on the wall, 55 bottles of beer.",
  274.                         "Take one down and pass it around, 54 bottles of beer on the wall.",
  275.                         "",
  276.                         "54 bottles of beer on the wall, 54 bottles of beer.",
  277.                         "Take one down and pass it around, 53 bottles of beer on the wall.",
  278.                         "",
  279.                         "53 bottles of beer on the wall, 53 bottles of beer.",
  280.                         "Take one down and pass it around, 52 bottles of beer on the wall.",
  281.                         "",
  282.                         "52 bottles of beer on the wall, 52 bottles of beer.",
  283.                         "Take one down and pass it around, 51 bottles of beer on the wall.",
  284.                         "",
  285.                         "51 bottles of beer on the wall, 51 bottles of beer.",
  286.                         "Take one down and pass it around, 50 bottles of beer on the wall.",
  287.                         "",
  288.                         "50 bottles of beer on the wall, 50 bottles of beer.",
  289.                         "Take one down and pass it around, 49 bottles of beer on the wall.",
  290.                         "",
  291.                         "49 bottles of beer on the wall, 49 bottles of beer.",
  292.                         "Take one down and pass it around, 48 bottles of beer on the wall.",
  293.                         "",
  294.                         "48 bottles of beer on the wall, 48 bottles of beer.",
  295.                         "Take one down and pass it around, 47 bottles of beer on the wall.",
  296.                         "",
  297.                         "47 bottles of beer on the wall, 47 bottles of beer.",
  298.                         "Take one down and pass it around, 46 bottles of beer on the wall.",
  299.                         "",
  300.                         "46 bottles of beer on the wall, 46 bottles of beer.",
  301.                         "Take one down and pass it around, 45 bottles of beer on the wall.",
  302.                         "",
  303.                         "45 bottles of beer on the wall, 45 bottles of beer.",
  304.                         "Take one down and pass it around, 44 bottles of beer on the wall.",
  305.                         "",
  306.                         "44 bottles of beer on the wall, 44 bottles of beer.",
  307.                         "Take one down and pass it around, 43 bottles of beer on the wall.",
  308.                         "",
  309.                         "43 bottles of beer on the wall, 43 bottles of beer.",
  310.                         "Take one down and pass it around, 42 bottles of beer on the wall.",
  311.                         "",
  312.                         "42 bottles of beer on the wall, 42 bottles of beer.",
  313.                         "Take one down and pass it around, 41 bottles of beer on the wall.",
  314.                         "",
  315.                         "41 bottles of beer on the wall, 41 bottles of beer.",
  316.                         "Take one down and pass it around, 40 bottles of beer on the wall.",
  317.                         "",
  318.                         "40 bottles of beer on the wall, 40 bottles of beer.",
  319.                         "Take one down and pass it around, 39 bottles of beer on the wall.",
  320.                         "",
  321.                         "39 bottles of beer on the wall, 39 bottles of beer.",
  322.                         "Take one down and pass it around, 38 bottles of beer on the wall.",
  323.                         "",
  324.                         "38 bottles of beer on the wall, 38 bottles of beer.",
  325.                         "Take one down and pass it around, 37 bottles of beer on the wall.",
  326.                         "",
  327.                         "37 bottles of beer on the wall, 37 bottles of beer.",
  328.                         "Take one down and pass it around, 36 bottles of beer on the wall.",
  329.                         "",
  330.                         "36 bottles of beer on the wall, 36 bottles of beer.",
  331.                         "Take one down and pass it around, 35 bottles of beer on the wall.",
  332.                         "",
  333.                         "35 bottles of beer on the wall, 35 bottles of beer.",
  334.                         "Take one down and pass it around, 34 bottles of beer on the wall.",
  335.                         "",
  336.                         "34 bottles of beer on the wall, 34 bottles of beer.",
  337.                         "Take one down and pass it around, 33 bottles of beer on the wall.",
  338.                         "",
  339.                         "33 bottles of beer on the wall, 33 bottles of beer.",
  340.                         "Take one down and pass it around, 32 bottles of beer on the wall.",
  341.                         "",
  342.                         "32 bottles of beer on the wall, 32 bottles of beer.",
  343.                         "Take one down and pass it around, 31 bottles of beer on the wall.",
  344.                         "",
  345.                         "31 bottles of beer on the wall, 31 bottles of beer.",
  346.                         "Take one down and pass it around, 30 bottles of beer on the wall.",
  347.                         "",
  348.                         "30 bottles of beer on the wall, 30 bottles of beer.",
  349.                         "Take one down and pass it around, 29 bottles of beer on the wall.",
  350.                         "",
  351.                         "29 bottles of beer on the wall, 29 bottles of beer.",
  352.                         "Take one down and pass it around, 28 bottles of beer on the wall.",
  353.                         "",
  354.                         "28 bottles of beer on the wall, 28 bottles of beer.",
  355.                         "Take one down and pass it around, 27 bottles of beer on the wall.",
  356.                         "",
  357.                         "27 bottles of beer on the wall, 27 bottles of beer.",
  358.                         "Take one down and pass it around, 26 bottles of beer on the wall.",
  359.                         "",
  360.                         "26 bottles of beer on the wall, 26 bottles of beer.",
  361.                         "Take one down and pass it around, 25 bottles of beer on the wall.",
  362.                         "",
  363.                         "25 bottles of beer on the wall, 25 bottles of beer.",
  364.                         "Take one down and pass it around, 24 bottles of beer on the wall.",
  365.                         "",
  366.                         "24 bottles of beer on the wall, 24 bottles of beer.",
  367.                         "Take one down and pass it around, 23 bottles of beer on the wall.",
  368.                         "",
  369.                         "23 bottles of beer on the wall, 23 bottles of beer.",
  370.                         "Take one down and pass it around, 22 bottles of beer on the wall.",
  371.                         "",
  372.                         "22 bottles of beer on the wall, 22 bottles of beer.",
  373.                         "Take one down and pass it around, 21 bottles of beer on the wall.",
  374.                         "",
  375.                         "21 bottles of beer on the wall, 21 bottles of beer.",
  376.                         "Take one down and pass it around, 20 bottles of beer on the wall.",
  377.                         "",
  378.                         "20 bottles of beer on the wall, 20 bottles of beer.",
  379.                         "Take one down and pass it around, 19 bottles of beer on the wall.",
  380.                         "",
  381.                         "19 bottles of beer on the wall, 19 bottles of beer.",
  382.                         "Take one down and pass it around, 18 bottles of beer on the wall.",
  383.                         "",
  384.                         "18 bottles of beer on the wall, 18 bottles of beer.",
  385.                         "Take one down and pass it around, 17 bottles of beer on the wall.",
  386.                         "",
  387.                         "17 bottles of beer on the wall, 17 bottles of beer.",
  388.                         "Take one down and pass it around, 16 bottles of beer on the wall.",
  389.                         "",
  390.                         "16 bottles of beer on the wall, 16 bottles of beer.",
  391.                         "Take one down and pass it around, 15 bottles of beer on the wall.",
  392.                         "",
  393.                         "15 bottles of beer on the wall, 15 bottles of beer.",
  394.                         "Take one down and pass it around, 14 bottles of beer on the wall.",
  395.                         "",
  396.                         "14 bottles of beer on the wall, 14 bottles of beer.",
  397.                         "Take one down and pass it around, 13 bottles of beer on the wall.",
  398.                         "",
  399.                         "13 bottles of beer on the wall, 13 bottles of beer.",
  400.                         "Take one down and pass it around, 12 bottles of beer on the wall.",
  401.                         "",
  402.                         "12 bottles of beer on the wall, 12 bottles of beer.",
  403.                         "Take one down and pass it around, 11 bottles of beer on the wall.",
  404.                         "",
  405.                         "11 bottles of beer on the wall, 11 bottles of beer.",
  406.                         "Take one down and pass it around, 10 bottles of beer on the wall.",
  407.                         "",
  408.                         "10 bottles of beer on the wall, 10 bottles of beer.",
  409.                         "Take one down and pass it around, 9 bottles of beer on the wall.",
  410.                         "",
  411.                         "9 bottles of beer on the wall, 9 bottles of beer.",
  412.                         "Take one down and pass it around, 8 bottles of beer on the wall.",
  413.                         "",
  414.                         "8 bottles of beer on the wall, 8 bottles of beer.",
  415.                         "Take one down and pass it around, 7 bottles of beer on the wall.",
  416.                         "",
  417.                         "7 bottles of beer on the wall, 7 bottles of beer.",
  418.                         "Take one down and pass it around, 6 bottles of beer on the wall.",
  419.                         "",
  420.                         "6 bottles of beer on the wall, 6 bottles of beer.",
  421.                         "Take one down and pass it around, 5 bottles of beer on the wall.",
  422.                         "",
  423.                         "5 bottles of beer on the wall, 5 bottles of beer.",
  424.                         "Take one down and pass it around, 4 bottles of beer on the wall.",
  425.                         "",
  426.                         "4 bottles of beer on the wall, 4 bottles of beer.",
  427.                         "Take one down and pass it around, 3 bottles of beer on the wall.",
  428.                         "",
  429.                         "3 bottles of beer on the wall, 3 bottles of beer.",
  430.                         "Take one down and pass it around, 2 bottles of beer on the wall.",
  431.                         "",
  432.                         "2 bottles of beer on the wall, 2 bottles of beer.",
  433.                         "Take one down and pass it around, 1 bottle of beer on the wall.",
  434.                         "",
  435.                         "1 bottle of beer on the wall, 1 bottle of beer.",
  436.                         "Take one down and pass it around, no more bottles of beer on the wall.",
  437.                         "",
  438.                         "No more bottles of beer on the wall, no more bottles of beer.",
  439.                         "Go to the store and buy some more, 99 bottles of beer on the wall."},
  440.                 new NBottlesOfBeerOnTheWallTest(99).getLyrics());
  441.     }
  442.  
  443.     public void testThreeBottlesOfBeerFetchedTwice() {
  444.         final var songGeneratorObject = new NBottlesOfBeerOnTheWallTest(3);
  445.         final var expectedResultLines = new String[]{
  446.                 "3 bottles of beer on the wall, 3 bottles of beer.",
  447.                 "Take one down and pass it around, 2 bottles of beer on the wall.",
  448.                 "",
  449.                 "2 bottles of beer on the wall, 2 bottles of beer.",
  450.                 "Take one down and pass it around, 1 bottle of beer on the wall.",
  451.                 "",
  452.                 "1 bottle of beer on the wall, 1 bottle of beer.",
  453.                 "Take one down and pass it around, no more bottles of beer on the wall.",
  454.                 "",
  455.                 "No more bottles of beer on the wall, no more bottles of beer.",
  456.                 "Go to the store and buy some more, 3 bottles of beer on the wall."
  457.         };
  458.         assertEqualsArrayValues("First call to '.getLyrics()' method;", expectedResultLines, songGeneratorObject.getLyrics());
  459.         assertEqualsArrayValues("Second call to '.getLyrics()' method;", expectedResultLines, songGeneratorObject.getLyrics());
  460.     }
  461.  
  462.     private static void assertEqualsArrayValues(final String[] expectedLines, final String[] actualLines) {
  463.         assertEqualsArrayValues(null, expectedLines, actualLines);
  464.     }
  465.  
  466.     private static void assertEqualsArrayValues(final String message, final String[] expectedLines, final String[] actualLines) {
  467.         final var expectedAsString = Arrays.stream(expectedLines).collect(Collectors.joining(System.lineSeparator()));
  468.         final var actualAsString = Arrays.stream(actualLines).collect(Collectors.joining(System.lineSeparator()));
  469.         assertEquals(message, expectedAsString, actualAsString);
  470.     }
  471.  
  472. }
  473.  
Tags: 99 Bottles
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement