com.github.mkolisnyk.cucumber.reporting.CucumberResultsCommon Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of cucumber-reports Show documentation
Show all versions of cucumber-reports Show documentation
Library generating different Cucumber reports
package com.github.mkolisnyk.cucumber.reporting;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.lang.reflect.Array;
import com.cedarsoftware.util.io.JsonObject;
import com.cedarsoftware.util.io.JsonReader;
import com.github.mkolisnyk.cucumber.reporting.types.result.CucumberFeatureResult;
public class CucumberResultsCommon {
private String sourceFile;
/**
* @return the sourceFile
*/
public final String getSourceFile() {
return sourceFile;
}
/**
* @param sourceFileValue the sourceFile to set
*/
public final void setSourceFile(String sourceFileValue) {
this.sourceFile = sourceFileValue;
}
public CucumberFeatureResult[] aggregateResults(CucumberFeatureResult[] input, boolean collapse) {
for (int i = 0; i < input.length; i++) {
input[i].aggregateScenarioResults(collapse);
}
return input;
}
@SuppressWarnings("unchecked")
public CucumberFeatureResult[] readFileContent(boolean aggregate) throws Exception {
FileInputStream fis = null;
JsonReader jr = null;
File file = new File(this.getSourceFile());
if (!(file.exists() && file.isFile())) {
throw new FileNotFoundException();
}
fis = new FileInputStream(file);
jr = new JsonReader(fis, true);
JsonObject source = (JsonObject) jr.readObject();
Object[] objs = (Object[]) source.get("@items");
CucumberFeatureResult[] sources = new CucumberFeatureResult[objs.length];
for (int i = 0; i < objs.length; i++) {
sources[i] = new CucumberFeatureResult((JsonObject) objs[i]);
}
jr.close();
fis.close();
sources = aggregateResults(sources, aggregate);
return sources;
}
@SuppressWarnings("unchecked")
public T[] readFileContent(Class param) throws Exception {
FileInputStream fis = null;
JsonReader jr = null;
File file = new File(this.getSourceFile());
if (!(file.exists() && file.isFile())) {
throw new FileNotFoundException();
}
fis = new FileInputStream(file);
jr = new JsonReader(fis, true);
JsonObject source = (JsonObject) jr.readObject();
Object[] objs = (Object[]) source.get("@items");
T[] sources = (T[]) Array.newInstance(param, objs.length);
for (int i = 0; i < objs.length; i++) {
sources[i] = (T) param.getConstructors()[0].newInstance((JsonObject) objs[i]);
}
jr.close();
fis.close();
return sources;
}
}