package de.vksi.c4j.systemtest.config.purebehaviorskiponly;
import static de.vksi.c4j.Condition.old;
import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import de.vksi.c4j.ClassInvariant;
import de.vksi.c4j.ContractReference;
import de.vksi.c4j.Target;
import de.vksi.c4j.systemtest.TransformerAwareRule;
public class OldInInvariantSystemTest {
@Rule
public TransformerAwareRule transformerAwareRule = new TransformerAwareRule();
private TargetClass target;
@Before
public void before() {
target = new TargetClass();
}
@Test
public void testOldInInvariant() {
target.method();
}
@ContractReference(ContractClass.class)
private static class TargetClass {
public void method() {
}
public int getOne() {
return 1;
}
}
@SuppressWarnings("unused")
private static class ContractClass extends TargetClass {
@Target
private TargetClass target;
@ClassInvariant
public void invariant() {
assert old(target.getOne()) == 1;
}
}
}