test_class.declarator: reportJsonPostProcessor
test_class.modifier: private
test_class.original_string: private ReportJsonPostProcessor reportJsonPostProcessor;
test_class.type: ReportJsonPostProcessor
test_class.var_name: reportJsonPostProcessor
test_class.file: plugin-code/src/test/java/com/trivago/cluecumber/json/processors/ReportJsonPostProcessorTest.java
test_class.identifier: ReportJsonPostProcessorTest
test_case.body: @Test
      public void postDeserializeTest() {
          Report report = new Report();
  
          List<Element> elements = new ArrayList<>();
  
          Element backgroundElement = new Element();
          List<Step> backgroundSteps = new ArrayList<>();
  
          Step backgroundStep1 = new Step();
          backgroundStep1.setName("background step 1");
          backgroundSteps.add(backgroundStep1);
  
          Step backgroundStep2 = new Step();
          backgroundStep2.setName("background step 2");
          backgroundSteps.add(backgroundStep2);
  
          backgroundElement.setSteps(backgroundSteps);
          backgroundElement.setType("background");
          elements.add(backgroundElement);
  
          Element element = new Element();
          List<Tag> scenarioTags = new ArrayList<>();
          Tag tag = new Tag();
          tag.setName("@tag");
          scenarioTags.add(tag);
          element.setTags(scenarioTags);
          List<Step> steps = new ArrayList<>();
          Step step = new Step();
          step.setName("element step 1");
          steps.add(step);
          Step step2 = new Step();
          step2.setName("element step 2");
          steps.add(step2);
          element.setSteps(steps);
          elements.add(element);
  
          List<Tag> featureTags = new ArrayList<>();
          Tag featureTag = new Tag();
          tag.setName("@feature");
          featureTags.add(featureTag);
          report.setTags(featureTags);
          report.setElements(elements);
  
          assertThat(report.getElements().size(), is(2));
          assertThat(report.getElements().get(1).getTags().size(), is(1));
          reportJsonPostProcessor.postDeserialize(report, null, null);
          assertThat(report.getElements().size(), is(1));
          Element firstElement = report.getElements().get(0);
          assertThat(firstElement.getTags().size(), is(2));
          List<Step> firstElementSteps = firstElement.getSteps();
          assertThat(firstElementSteps.size(), is(4));
          assertThat(firstElementSteps.get(0).getName(), is("background step 1"));
          assertThat(firstElementSteps.get(1).getName(), is("background step 2"));
          assertThat(firstElementSteps.get(2).getName(), is("element step 1"));
          assertThat(firstElementSteps.get(3).getName(), is("element step 2"));
      }
test_case.class_method_signature: ReportJsonPostProcessorTest.postDeserializeTest()
test_case.full_signature: @Test public void postDeserializeTest()
test_case.identifier: postDeserializeTest
test_case.invocations: setName add setName add setSteps setType add setName add setTags setName add setName add setSteps add setName add setTags setElements assertThat size getElements is assertThat size getTags get getElements is postDeserialize assertThat size getElements is get getElements assertThat size getTags is getSteps assertThat size is assertThat getName get is assertThat getName get is assertThat getName get is assertThat getName get is
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void postDeserializeTest()
focal_class.declarator: featureUris
focal_class.modifier: private final
focal_class.original_string: private final List<String> featureUris;
focal_class.type: List<String>
focal_class.var_name: featureUris
focal_class.file: plugin-code/src/main/java/com/trivago/cluecumber/json/processors/ReportJsonPostProcessor.java
focal_class.identifier: ReportJsonPostProcessor
focal_class.interfaces: implements PostProcessor<Report>
focal_class.class_method_signature: ReportJsonPostProcessor.ReportJsonPostProcessor()
focal_class.full_signature: @Inject public  ReportJsonPostProcessor()
focal_class.identifier: ReportJsonPostProcessor
focal_class.modifiers: @Inject public
focal_class.parameters: ()
focal_class.signature:  ReportJsonPostProcessor()
focal_class.class_method_signature: ReportJsonPostProcessor.postDeserialize(final Report report, final JsonElement jsonElement, final Gson gson)
focal_class.full_signature: @Override public void postDeserialize(final Report report, final JsonElement jsonElement, final Gson gson)
focal_class.identifier: postDeserialize
focal_class.modifiers: @Override public
focal_class.parameters: (final Report report, final JsonElement jsonElement, final Gson gson)
focal_class.return: void
focal_class.signature: void postDeserialize(final Report report, final JsonElement jsonElement, final Gson gson)
focal_class.class_method_signature: ReportJsonPostProcessor.addFeatureInformationToScenarios(final Report report)
focal_class.full_signature: private void addFeatureInformationToScenarios(final Report report)
focal_class.identifier: addFeatureInformationToScenarios
focal_class.modifiers: private
focal_class.parameters: (final Report report)
focal_class.return: void
focal_class.signature: void addFeatureInformationToScenarios(final Report report)
focal_class.class_method_signature: ReportJsonPostProcessor.mergeBackgroundScenarios(final Report report)
focal_class.full_signature: private void mergeBackgroundScenarios(final Report report)
focal_class.identifier: mergeBackgroundScenarios
focal_class.modifiers: private
focal_class.parameters: (final Report report)
focal_class.return: void
focal_class.signature: void mergeBackgroundScenarios(final Report report)
focal_class.class_method_signature: ReportJsonPostProcessor.addFeatureIndex(final Report report)
focal_class.full_signature: private void addFeatureIndex(final Report report)
focal_class.identifier: addFeatureIndex
focal_class.modifiers: private
focal_class.parameters: (final Report report)
focal_class.return: void
focal_class.signature: void addFeatureIndex(final Report report)
focal_class.class_method_signature: ReportJsonPostProcessor.postSerialize(final JsonElement jsonElement, final Report report, final Gson gson)
focal_class.full_signature: @Override public void postSerialize(final JsonElement jsonElement, final Report report, final Gson gson)
focal_class.identifier: postSerialize
focal_class.modifiers: @Override public
focal_class.parameters: (final JsonElement jsonElement, final Report report, final Gson gson)
focal_class.return: void
focal_class.signature: void postSerialize(final JsonElement jsonElement, final Report report, final Gson gson)
focal_method.body: @Override
      public void postDeserialize(final Report report, final JsonElement jsonElement, final Gson gson) {
          addFeatureIndex(report);
          addFeatureInformationToScenarios(report);
          mergeBackgroundScenarios(report);
      }
focal_method.class_method_signature: ReportJsonPostProcessor.postDeserialize(final Report report, final JsonElement jsonElement, final Gson gson)
focal_method.full_signature: @Override public void postDeserialize(final Report report, final JsonElement jsonElement, final Gson gson)
focal_method.identifier: postDeserialize
focal_method.invocations: addFeatureIndex addFeatureInformationToScenarios mergeBackgroundScenarios
focal_method.modifiers: @Override public
focal_method.parameters: (final Report report, final JsonElement jsonElement, final Gson gson)
focal_method.return: void
focal_method.signature: void postDeserialize(final Report report, final JsonElement jsonElement, final Gson gson)