package jsystem.extensions.reporter;
import java.io.File;
import java.io.IOException;
import org.junit.Test;
import jsystem.framework.FrameworkOptions;
import jsystem.framework.JSystemProperties;
import jsystem.framework.report.Reporter.EnumReportLevel;
import junit.framework.Assert;
import junit.framework.SystemTestCase4;
/**
* This class is a test for method getCurrentTestFileName
* in HtmlReporterUtils utility class
*
* @see HtmlReporterUtils
*
* @author optier
*
*/
public class TestReportForGetCurrentTestFileName extends SystemTestCase4 {
public TestReportForGetCurrentTestFileName() {
super();
}
/**
* Check that report file start with report6.html
*/
@Test
public void checkGetCurrentTestFileName1() {
String currentHtmlFileName = "report6.html";
assertCurrentTestFileName(currentHtmlFileName);
//reoprt7.html : source code report generated by framework
}
/**
* Check that next report file is report8.html
*/
@Test
public void checkGetCurrentTestFileName2() {
String currentHtmlFileName = "report8.html";
assertCurrentTestFileName(currentHtmlFileName);
//report9.html : source code report generated by framework
}
/**
* Check that start level open new report html file, but method
* getCurrentTestFileName still point to main html test file.
*
* @throws IOException
*/
@Test
public void checkGetCurrentTestFileName3() throws IOException {
String currentHtmlFileName = "report10.html";
//report11.html : source code report generated by framework
assertCurrentTestFileName(currentHtmlFileName);
//open report 12
report.startLevel("Level 1", EnumReportLevel.CurrentPlace);
assertCurrentTestFileName(currentHtmlFileName);
report.report("report 1");
assertCurrentTestFileName(currentHtmlFileName);
report.stopLevel();
assertCurrentTestFileName(currentHtmlFileName);
}
/**
* Check that start level open new report html file, but method
* getCurrentTestFileName still point to main html test file.
*
* This time test is using 2 leveling.
*
* @throws IOException
*/
@Test
public void checkGetCurrentTestFileName4() throws IOException {
String currentHtmlFileName = "report13.html";
assertCurrentTestFileName(currentHtmlFileName);
//report14.html : source code report generated by framework
//open report 15
report.startLevel("Level 1", EnumReportLevel.CurrentPlace);
assertCurrentTestFileName(currentHtmlFileName);
report.report("report 1");
assertCurrentTestFileName(currentHtmlFileName);
report.stopLevel();
assertCurrentTestFileName(currentHtmlFileName);
//open report 16
report.startLevel("Level 2", EnumReportLevel.CurrentPlace);
assertCurrentTestFileName(currentHtmlFileName);
report.report("report 2");
assertCurrentTestFileName(currentHtmlFileName);
report.stopLevel();
assertCurrentTestFileName(currentHtmlFileName);
}
/**
* Check that html file name is still correct after using
* leveling in previous tests.
*
*/
@Test
public void checkGetCurrentTestFileName5() {
String currentHtmlFileName = "report17.html";
assertCurrentTestFileName(currentHtmlFileName);
//report18.html : source code report generated by framework
report.report("report 1");
assertCurrentTestFileName(currentHtmlFileName);
}
/**
* Assert current running test html file with an expected html
* file name.
*
* @param expectedfileName expected report html file
*/
private void assertCurrentTestFileName(String expectedfileName) {
String baseLogFolder = JSystemProperties.getInstance().getPreference(FrameworkOptions.LOG_FOLDER)
+ File.separator + "current";
String expectedCurrentTestFileName = baseLogFolder+File.separator+expectedfileName;
String actualCurrentTestFileName = HtmlReporterUtils.getCurrentTestFileName();
report.report("Expected Current Test File Name: "+expectedCurrentTestFileName);
report.report("Actual Current Test File Name: "+actualCurrentTestFileName);
Assert.assertEquals(expectedCurrentTestFileName,actualCurrentTestFileName);
}
}