package com.ikokoon.serenity.hudson.source;
import static org.junit.Assert.assertTrue;
import java.util.List;
import org.junit.Test;
import com.ikokoon.serenity.ATest;
import com.ikokoon.serenity.IConstants;
import com.ikokoon.serenity.model.Class;
import com.ikokoon.serenity.model.Line;
import com.ikokoon.serenity.model.Method;
import com.ikokoon.serenity.model.Package;
import com.ikokoon.serenity.persistence.DataBaseRam;
import com.ikokoon.serenity.persistence.IDataBase;
import com.ikokoon.toolkit.Executer;
public class CoverageSourceCodeTest extends ATest {
private String source = "class Dummy {\n\tprivate String name;\n\n\tpublic Dummy() {\n\t}\n\tpublic String getName() {\n\t\treturn name;\n\t}\n}";
@Test
public void getSource() {
Package<?, ?> pakkage = getPackage();
IDataBase dataBase = IDataBase.DataBaseManager.getDataBase(DataBaseRam.class, IConstants.DATABASE_FILE_RAM, mockInternalDataBase);
dataBase.persist(pakkage);
Class<?, ?> klass = (Class<?, ?>) dataBase.find(Class.class, pakkage.getChildren().get(0).getId());
setCovered(klass);
final CoverageSourceCode coverageSourceCode = new CoverageSourceCode(klass, source);
String html = coverageSourceCode.getSource();
logger.info(html);
double executionsPerSecond = Executer.execute(new Executer.IPerform() {
public void execute() {
coverageSourceCode.getSource();
}
}, "highlight source", 10);
assertTrue(executionsPerSecond > 10);
dataBase.remove(pakkage.getClass(), pakkage.getId());
dataBase.close();
}
private void setCovered(Class<?, ?> klass) {
List<Method<?, ?>> methods = klass.getChildren();
for (Method<?, ?> method : methods) {
List<Line<?, ?>> lines = method.getChildren();
for (Line<?, ?> line : lines) {
line.setCounter(1.0);
}
}
}
}