Hi all,

I'd like to have some help regarding the intention of the
"test_A11_B0n_immediate_A_first()" method in the CircularReferenceTest.java
test from SCR.
Indeed, the javadoc of this method seems to indicate that the intention is
to test the following use case:

- A is immediate and has a 1..1 dynamic ref to B
- B is immediate ans has a 0..N dynamic ref to A
- then both A and B should be started, however B should not be bound to A
because there is a cycle (112.3.7 chapter, in the DS spec)

now, if you look at the last assertion in the
test_A11_B0n_immediate_A_first() method, then it looks like B is asserted
to be bound to A, which seems to be in contradiction with the intent of
this test:

    @Test
    public void test_A11_B0n_immediate_A_first() throws
InvalidSyntaxException
    {
        String componentNameA = "2.A.1.1.dynamic";
        final ComponentConfigurationDTO componentA =
findComponentConfigurationByName( componentNameA,
ComponentConfigurationDTO.ACTIVE );
        A a = getServiceFromConfiguration(componentA, A.class);
        assertEquals( 1, a.getBs().size());

        String componentNameB = "2.B.0.n.dynamic";
        final ComponentConfigurationDTO componentB =
findComponentConfigurationByName( componentNameB,
ComponentConfigurationDTO.ACTIVE );
        B b = getServiceFromConfiguration(componentB, B.class);
        assertEquals( 1, b.getAs().size() );
    }

IMO, the last assert should be:

        assertEquals( 0, b.getAs().size() );

instead of

        assertEquals( 1, b.getAs().size() );

then do we have currently a bug in SCR (because B should not be bound to A
in this situation ?)

thanks;

cheers;
/Pierre

Reply via email to