package spoon.testing;
import org.junit.Test;
import spoon.reflect.declaration.CtPackage;
import spoon.reflect.declaration.ModifierKind;
import spoon.reflect.factory.Factory;
import java.io.File;
import static spoon.testing.Assert.assertThat;
import static spoon.testing.utils.ModelUtils.build;
import static spoon.testing.utils.ModelUtils.createFactory;
public class CtPackageAssertTest {
@Test
public void testEqualityBetweenTwoCtPackage() throws Exception {
final Factory factory = createFactory();
final CtPackage aRootPackage = factory.Package().getOrCreate("");
aRootPackage.addType(factory.Class().create("spoon.testing.testclasses.Foo").addModifier(ModifierKind.PUBLIC));
aRootPackage.addType(factory.Class().create("spoon.testing.testclasses.Bar").addModifier(ModifierKind.PUBLIC));
assertThat(build(new File("./src/test/java/spoon/testing/testclasses/")).Package().getRootPackage()).isEqualTo(aRootPackage);
}
@Test(expected = AssertionError.class)
public void testEqualityBetweenTwoDifferentCtPackage() throws Exception {
assertThat(build(new File("./src/test/java/spoon/testing/testclasses/")).Package().getRootPackage()).isEqualTo(createFactory().Package().getOrCreate("another.package"));
}
@Test(expected = AssertionError.class)
public void testEqualityBetweenTwoCtPackageWithDifferentTypes() throws Exception {
final Factory factory = createFactory();
final CtPackage aRootPackage = factory.Package().getOrCreate("");
aRootPackage.addType(factory.Class().create("spoon.testing.testclasses.Foo").addModifier(ModifierKind.PUBLIC));
assertThat(build(new File("./src/test/java/spoon/testing/testclasses/")).Package().getRootPackage()).isEqualTo(aRootPackage);
}
}