Guest User

Untitled

a guest
Feb 7th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 14.22 KB | None | 0 0
  1. package pl.put.poznan.sqc.scenario;
  2.  
  3. import io.vavr.collection.List;
  4. import org.junit.Test;
  5. import pl.put.poznan.sqc.scenario.api.ScenarioDTO;
  6. import pl.put.poznan.sqc.scenario.api.StepDTO;
  7. import pl.put.poznan.sqc.scenario.api.output.FlatStep;
  8.  
  9. import static org.junit.Assert.assertEquals;
  10. import static org.junit.Assert.assertTrue;
  11.  
  12. public class ScenarioTest {
  13.  
  14.     @Test
  15.     public void shouldReturnZeroForEmptyScenario() {
  16.         ScenarioDTO scenarioDTO = new ScenarioBuilder().build();
  17.  
  18.         int stepsAmount = Scenario
  19.                 .fromDTO(scenarioDTO)
  20.                 .getStepsAmount();
  21.  
  22.         assertEquals(0, stepsAmount);
  23.     }
  24.  
  25.     @Test
  26.     public void shouldCountAllSubSteps() {
  27.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  28.                 .addSteps(
  29.                         step("",
  30.                                 step(""),
  31.                                 step(""),
  32.                                 step("",
  33.                                         step(""))),
  34.                         step("")
  35.                 )
  36.                 .build();
  37.  
  38.         int stepsAmount = Scenario
  39.                 .fromDTO(scenarioDTO)
  40.                 .getStepsAmount();
  41.  
  42.         assertEquals(6, stepsAmount);
  43.     }
  44.  
  45.     @Test
  46.     public void shouldCountAllSteps() {
  47.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  48.                 .addSteps(
  49.                         step(""),
  50.                         step(""),
  51.                         step(""),
  52.                         step(""),
  53.                         step("")
  54.                 )
  55.                 .build();
  56.  
  57.         int stepsAmount = Scenario
  58.                 .fromDTO(scenarioDTO)
  59.                 .getStepsAmount();
  60.  
  61.         assertEquals(5, stepsAmount);
  62.     }
  63.  
  64.     @Test
  65.     public void shouldReturnEmptyListForScenarioWithAllStepsStartingWithActor() {
  66.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  67.                 .addActor("test")
  68.                 .addSystemActors("sysTest")
  69.                 .addSteps(
  70.                         step("test fo"),
  71.                         step("test not fo"),
  72.                         step("sysTest whololo"),
  73.                         step("test sleep"),
  74.                         step("sysTest uber")
  75.                 )
  76.                 .build();
  77.  
  78.         List<FlatStep> invalidSteps = Scenario
  79.                 .fromDTO(scenarioDTO)
  80.                 .getAllInvalidSteps();
  81.  
  82.         assertTrue(invalidSteps.isEmpty());
  83.     }
  84.  
  85.  
  86.     @Test
  87.     public void shouldReturnListWithInvalidSteps() {
  88.         List<StepDTO> invalidSteps = List.of(step("not"), step("hehehe"), step("kek"));
  89.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  90.                 .addActor("test")
  91.                 .addSystemActors("sysTest")
  92.                 .addSteps(
  93.                         invalidSteps,
  94.                         step("test not fo"),
  95.                         step("test sleep"),
  96.                         step("sysTest uber")
  97.                 )
  98.                 .build();
  99.  
  100.         List<FlatStep> listOfInvalid = Scenario
  101.                 .fromDTO(scenarioDTO)
  102.                 .getAllInvalidSteps();
  103.  
  104.         assertEquals(3, listOfInvalid.length());
  105.     }
  106.  
  107.     @Test
  108.     public void shouldReturnListWithInvalidStepsAndSubSteps() {
  109.         List<StepDTO> invalidSteps = List.of(step("not"), step("hehehe"), step("kek"));
  110.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  111.                 .addActor("test")
  112.                 .addSystemActors("sysTest")
  113.                 .addSteps(
  114.                         invalidSteps,
  115.                         step("test not fo"),
  116.                         step("test sleep"),
  117.                         step("sysTest uber",
  118.                                 invalidSteps
  119.                         )
  120.                 )
  121.                 .build();
  122.  
  123.         List<FlatStep> listOfInvalid = Scenario
  124.                 .fromDTO(scenarioDTO)
  125.                 .getAllInvalidSteps();
  126.  
  127.         assertEquals(6, listOfInvalid.length());
  128.     }
  129.  
  130.     @Test
  131.     public void shouldReturnScenarioWithCorrectNumberedSteps() {
  132.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  133.                 .withTitle("title")
  134.                 .addActor("actor")
  135.                 .addSystemActors("sysAct")
  136.                 .addSteps(
  137.                         step("step1",
  138.                                 step("step1-1",
  139.                                         step("step1-1-1"),
  140.                                         step("step1-1-2")
  141.                                 )
  142.                         ),
  143.                         step("step2")
  144.                 )
  145.                 .build();
  146.  
  147.         String scenarioAsText = Scenario
  148.                 .fromDTO(scenarioDTO)
  149.                 .asTextWithNumbers();
  150.  
  151.         String expectedScenario =
  152.                 "Tytuł: title\n" +
  153.                         "Aktorzy: actor\n" +
  154.                         "Aktor systemowy: sysAct\n" +
  155.                         "\n" +
  156.                         "1. step1\n" +
  157.                         "1.1. step1-1\n" +
  158.                         "1.1.1. step1-1-1\n" +
  159.                         "1.1.2. step1-1-2\n" +
  160.                         "2. step2\n";
  161.         assertEquals(expectedScenario, scenarioAsText);
  162.     }
  163.  
  164.     @Test
  165.     public void shouldReturnScenarioWithCorrectNumberedSteps2() {
  166.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  167.                 .withTitle("title")
  168.                 .addActor("actor")
  169.                 .addSystemActors("sysAct")
  170.                 .addSteps(
  171.                         step("test1"),
  172.                         step("test2",
  173.                                 step("test2.2",
  174.                                         step("test2.1.1")
  175.                                 )
  176.                         ),
  177.                         step("test3")
  178.                 )
  179.                 .build();
  180.  
  181.         String scenarioAsText = Scenario
  182.                 .fromDTO(scenarioDTO)
  183.                 .asTextWithNumbers();
  184.  
  185.         String expectedScenario =
  186.                 "Tytuł: title\n" +
  187.                         "Aktorzy: actor\n" +
  188.                         "Aktor systemowy: sysAct\n" +
  189.                         "\n" +
  190.                         "1. test1\n" +
  191.                         "2. test2\n" +
  192.                         "2.1. test2.2\n" +
  193.                         "2.1.1. test2.1.1\n" +
  194.                         "3. test3\n";
  195.         assertEquals(expectedScenario, scenarioAsText);
  196.     }
  197.  
  198.     @Test
  199.     public void shouldReturnFlatScenarioAsListOfSteps() {
  200.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  201.                 .withTitle("title")
  202.                 .addActor("actor")
  203.                 .addSystemActors("sysAct")
  204.                 .addSteps(
  205.                         step("step1"),
  206.                         step("step2"),
  207.                         step("step3")
  208.                 )
  209.                 .build();
  210.  
  211.         String scenarioAsText = Scenario
  212.                 .fromDTO(scenarioDTO)
  213.                 .asTextWithNumbers();
  214.  
  215.         String expectedScenario =
  216.                 "Tytuł: title\n" +
  217.                         "Aktorzy: actor\n" +
  218.                         "Aktor systemowy: sysAct\n" +
  219.                         "\n" +
  220.                         "1. step1\n" +
  221.                         "2. step2\n" +
  222.                         "3. step3\n";
  223.         assertEquals(expectedScenario, scenarioAsText);
  224.     }
  225.  
  226.     @Test
  227.     public void shouldReturnEmptyScenarioWithScenarioMetadataAsText() {
  228.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  229.                 .withTitle("title")
  230.                 .addActor("actor")
  231.                 .addSystemActors("sysAct")
  232.                 .build();
  233.  
  234.         String scenarioAsText = Scenario
  235.                 .fromDTO(scenarioDTO)
  236.                 .asTextWithNumbers();
  237.  
  238.         String expectedScenario =
  239.                 "Tytuł: title\n" +
  240.                         "Aktorzy: actor\n" +
  241.                         "Aktor systemowy: sysAct";
  242.         assertEquals(expectedScenario, scenarioAsText);
  243.     }
  244.  
  245.  
  246.     @Test
  247.     public void shouldReturnFlattedToTopLevelScenario() {
  248.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  249.                 .withTitle("title")
  250.                 .addActor("actor")
  251.                 .addSystemActors("sysAct")
  252.                 .addSteps(
  253.                         step("jakis",
  254.                                 step("zagniezdzony")
  255.                         ),
  256.                         step("kolejny")
  257.  
  258.                 )
  259.                 .build();
  260.  
  261.         ScenarioDTO flatted = Scenario
  262.                 .fromDTO(scenarioDTO)
  263.                 .flatScenario(1);
  264.  
  265.         assertEquals(2, flatted.getSteps().size());
  266.         assertEquals("jakis", flatted.getSteps().get(0).getDescription());
  267.         assertEquals("kolejny", flatted.getSteps().get(1).getDescription());
  268.         assertEquals(0, flatted.getSteps().get(0).getSubSteps().size());
  269.     }
  270.  
  271.     @Test
  272.     public void shouldReturnFlattedGivenLevelScenario() {
  273.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  274.                 .withTitle("title")
  275.                 .addActor("actor")
  276.                 .addSystemActors("sysAct")
  277.                 .addSteps(
  278.                         step("jakis",
  279.                                 step("zagniezdzony",
  280.                                         step("glebiej")
  281.                                 )
  282.                         ),
  283.                         step("kolejny")
  284.  
  285.                 )
  286.                 .build();
  287.  
  288.         ScenarioDTO flatted = Scenario
  289.                 .fromDTO(scenarioDTO)
  290.                 .flatScenario(2);
  291.  
  292.         assertEquals(2, flatted.getSteps().size());
  293.         assertEquals("jakis", flatted.getSteps().get(0).getDescription());
  294.         assertEquals("kolejny", flatted.getSteps().get(1).getDescription());
  295.         assertEquals(1, flatted.getSteps().get(0).getSubSteps().size());
  296.         assertEquals("zagniezdzony", flatted.getSteps().get(0).getSubSteps().get(0).getDescription());
  297.     }
  298.  
  299.     @Test
  300.     public void checkKeywordsInStepsNumberTestOne() {
  301.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  302.                 .withTitle("title")
  303.                 .addActor("actor")
  304.                 .addSystemActors("sysAct")
  305.                 .addSteps(
  306.                         step("IF",
  307.                                 step("FOR EACH",
  308.                                         step("glebiej, oh, aj")
  309.                                 )
  310.                         ),
  311.                         step("ELSE",
  312.                                 step("dusge"))
  313.  
  314.                 )
  315.                 .build();
  316.  
  317.         Integer keywords = Scenario.fromDTO(scenarioDTO)
  318.                                     .getKeywordsNumberInSteps();
  319.  
  320.         assertEquals(Integer.valueOf(3), keywords);
  321.     }
  322.  
  323.     @Test
  324.     public void checkKeywordsInStepsNumberTestTwo() {
  325.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  326.                 .withTitle("title")
  327.                 .addActor("actor")
  328.                 .addSystemActors("sysAct")
  329.                 .addSteps(
  330.                         step("IF",
  331.                                 step("FOR EACH",
  332.                                         step("glebiej, oh, aj")
  333.                                 )
  334.                         ),
  335.                         step("ELSE",
  336.                                 step("FOR EACH",
  337.                                         step("IF pupa",
  338.                                                 step("czajnik")),
  339.                                         step("ELSE",
  340.                                                 step("czapka"))
  341.                                 )
  342.                         )
  343.                 )
  344.                 .build();
  345.  
  346.         Integer keywords = Scenario.fromDTO(scenarioDTO)
  347.                 .getKeywordsNumberInSteps();
  348.  
  349.         assertEquals(Integer.valueOf(6), keywords);
  350.     }
  351.  
  352.     @Test
  353.     public void checkKeywordsInStepsNumberTestThree() {
  354.         ScenarioDTO scenarioDTO = new ScenarioBuilder()
  355.                 .withTitle("title")
  356.                 .addActor("actor")
  357.                 .addSystemActors("sysAct")
  358.                 .addSteps(
  359.                         step("IF",
  360.                                 step("FOREACH",
  361.                                         step("glebiej, oh, aj")
  362.                                 )
  363.                         ),
  364.                         step(" ELSE",
  365.                                 step("dusge"),
  366.                                 step(" FOREACH")
  367.                                 )
  368.  
  369.                 )
  370.                 .build();
  371.  
  372.         Integer keywords = Scenario.fromDTO(scenarioDTO)
  373.                 .getKeywordsNumberInSteps();
  374.  
  375.         assertEquals(Integer.valueOf(1), keywords);
  376.     }
  377.  
  378.     private StepDTO step(String description) {
  379.         return step(description, new StepDTO[0]);
  380.     }
  381.  
  382.     private StepDTO step(String description, StepDTO... steps) {
  383.         return new StepDTO(description, List.of(steps));
  384.     }
  385.  
  386.     private StepDTO step(String description, List<StepDTO> steps) {
  387.         return new StepDTO(description, steps);
  388.     }
  389.  
  390.  
  391.     private class ScenarioBuilder {
  392.         private String title = "";
  393.         private List<String> actors = List.empty();
  394.         private List<String> systemActors = List.empty();
  395.         private List<StepDTO> steps = List.empty();
  396.  
  397.         ScenarioBuilder withTitle(String title) {
  398.             this.title = title;
  399.             return this;
  400.         }
  401.  
  402.         ScenarioBuilder addActor(String actor) {
  403.             this.actors = actors.append(actor);
  404.             return this;
  405.         }
  406.  
  407.         ScenarioBuilder addSystemActors(String systemActor) {
  408.             this.systemActors = systemActors.append(systemActor);
  409.             return this;
  410.         }
  411.  
  412.         ScenarioBuilder addSteps(StepDTO... stepDTO) {
  413.             this.steps = steps.appendAll(List.of(stepDTO));
  414.             return this;
  415.         }
  416.  
  417.         ScenarioBuilder addSteps(List<StepDTO> stepsDTOList, StepDTO... stepDTO) {
  418.             this.steps = steps.appendAll(List.of(stepDTO)).appendAll(stepsDTOList);
  419.             return this;
  420.         }
  421.  
  422.         public ScenarioBuilder addSteps(List<StepDTO> stepsDTO) {
  423.             this.steps = steps.appendAll(stepsDTO);
  424.             return this;
  425.         }
  426.  
  427.         ScenarioDTO build() {
  428.             return new ScenarioDTO(title, actors, systemActors, steps);
  429.         }
  430.     }
  431.  
  432.  
  433. }
Add Comment
Please, Sign In to add comment