예제 #1
0
  public void setUp() {
    tataFactory = (ComponentFactory) Utils.getFactoryByName(getContext(), "tata");
    totoFactory = (ComponentFactory) Utils.getFactoryByName(getContext(), "toto");
    tataFactory2 = (ComponentFactory) Utils.getFactoryByName(getContext(), "comp-6");
    tataFactory2.stop();
    tataFactory.stop();

    Properties props = new Properties();
    props.put("instance.name", "toto provider");
    try {
      totoProv = totoFactory.createComponentInstance(props);
    } catch (Exception e) {
      e.printStackTrace();
    }

    Properties props3 = new Properties();
    props3.put("instance.name", "toto provider 2");
    try {
      totoProv2 = totoFactory.createComponentInstance(props3);
    } catch (Exception e) {
      e.printStackTrace();
    }

    totoProv.stop();
    totoProv2.stop();

    Factory factory = Utils.getFactoryByName(getContext(), "comp-2");
    Properties props2 = new Properties();
    props2.put("instance.name", "ff");
    try {
      under = factory.createComponentInstance(props2);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
예제 #2
0
  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() + ")",
        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");
    Integer toto_1 = (Integer) props.get("toto1");
    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);
    assertEquals("Assert toto1 - 3 (" + toto_1.intValue() + ")", toto_1.intValue(), 1);
    // Check tata
    props = tota.getPropsTata();
    Integer tata = (Integer) props.get("tata");
    assertEquals("Assert tata - 3", tata.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");
    toto_1 = (Integer) props.get("toto1");
    assertEquals("Assert toto - 4 (" + toto.intValue() + ")", toto.intValue(), 2);
    assertEquals("Assert toto_2 - 4 (" + toto_2.intValue() + ")", toto_2.intValue(), 2);
    assertEquals("Assert toto_3 - 4", toto_3.intValue(), 2);
    assertEquals("Assert toto_4 - 4", toto_4.intValue(), 0);
    assertEquals("Assert toto1 - 4", toto_1.intValue(), 3);
    // Check tata
    props = tota.getPropsTata();
    tata = (Integer) props.get("tata");
    assertEquals("Assert tata - 4", tata.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");
    toto_1 = (Integer) props.get("toto1");
    assertEquals("Assert toto - 6 (" + toto.intValue() + ")", toto.intValue(), 3);
    assertEquals("Assert toto_2 - 6 (" + toto_2.intValue() + ")", toto_2.intValue(), 3);
    assertEquals("Assert toto_3 - 6", toto_3.intValue(), 3);
    assertEquals("Assert toto_4 - 6", toto_4.intValue(), 0);
    assertEquals("Assert toto1 - 6", toto_1.intValue(), 4);
    // Check tata
    props = tota.getPropsTata();
    tata = (Integer) props.get("tata");
    assertEquals("Assert tata - 6", tata.intValue(), 1);

    getContext().ungetService(ref);
    tota = null;

    // Is arch exposed
    assertNotNull(
        "Test arch",
        Utils.getServiceReferenceByName(getContext(), Architecture.class.getName(), "ff"));

    totoProv.stop();

    assertTrue("Assert under state - 7", under.getState() == ComponentInstance.INVALID);
    assertNotNull(
        "Test arch-2",
        Utils.getServiceReferenceByName(getContext(), Architecture.class.getName(), "ff"));
    assertNull(
        "Assert no tota service - 7", getContext().getServiceReference(Tota.class.getName()));

    under.dispose();
    under = null;
  }