net.masterthought.cucumber.reducers.ReportFeatureByIdMerger Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cucumber-reporting Show documentation
Show all versions of cucumber-reporting Show documentation
Provides pretty html reports for Cucumber. It works by generating html from the cucumber json file.
package net.masterthought.cucumber.reducers;
import net.masterthought.cucumber.json.Feature;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
final class ReportFeatureByIdMerger implements ReportFeatureMerger {
@Override
public List merge(List features) {
Map mergedFeatures = new HashMap<>();
for (Feature feature : features) {
Feature mergedFeature = mergedFeatures.get(feature.getId());
if (mergedFeature == null) {
mergedFeatures.put(feature.getId(), feature);
} else {
mergedFeatures.get(feature.getId()).addElements(feature.getElements());
}
}
return new ArrayList<>(mergedFeatures.values());
}
@Override
public boolean test(List reducingMethods) {
return reducingMethods != null && reducingMethods.contains(ReducingMethod.MERGE_FEATURES_BY_ID);
}
}