// Copyright © 2011-2014, Esko Luontola <www.orfjackal.net>
// This software is released under the Apache License 2.0.
// The license text is at http://www.apache.org/licenses/LICENSE-2.0
package fi.jumi.core.ipc.encoding;
import fi.jumi.core.config.*;
import fi.jumi.core.ipc.api.RequestListener;
import java.lang.reflect.*;
import java.nio.file.Paths;
import static org.hamcrest.MatcherAssert.assertThat;
import static org.hamcrest.Matchers.*;
public class RequestListenerEncodingTest extends EncodingContract<RequestListener> {
public RequestListenerEncodingTest() {
super(RequestListenerEncoding::new);
}
@Override
protected void exampleUsage(RequestListener listener) throws Exception {
SuiteConfiguration config = new SuiteConfigurationBuilder()
.addToClasspath(Paths.get("foo/bar.jar"))
.addJvmOptions("-jvmOption")
.setWorkingDirectory(Paths.get("workingDir"))
.setIncludedTestsPattern("glob:Included.class")
.setExcludedTestsPattern("glob:Excluded.class")
.freeze();
assertNoDefaultValues(config);
listener.runTests(config);
listener.shutdown();
}
private static void assertNoDefaultValues(SuiteConfiguration config) throws Exception {
for (Field field : SuiteConfiguration.class.getDeclaredFields()) {
if (Modifier.isStatic(field.getModifiers())) {
continue;
}
field.setAccessible(true);
Object actualValue = field.get(config);
Object defaultValue = field.get(SuiteConfiguration.DEFAULTS);
assertThat("'" + field.getName() + "' field was at default value", actualValue, is(not(defaultValue)));
}
}
}