package spoon.testing; import org.junit.Test; import spoon.processing.AbstractProcessor; import spoon.reflect.declaration.CtField; import spoon.reflect.declaration.CtType; import spoon.testing.processors.FooToBarProcessor; import static spoon.testing.Assert.assertThat; import static spoon.testing.utils.ModelUtils.buildNoClasspath; public class AbstractAssertTest { public static final String PATH = "./src/test/java/spoon/testing/testclasses/"; @Test public void testTransformationWithProcessorInstantiated() throws Exception { assertThat(PATH + "Foo.java").withProcessor(new FooToBarProcessor()).isEqualTo(PATH + "Bar.java"); } @Test public void testTransformationWithProcessorClass() throws Exception { assertThat(PATH + "Foo.java").withProcessor(FooToBarProcessor.class).isEqualTo(PATH + "Bar.java"); } @Test public void testTransformationWithProcessorName() throws Exception { assertThat(PATH + "Foo.java").withProcessor(FooToBarProcessor.class.getName()).isEqualTo(PATH + "Bar.java"); } @Test public void testTransformationFromCtElementWithProcessor() throws Exception { class MyProcessor extends AbstractProcessor<CtField<?>> { @Override public void process(CtField<?> element) { element.setSimpleName("j"); } } final CtType<CtElementAssertTest> type = buildNoClasspath(CtElementAssertTest.class).Type().get(CtElementAssertTest.class); assertThat(type.getField("i")).withProcessor(new MyProcessor()).isEqualTo("public int j;"); } }