package de.vksi.c4j.systemtest.contractclassmagic;
import static de.vksi.c4j.Condition.preCondition;
import org.apache.log4j.Level;
import org.junit.Rule;
import org.junit.Test;
import de.vksi.c4j.ContractReference;
import de.vksi.c4j.systemtest.TransformerAwareRule;
public class ConstructorWarningSystemTest {
@Rule
public TransformerAwareRule transformerAware = new TransformerAwareRule();
@Test
public void test() {
transformerAware.banGlobalLog(Level.WARN, "could not find a matching constructor in affected class "
+ TargetClass.class.getName() + " for constructor "
+ ContractClass.class.getName() + "()");
new TargetClass(1);
}
@ContractReference(ContractClass.class)
private static class TargetClass {
public TargetClass(int arg) {
}
}
private static class ContractClass extends TargetClass {
public ContractClass(int arg) {
super(arg);
if (preCondition()) {
assert arg > 0;
}
}
}
}