public void tearDown() { tataFactory.start(); totoProv.dispose(); totoProv = null; totoProv2.dispose(); totoProv2 = null; tataFactory2.start(); // Reset counters TotoProvider.toto = 0; TotoProvider.toto_2 = 0; TotoProvider.toto_3 = 0; TotoProvider.toto_4 = 0; TotoProvider.toto1 = 0; }
/** Check if a pojo can correctly be cast in POJO. Check the getComponentInstance method. */ @Test public void testGetComponentInstance() { String factName = "Manipulation-FooProviderType-1"; String compName = "FooProvider-1"; ServiceReference ref = null; // Get the factory to create a component instance Factory fact = ipojoHelper.getFactory(factName); assertNotNull("Cannot find the factory FooProvider-1", fact); Properties props = new Properties(); props.put("instance.name", compName); ComponentInstance ci = null; try { ci = fact.createComponentInstance(props); } catch (Exception e1) { fail(e1.getMessage()); } assertEquals("Check instance name", compName, ci.getInstanceName()); // Get a FooService provider ref = ipojoHelper.getServiceReferenceByName(FooService.class.getName(), compName); assertNotNull("FS not available", ref); // Get foo object FooService fs = (FooService) osgiHelper.getServiceObject(ref); // Cast to POJO Pojo pojo = (Pojo) fs; // GetComponentInstance ComponentInstance instance = pojo.getComponentInstance(); assertEquals("Check component instance name", instance.getInstanceName(), compName); assertEquals("Check component factory name", instance.getFactory().getName(), factName); assertNotNull("Instance description not null", instance.getInstanceDescription()); PrimitiveInstanceDescription id = (PrimitiveInstanceDescription) instance.getInstanceDescription(); assertTrue("Check instance state", id.getState() == ComponentInstance.VALID); assertEquals("Check created pojo count", id.getCreatedObjects().length, 1); assertEquals("Check instance description name", id.getName(), compName); ci.dispose(); // Check that there is no more FooService ref = osgiHelper.getServiceReference(FooService.class.getName()); assertNull("FS available, but component instance stopped", ref); }
@Test public void testSimple() { // Neither factory nor instance assertTrue("Assert under state - 1", under.getState() == ComponentInstance.INVALID); assertNull( "Assert no tota service - 1", getContext().getServiceReference(Tota.class.getName())); // Start the importer totoProv.start(); assertTrue("Assert under state - 2", under.getState() == ComponentInstance.INVALID); assertNull( "Assert no tota service - 2", getContext().getServiceReference(Tota.class.getName())); // Start the factory tataFactory.start(); assertTrue("Assert under state - 3", under.getState() == ComponentInstance.VALID); assertNotNull( "Assert tota service - 3", getContext().getServiceReference(Tota.class.getName())); ServiceReference ref = getContext().getServiceReference(Tota.class.getName()); Tota tota = (Tota) getContext().getService(ref); invokeAll(tota); // Check toto Properties props = tota.getProps(); Integer toto = (Integer) props.get("toto"); Integer toto_2 = (Integer) props.get("toto_2"); Integer toto_3 = (Integer) props.get("toto_3"); Integer toto_4 = (Integer) props.get("toto_4"); assertEquals("Assert toto - 3 (" + toto.intValue() + ")", toto.intValue(), 1); assertEquals("Assert toto_2 - 3", toto_2.intValue(), 1); assertEquals("Assert toto_3 - 3", toto_3.intValue(), 1); assertEquals("Assert toto_4 - 3", toto_4.intValue(), 0); // Check tata props = tota.getPropsTata(); Integer tata = (Integer) props.get("tata"); Integer tataStr = (Integer) props.get("tataStr"); Integer tataStrs = (Integer) props.get("tataStrs"); Integer tata_2 = (Integer) props.get("tata_2"); Integer tata_3 = (Integer) props.get("tata_3"); Integer tata1 = (Integer) props.get("tata1"); Integer tata1_1 = (Integer) props.get("tata1_1"); Integer tata5 = (Integer) props.get("tata5"); Integer tata5_1 = (Integer) props.get("tata5_1"); Integer tata5_2 = (Integer) props.get("tata5_2"); assertEquals("Assert tata - 3", tata.intValue(), 1); assertEquals("Assert tataStr - 3", tataStr.intValue(), 1); assertEquals("Assert tataStrs - 3", tataStrs.intValue(), 0); assertEquals("Assert tata_2 - 3", tata_2.intValue(), 1); assertEquals("Assert tata_3 - 3", tata_3.intValue(), 1); assertEquals("Assert tata1 - 3", tata1.intValue(), 1); assertEquals("Assert tata1_1 - 3", tata1_1.intValue(), 1); assertEquals("Assert tata5 - 3", tata5.intValue(), 1); assertEquals("Assert tata5_1 - 3", tata5_1.intValue(), 1); assertEquals("Assert tata5_2 - 3", tata5_2.intValue(), 1); getContext().ungetService(ref); tota = null; // Start a second import totoProv2.start(); assertTrue("Assert under state - 4", under.getState() == ComponentInstance.VALID); assertNotNull( "Assert tota service - 4", getContext().getServiceReference(Tota.class.getName())); ref = getContext().getServiceReference(Tota.class.getName()); tota = (Tota) getContext().getService(ref); invokeAll(tota); // Check toto props = tota.getProps(); toto = (Integer) props.get("toto"); toto_2 = (Integer) props.get("toto_2"); toto_3 = (Integer) props.get("toto_3"); toto_4 = (Integer) props.get("toto_4"); assertEquals("Assert toto - 4", toto.intValue(), 2); assertEquals("Assert toto_2 - 4", toto_2.intValue(), 2); assertEquals("Assert toto_3 - 4", toto_3.intValue(), 2); assertEquals("Assert toto_4 - 4", toto_4.intValue(), 0); // Check tata props = tota.getPropsTata(); tata = (Integer) props.get("tata"); tataStr = (Integer) props.get("tataStr"); tataStrs = (Integer) props.get("tataStrs"); tata_2 = (Integer) props.get("tata_2"); tata_3 = (Integer) props.get("tata_3"); tata1 = (Integer) props.get("tata1"); tata1_1 = (Integer) props.get("tata1_1"); tata5 = (Integer) props.get("tata5"); tata5_1 = (Integer) props.get("tata5_1"); tata5_2 = (Integer) props.get("tata5_2"); assertEquals("Assert tata - 4", tata.intValue(), 2); assertEquals("Assert tataStr - 4", tataStr.intValue(), 2); assertEquals("Assert tataStrs - 4", tataStrs.intValue(), 0); assertEquals("Assert tata_2 - 4", tata_2.intValue(), 2); assertEquals("Assert tata_3 - 4", tata_3.intValue(), 2); assertEquals("Assert tata1 - 4", tata1.intValue(), 2); assertEquals("Assert tata1_1 - 4", tata1_1.intValue(), 2); assertEquals("Assert tata5 - 4", tata5.intValue(), 2); assertEquals("Assert tata5_1 - 4", tata5_1.intValue(), 2); assertEquals("Assert tata5_2 - 4", tata5_2.intValue(), 2); getContext().ungetService(ref); tota = null; tataFactory.stop(); assertTrue("Assert under state - 5", under.getState() == ComponentInstance.INVALID); assertNull( "Assert no tota service - 5", getContext().getServiceReference(Tota.class.getName())); totoProv2.stop(); tataFactory.start(); assertTrue("Assert under state - 6", under.getState() == ComponentInstance.VALID); assertNotNull( "Assert tota service - 6", getContext().getServiceReference(Tota.class.getName())); ref = getContext().getServiceReference(Tota.class.getName()); tota = (Tota) getContext().getService(ref); invokeAll(tota); // Check toto props = tota.getProps(); toto = (Integer) props.get("toto"); toto_2 = (Integer) props.get("toto_2"); toto_3 = (Integer) props.get("toto_3"); toto_4 = (Integer) props.get("toto_4"); assertEquals("Assert toto - 6", toto.intValue(), 3); assertEquals("Assert toto_2 - 6", toto_2.intValue(), 3); assertEquals("Assert toto_3 - 6", toto_3.intValue(), 3); assertEquals("Assert toto_4 - 6", toto_4.intValue(), 0); // Check tata props = tota.getPropsTata(); tata = (Integer) props.get("tata"); tataStr = (Integer) props.get("tataStr"); tataStrs = (Integer) props.get("tataStrs"); tata_2 = (Integer) props.get("tata_2"); tata_3 = (Integer) props.get("tata_3"); tata1 = (Integer) props.get("tata1"); tata1_1 = (Integer) props.get("tata1_1"); tata5 = (Integer) props.get("tata5"); tata5_1 = (Integer) props.get("tata5_1"); tata5_2 = (Integer) props.get("tata5_2"); assertEquals("Assert tata - 6", 1, tata.intValue()); assertEquals("Assert tataStr - 6", tataStr.intValue(), 1); assertEquals("Assert tataStrs - 6", tataStrs.intValue(), 0); assertEquals("Assert tata_2 - 6", tata_2.intValue(), 1); assertEquals("Assert tata_3 - 6", tata_3.intValue(), 1); assertEquals("Assert tata1 - 6", tata1.intValue(), 1); assertEquals("Assert tata1_1 - 6", tata1_1.intValue(), 1); assertEquals("Assert tata5 - 6", tata5.intValue(), 1); assertEquals("Assert tata5_1 - 6", tata5_1.intValue(), 1); assertEquals("Assert tata5_2 - 6", tata5_2.intValue(), 1); getContext().ungetService(ref); tota = null; // Is arch exposed assertNotNull( "Test arch", ipojoHelper.getServiceReferenceByName(Architecture.class.getName(), "ff")); totoProv.stop(); assertTrue("Assert under state - 7", under.getState() == ComponentInstance.INVALID); assertNotNull( "Test arch-2", ipojoHelper.getServiceReferenceByName(Architecture.class.getName(), "ff")); assertNull( "Assert no tota service - 7", getContext().getServiceReference(Tota.class.getName())); under.dispose(); under = null; }