package org.jboss.cdi.tck.tests.context.passivating.dependency.builtin; import static org.jboss.cdi.tck.cdi.Sections.PASSIVATION_CAPABLE_DEPENDENCY; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertNotNull; import java.io.IOException; import javax.inject.Inject; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.cdi.tck.AbstractTest; import org.jboss.cdi.tck.shrinkwrap.WebArchiveBuilder; import org.jboss.shrinkwrap.api.spec.WebArchive; import org.jboss.test.audit.annotations.SpecAssertion; import org.jboss.test.audit.annotations.SpecVersion; import org.testng.annotations.Test; /** * * @author Martin Kouba * @author Kirill Gaevskii */ @SpecVersion(spec = "cdi", version = "2.0-PFD") public class BuiltinBeanPassivationDependencyTest extends AbstractTest { @Deployment public static WebArchive createTestArchive() { return new WebArchiveBuilder().withTestClassPackage(BuiltinBeanPassivationDependencyTest.class).build(); } @Inject Worker worker; @Inject Boss boss; @Inject InspectorAssistant inspectorAssist; @Test @SpecAssertion(section = PASSIVATION_CAPABLE_DEPENDENCY, id = "ea") public void testInstance() throws IOException, ClassNotFoundException { assertNotNull(worker); assertNotNull(worker.getInstance()); Hammer hammer = worker.getInstance().get(); assertNotNull(hammer); String workerId = worker.getId(); String hammerId = hammer.getId(); byte[] serializedWorker = passivate(worker); Worker workerCopy = (Worker) activate(serializedWorker); assertNotNull(workerCopy); assertNotNull(workerCopy.getInstance()); assertEquals(workerCopy.getId(), workerId); assertEquals(workerCopy.getInstance().get().getId(), hammerId); } @Test @SpecAssertion(section = PASSIVATION_CAPABLE_DEPENDENCY, id = "ed") public void testBeanManager() throws IOException, ClassNotFoundException { assertNotNull(boss); assertNotNull(boss.getBeanManager()); String bossId = boss.getId(); byte[] serializedBoss = passivate(boss); Boss bossCopy = (Boss) activate(serializedBoss); assertNotNull(bossCopy); assertNotNull(bossCopy.getBeanManager()); assertEquals(bossCopy.getId(), bossId); assertEquals(bossCopy.getBeanManager().getBeans(Boss.class).size(), 1); } @Test @SpecAssertion(section = PASSIVATION_CAPABLE_DEPENDENCY, id = "ec") public void testInjectionPoint() throws IOException, ClassNotFoundException { Inspector inspector = inspectorAssist.getInspector(); assertNotNull(inspector); assertNotNull(inspector.getInjectionPoint()); String inspectorId = inspector.getId(); byte[] serializedInspector = passivate(inspector); Inspector inspectorCopy = (Inspector) activate(serializedInspector); assertNotNull(inspectorCopy); assertNotNull(inspectorCopy.getInjectionPoint()); assertEquals(inspectorCopy.getId(), inspectorId); assertEquals(inspectorCopy.getInjectionPoint(), inspector.getInjectionPoint()); assertEquals(inspectorCopy.getInjectionPoint().getType(), inspector.getInjectionPoint().getType()); assertEquals(inspectorCopy.getInjectionPoint().getQualifiers(), inspector.getInjectionPoint().getQualifiers()); assertEquals(inspectorCopy.getInjectionPoint().getBean(), inspector.getInjectionPoint().getBean()); assertEquals(inspectorCopy.getInjectionPoint().getMember(), inspector.getInjectionPoint().getMember()); assertEquals(inspectorCopy.getInjectionPoint().getAnnotated(), inspector.getInjectionPoint().getAnnotated()); assertEquals(inspectorCopy.getInjectionPoint().isDelegate(), inspector.getInjectionPoint().isDelegate()); assertEquals(inspectorCopy.getInjectionPoint().isTransient(), inspector.getInjectionPoint().isTransient()); } }