package de.vksi.c4j.systemtest.pure; import org.junit.Rule; import org.junit.Test; import de.vksi.c4j.ContractReference; import de.vksi.c4j.systemtest.TransformerAwareRule; public class StaticContractMethodCallingUnpureMethodSystemTest { @Rule public TransformerAwareRule transformerAwareRule = new TransformerAwareRule(); @Test public void test() { new TargetClass().method(); } @ContractReference(ContractClass.class) private static class TargetClass { public void method() { } } @SuppressWarnings("unused") private static class ContractClass extends TargetClass { protected TargetClass target; static { new OtherClass().unpureMethod(); } } private static class OtherClass { public void unpureMethod() { } } }