Skip to content
Snippets Groups Projects
Commit facd477a authored by Matthias's avatar Matthias
Browse files

implemented ListEntities unit test for general kieker-connector testing

parent 06db1e6b
No related branches found
No related tags found
No related merge requests found
Showing
with 253 additions and 7 deletions
......@@ -5,6 +5,9 @@ Bundle-SymbolicName: tools.descartes.dql.connector.kieker.tests
Bundle-Version: 1.0.0.qualifier
Fragment-Host: tools.descartes.dql.connector.kieker;bundle-version="1.0.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
Require-Bundle: org.junit,
Require-Bundle: org.eclipse.xtext.junit,
org.eclipse.xtext.junit4,
tools.descartes.dql.lang.tests,
org.junit,
tools.descartes.dql.core.engine,
tools.descartes.dql.lang
LIST ENTITIES
USING kieker@'/tools.descartes.dql.connector.kieker.tests/fixtures/Queries/kiekerDql.properties';
\ No newline at end of file
kieker.maxRunTimeInSeconds=60
kieker.monitoring.default.properties=META-INF\\kieker.monitoring.default.properties
kieker.kiekerJarFile=kieker-1.12-aspectj.jar
kieker.kiekerLocation=D:\\Master\\GR\\kieker-1.13-SNAPSHOT
kieker.applicationJarFile=test2.jar
kieker.log.directory=log\\test
\ No newline at end of file
## Model Instance
dml.files.usageprofile=/tools.descartes.dql.connector.dml.tests/fixtures/SimpleFineGrainedBehaviorClosedWorkload/fixture.usageprofile
dml.files.system=/tools.descartes.dql.connector.dml.tests/fixtures/SimpleFineGrainedBehaviorClosedWorkload/fixture.system
dml.files.resourcelandscape=/tools.descartes.dql.connector.dml.tests/fixtures/SimpleFineGrainedBehaviorClosedWorkload/fixture.resourcelandscape
dml.files.repository=/tools.descartes.dql.connector.dml.tests/fixtures/SimpleFineGrainedBehaviorClosedWorkload/fixture.repository
dml.files.deployment=/tools.descartes.dql.connector.dml.tests/fixtures/SimpleFineGrainedBehaviorClosedWorkload/fixture.deployment
package tools.descartes.dql.connector.kieker.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import java.util.List;
import org.eclipse.emf.ecore.EObject;
import org.junit.Test;
import tools.descartes.dql.lang.descartesQL.DescartesQL;
import tools.descartes.dql.lang.descartesQL.FilterClause;
import tools.descartes.dql.lang.descartesQL.FilterConditionClause;
import tools.descartes.dql.lang.descartesQL.FilterConjunction;
import tools.descartes.dql.lang.descartesQL.ListQuery;
public abstract class AbstractListQueryTest extends AbstractQueryTest implements ListQueryTestIface {
public ListQuery getListQuery(final DescartesQL query) {
final EObject queryRoot = query.getQuery();
assertNotNull("Casting to ListQuery failed", queryRoot);
return (ListQuery) (queryRoot);
}
@Test
public final void testListQuery() {
final EObject queryRoot = getQuery().getQuery();
assertNotNull("Casting to ListQuery failed", queryRoot);
}
public void testNotNullFilterClause() {
final ListQuery list = getListQuery(getQuery());
final FilterClause filter = list.getFilterClause();
assertNotNull(filter);
final List<FilterConditionClause> filterConditions = filter.getFilterConditions();
assertNotNull(filterConditions);
assertEquals(1, filterConditions.size());
final List<FilterConjunction> filterConjunctions = filter.getFilterConjunctions();
assertNotNull(filterConjunctions);
assertEquals(0, filterConjunctions.size());
}
public void testNullFilterClause() {
final ListQuery list = getListQuery(getQuery());
final FilterClause filter = list.getFilterClause();
assertNull(filter);
}
@Override
@Test
public void testUsingClause() {
testUsingClause(getListQuery(getQuery()).getUsingClause());
}
}
package tools.descartes.dql.connector.kieker.tests;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.fail;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import org.eclipse.xtext.junit4.InjectWith;
import org.eclipse.xtext.junit4.XtextRunner;
import org.eclipse.xtext.junit4.util.ParseHelper;
import org.junit.runner.RunWith;
import com.google.inject.Inject;
import tools.descartes.dql.lang.DescartesQLInjectorProvider;
import tools.descartes.dql.lang.descartesQL.DescartesQL;
import tools.descartes.dql.lang.descartesQL.ModelReferenceClause;
import tools.descartes.dql.lang.descartesQL.UsingClause;
@InjectWith(DescartesQLInjectorProvider.class)
@RunWith(XtextRunner.class)
public abstract class AbstractQueryTest implements QueryTestIface {
protected static File createFileName(final String testCategory, final String testName) {
final StringBuilder sb = new StringBuilder();
File queryFile = null;
// After HOURS (!) enjoying inconsistent Eclipse documentation about
// platform URLs, APIs, etc. I just thought using a relative path might
// work.... Aaaaaand it works. Finally.
sb.append("../tools.descartes.dql.connector.kieker.tests");
sb.append("/" + testCategory);
sb.append("/" + testName);
sb.append(EXTENSION);
queryFile = new File(sb.toString());
return queryFile;
}
private String queryRawText;
private DescartesQL query;
@Inject
ParseHelper<DescartesQL> parser;
public DescartesQL getQuery() {
return query;
}
public String getQueryRawText() {
return queryRawText;
}
@Override
public void initialize(final File queryFile) throws Exception {
if (!queryFile.isFile()) {
fail("Query File not found: " + queryFile);
}
final FileReader queryFileReader = new FileReader(queryFile);
final BufferedReader queryReader = new BufferedReader(queryFileReader);
final StringBuilder builder = new StringBuilder();
while (queryReader.ready()) {
builder.append(queryReader.readLine()).append(" ");
}
queryReader.close();
setQueryRawText(builder.toString());
setQuery(parser.parse(getQueryRawText()));
assertNotNull(getQuery());
}
public void setQuery(final DescartesQL query) {
this.query = query;
}
public void setQueryRawText(final String queryRawText) {
this.queryRawText = queryRawText;
}
public void testUsingClause(final UsingClause using) {
assertNotNull(using);
final ModelReferenceClause modelRef = using.getModelReference();
assertNotNull(modelRef);
assertEquals(MODEL_FAMILY, modelRef.getFamily().getFamily());
}
}
package tools.descartes.dql.connector.kieker.tests;
import org.eclipse.xtext.junit4.InjectWith;
import org.eclipse.xtext.junit4.XtextRunner;
import org.junit.runner.RunWith;
import tools.descartes.dql.lang.DescartesQLInjectorProvider;
@RunWith(XtextRunner.class)
@InjectWith(DescartesQLInjectorProvider.class)
public interface ListQueryTestIface extends QueryTestIface {
public void testFilterClause();
public void testListQueryMode();
public void testUsingClause();
}
package tools.descartes.dql.connector.kieker.tests;
import java.io.File;
import org.eclipse.xtext.junit4.InjectWith;
import org.eclipse.xtext.junit4.XtextRunner;
import org.junit.runner.RunWith;
import tools.descartes.dql.lang.DescartesQLInjectorProvider;
@RunWith(XtextRunner.class)
@InjectWith(DescartesQLInjectorProvider.class)
public interface QueryTestIface {
public static final String MODEL_FAMILY = "kieker";
public static final String EXTENSION = ".dql";
public void initialize(File queryFile) throws Exception;
public void initializeTest() throws Exception;
}
package tools.descartes.dql.connector.kieker.tests.list;
import static org.junit.Assert.assertEquals;
import org.eclipse.xtext.junit4.InjectWith;
import org.eclipse.xtext.junit4.XtextRunner;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import tools.descartes.dql.connector.kieker.tests.AbstractListQueryTest;
import tools.descartes.dql.lang.DescartesQLInjectorProvider;
import tools.descartes.dql.lang.descartesQL.ListQuery;
@RunWith(XtextRunner.class)
@InjectWith(DescartesQLInjectorProvider.class)
public class ListEntitiesQuery extends AbstractListQueryTest {
public static final String MODEL_LOCATION = "kieker@/tools.descartes.dql.connector.kieker.tests/fixtures/Queries/kiekerDql.properties";
public static final String MODE = "ENTITIES";
@Override
@Before
public void initializeTest() throws Exception {
super.initialize(createFileName("fixtures/Queries", this.getClass().getSimpleName()));
}
@Override
@Test
public void testFilterClause() {
testNotNullFilterClause();
}
@Override
@Test
public void testListQueryMode() {
final ListQuery list = getListQuery(getQuery());
final tools.descartes.dql.lang.descartesQL.ListEntitiesQuery listEntities = (tools.descartes.dql.lang.descartesQL.ListEntitiesQuery) list
.getQueryType();
assertEquals("Mode not set correctly", MODE, listEntities.getMode());
}
@Override
@Test
public void testUsingClause() {
testUsingClause(getListQuery(getQuery()).getUsingClause());
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment