You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@deltaspike.apache.org by Stephen More <st...@gmail.com> on 2018/04/14 13:24:40 UTC

CdiTestRunner with multiple versions of @Alternative / beans.xml

I have a need to run some unit tests with @Alternative - mockedVersionA
and other tests with @Alternative - mockedVersionB
and other tests with @Alternative - mockedVersionC

It looks like Arquillian can handle this utilizing ShrinkWrap and
@Deployment....
addAsManifestResource( "mockedVersionA.xml","beans.xml");
addAsManifestResource( "mockedVersionB.xml","beans.xml");

Can I achieve the same functionality using CdiTestRunner ?
-Thanks

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Gerhard Petracek <ge...@gmail.com>.
you are welcome!

@all:
i just pushed further uc-tests (esp. uc017 illustrates the constellation
discussed in this thread)

regards,
gerhard


http://www.irian.at

Your JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache
MyFaces, DeltaSpike and OpenWebBeans

2018-04-16 21:20 GMT+02:00 Stephen More <st...@gmail.com>:

> Ah, now my tests pass.
>
> Thanks for all your help.
>
> On Mon, Apr 16, 2018 at 2:50 PM, Gerhard Petracek <
> gerhard.petracek@gmail.com> wrote:
>
> > hi stephen,
> >
> > if you have an alternative bean, you need to extend the original one or
> > implement all interfaces to keep the same types. (= std. cdi rules)
> > in your case TestServiceLabelAProducer and TestServiceLabelBProducer need
> > to extend DefaultTestServiceProducer.
> >
> > the labeled alternative config for your labels is:
> >
> > labeledAlternatives[testLabelA].org.apache.deltaspike.test.testcontrol.
> > uc020.DefaultTestServiceProducer=org.apache.deltaspike.test.
> > testcontrol.uc020.TestServiceLabelAProducer
> > labeledAlternatives[b].org.apache.deltaspike.test.testcontrol.uc020.
> > DefaultTestServiceProducer=org.apache.deltaspike.test.testcontrol.uc020.
> > TestServiceLabelBProducer
> >
> > as mentioned earlier "you need to replace the producer-class and not the
> > beans created by the producer"
> >
> > @everybody reading this thread later on:
> > uc020 is the private/external example from stephen and not part of our
> > test-suite, however, i'll add a corresponding uc-test to have a reference
> > for similar questions.
> >
> > regards,
> > gerhard
> >
> >
> >
> > http://www.irian.at
> >
> > Your JavaEE powerhouse -
> > JavaEE Consulting, Development and
> > Courses in English and German
> >
> > Professional Support for Apache
> > MyFaces, DeltaSpike and OpenWebBeans
> >
> > 2018-04-16 20:14 GMT+02:00 Stephen More <st...@gmail.com>:
> >
> > > My bad for copy paste, I did not see that I had DefaultTestService
> > > instantiated in each producer. -Fixed ( BAD stephen )
> > > I removed qualifiers.
> > >
> > > I think my apache-deltaspike.properties is configure properly - is it ?
> > > I think my Alternate Producers are now correct - are they ?
> > >
> > > I still think there is something that I am not comprehending because
> the
> > > tests are still failing.
> > >
> > >
> > >
> > >
> > > On Mon, Apr 16, 2018 at 12:15 PM, Gerhard Petracek <
> > > gerhard.petracek@gmail.com> wrote:
> > >
> > > > hi stephen,
> > > >
> > > > @#1:
> > > > (by design) ds-test-control always uses/tests the whole
> > > > application(/module+deps.) and the test-classpath the test is located
> > in.
> > > > you added a constellation in the test-classpath which violates the
> > rules
> > > of
> > > > cdi -> as you can see (in the logs), you caused an
> > > > AmbiguousResolutionException because [1] and [2] lead to 2 beans of
> the
> > > > same type (and qualifiers).
> > > > that are std./plain cdi-rules and isn't related to any kind of
> > > alternative
> > > > bean/s.
> > > > since the test-classpath isn't isolated per test (because you test
> your
> > > > application as a whole), all tests will fail in case you violate
> rules
> > > > defined by cdi.
> > > >
> > > > in this case you sometimes see diff. exceptions (as the last
> > exception),
> > > > because in our test-suite (to test ds-test-control itself) we have
> some
> > > > consistency checks e.g. in @AfterClass callbacks.
> > > > due to that you see e.g. an IllegalStateException instead of an
> > > > AmbiguousResolutionException at the very end (but the first issue was
> > > > always an AmbiguousResolutionException).
> > > > in your own application it would/should be always just one exception
> in
> > > > case you violate cdi-rules (in this case the
> > > AmbiguousResolutionException).
> > > >
> > > > @#2:
> > > > i answered that already (following the std. cdi-rule/s you need to
> > > replace
> > > > the producer-class and not the beans created by the producer).
> > > >
> > > > @"#3":
> > > > you don't need 3 qualifiers for 3 producers for the test you shared.
> > > > you need
> > > >  - @Exclude (or @Vetoed or @Typed() or nothing with cdi 1.1+ and
> > > > bean-discovery-mode="annotated") for DefaultTestService, because you
> > > have
> > > > DefaultTestServiceProducer which creates beans of type TestService020
> > (=
> > > > std. cdi rules)
> > > >  - @Alternative for your alternative producer (which should replace
> > > > DefaultTestServiceProducer) (= std. cdi rules)
> > > >  - a label to bind alternative-producer-x to test-x (+ the config for
> > it
> > > in
> > > > an active config-source like apache-deltaspike.properties)
> > > >
> > > > most is std. cdi and really easier than you (might) think.
> > > >
> > > > regards,
> > > > gerhard
> > > >
> > > > [1]
> > > > https://github.com/mores/deltaspike/blob/altProduces/
> > > > deltaspike/modules/test-control/impl/src/test/java/
> > > > org/apache/deltaspike/test/testcontrol/uc020/
> > DefaultTestServiceProducer.
> > > > java
> > > > [2]
> > > > https://github.com/mores/deltaspike/blob/altProduces/
> > > > deltaspike/modules/test-control/impl/src/test/java/
> > > > org/apache/deltaspike/test/testcontrol/uc020/DefaultTestService.java
> > > >
> > > >
> > > >
> > > > http://www.irian.at
> > > >
> > > > Your JavaEE powerhouse -
> > > > JavaEE Consulting, Development and
> > > > Courses in English and German
> > > >
> > > > Professional Support for Apache
> > > > MyFaces, DeltaSpike and OpenWebBeans
> > > >
> > > > 2018-04-16 16:21 GMT+02:00 Stephen More <st...@gmail.com>:
> > > >
> > > > > Ok, I updated my code, I had to add 3 Qualifiers to fix all other
> > > tests.
> > > > >
> > > > > I now have 3 producers.
> > > > >
> > > > > I think it should be working as is but I still see:
> > > > >
> > > > >   TestServiceLabelBTest.resultB:44 expected:<[result-b]> but
> > > > > was:<[default-result]>
> > > > >   TestServiceTestLabelATest.resultA:44 expected:<[result-a]> but
> > > > > was:<[default-result]>
> > > > >
> > > > >
> > > > >
> > > > > On Mon, Apr 16, 2018 at 8:22 AM, Stephen More <
> > stephen.more@gmail.com>
> > > > > wrote:
> > > > >
> > > > > > Usually I work on multiple tasks at a time, and I might not
> > > communicate
> > > > > as
> > > > > > well as I should. I will try to be a little more verbose.
> > > > > >
> > > > > > Before I added DefaultTestServiceProducer to uc020, mvn clean
> > install
> > > > > > was working as expected "Tests run: 65, Failures: 0, Errors: 0,
> > > > Skipped:
> > > > > 0"
> > > > > >
> > > > > > By simply adding DefaultTestServiceProducer to uc020 I did not
> > expect
> > > > to
> > > > > > get "Tests run: 53, Failures: 6, Errors: 22, Skipped: 0"
> > > > > >
> > > > > > 1. At this point I am no longer focusing on getting my uc020 to
> > pass,
> > > > but
> > > > > > rather what the heck did I just do.....what caused this ? Is
> > > something
> > > > > else
> > > > > > bigger going on that will cause my use case to fail anyway ?
> > > > > >
> > > > > > 2. In parallel I am also working on a private branch to get
> > > Alternate
> > > > > > Producers working....( again not working as expected ).
> > > > > >
> > > > > > I am at a loss to explain what is going on in 1, and 2 I think
> > should
> > > > be
> > > > > > working, but is not.
> > > > > >
> > > > > >
> > > > > > Why did my DefaultTestServiceProducer create all this havoc ?
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > Failed tests:
> > > > > >   InterceptedBeanTest.classLevelInterception:52
> > > > > >   InterceptedBeanTest.methodLevelInterception:60
> > > > > >   TestServiceLabelYTest.resultY:44 expected:<[result-y]> but
> > > > > > was:<[default-result]>
> > > > > >   TestServiceTestLabelXTest.resultX:44 expected:<[result-x]> but
> > > > > > was:<[default-result]>
> > > > > >   LabeledServiceTest.resultLbl:45 expected:<[result-lbl]> but
> > > > > > was:<[alternative-result]>
> > > > > >   TestServiceLabelXTest.resultX:43 expected:<result-[x]> but
> > > > > > was:<result-[y]>
> > > > > > Tests in error:
> > > > > >   MockedRequestScopedBeanTest.org.apache.deltaspike.test.
> > > > > > testcontrol.mock.uc001.MockedRequestScopedBeanTest » Deployment
> > > > > >   MockedSessionScopedBeanAcrossMethodsTest.org.apache.
> > > > > > deltaspike.test.testcontrol.mock.uc003.MockedSessionScopedBe
> > > anAcrossM
> > > > > ethodsTest
> > > > > > » Deployment
> > > > > >   MockedProducedBeanTest.org.apache.deltaspike.test.
> > > > > > testcontrol.mock.uc005.MockedProducedBeanTest » Deployment
> > > > > >   MockedTypedBeanTest.org.apache.deltaspike.test.
> > > > testcontrol.mock.uc008.
> > > > > MockedTypedBeanTest
> > > > > > » Deployment
> > > > > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > > > > testcontrol.mock.uc009.MockedTypedProducedBeanTest » Deployment
> > > > > >   MockedRequestScopedBeanWithInjectionTest.org.apache.
> > > > > > deltaspike.test.testcontrol.mock.uc012.MockedRequestScopedBe
> > > anWithInj
> > > > > ectionTest
> > > > > > » Deployment
> > > > > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > > > > testcontrol.mock.uc013.MockedTypedProducedBeanTest » Deployment
> > > > > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > > > > testcontrol.mock.uc014.MockedTypedProducedBeanTest » Deployment
> > > > > > org.apache.deltaspike.test.testcontrol.uc001.
> > > > > > RequestAndSessionScopePerTestMethodTest.org.apache.
> > > > > > deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestM
> > > > > ethodTest
> > > > > >   Run 1: RequestAndSessionScopePerTestMethodTest.org.apache.
> > > > > > deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestM
> > > > > ethodTest
> > > > > > » Deployment
> > > > > >   Run 2: RequestAndSessionScopePerTestMethodTest.
> > > > finalCheckAndCleanup:99
> > > > > > IllegalState u...
> > > > > >
> > > > > > org.apache.deltaspike.test.testcontrol.uc002.
> > > > > SessionScopePerTestClassTest.
> > > > > > org.apache.deltaspike.test.testcontrol.uc002.
> > > > > SessionScopePerTestClassTest
> > > > > >   Run 1: SessionScopePerTestClassTest.
> org.apache.deltaspike.test.
> > > > > > testcontrol.uc002.SessionScopePerTestClassTest » Deployment
> > > > > >   Run 2: SessionScopePerTestClassTest.finalCheckAndCleanup:93
> > > > > > IllegalState unexpected i...
> > > > > >
> > > > > >   SessionScopePerTestClassTest.org.apache.deltaspike.test.
> > > > > > testcontrol.uc003.SessionScopePerTestClassTest » Deployment
> > > > > > org.apache.deltaspike.test.testcontrol.uc004.
> > > > > ProjectStageTestControlTest.
> > > > > > org.apache.deltaspike.test.testcontrol.uc004.
> > > > ProjectStageTestControlTest
> > > > > >   Run 1: ProjectStageTestControlTest.org.apache.deltaspike.test.
> > > > > > testcontrol.uc004.ProjectStageTestControlTest » Deployment
> > > > > >   Run 2: ProjectStageTestControlTest>
> > RequestAndSessionScopePerTestM
> > > > > > ethodTest.finalCheckAndCleanup:99 » IllegalState
> > > > > >
> > > > > >   SkipExternalContainerTest.org.apache.deltaspike.test.
> > > > > testcontrol.uc006.SkipExternalContainerTest
> > > > > > » Deployment
> > > > > >   ExtendedTest.org.apache.deltaspike.test.testcontrol.
> > > > uc007.ExtendedTest
> > > > > > » Deployment
> > > > > >   JsfContainerPerTestMethodTest.org.apache.deltaspike.test.
> > > > > > testcontrol.uc010.JsfContainerPerTestMethodTest » Deployment
> > > > > >   InterceptedBeanTest.org.apache.deltaspike.test.
> > testcontrol.uc011.
> > > > > InterceptedBeanTest
> > > > > > » Deployment
> > > > > >   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontr
> > > ol.uc014.
> > > > > TestServiceNoLabelTest
> > > > > > » Deployment
> > > > > >   AlternativeServiceTest.org.apache.deltaspike.test.testcontr
> > > ol.uc015.
> > > > > AlternativeServiceTest
> > > > > > » Deployment
> > > > > >   TestServiceLabelYTest.org.apache.deltaspike.test.testcontro
> > > l.uc016.
> > > > > TestServiceLabelYTest
> > > > > > » Deployment
> > > > > >   TestServiceLabelBTest.resultB » AmbiguousResolution There is
> more
> > > > than
> > > > > > one Bea...
> > > > > >   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontr
> > > ol.uc020.
> > > > > TestServiceNoLabelTest
> > > > > > » Deployment
> > > > > >   TestServiceTestLabelATest.org.apache.deltaspike.test.
> > > > > testcontrol.uc020.TestServiceTestLabelATest
> > > > > > » Deployment
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Mon, Apr 16, 2018 at 1:33 AM, Gerhard Petracek <
> > > > > > gerhard.petracek@gmail.com> wrote:
> > > > > >
> > > > > >> hi stephen,
> > > > > >>
> > > > > >> you only have one producer-class:
> > > > > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > > > > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > > > > >> deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.
> java
> > > > > >>
> > > > > >> and @Alternative is only present at:
> > > > > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > > > > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > > > > >> deltaspike/test/testcontrol/uc020/TestServiceLabelA.java#L24
> > > > > >> and
> > > > > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > > > > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > > > > >> deltaspike/test/testcontrol/uc020/TestServiceLabelB.java#L24
> > > > > >>
> > > > > >> instead you need an alternative producer-class (to replace
> > > > > >> DefaultTestServiceProducer in your case).
> > > > > >>
> > > > > >> regards,
> > > > > >> gerhard
> > > > > >>
> > > > > >> http://www.irian.at
> > > > > >>
> > > > > >> Your JavaEE powerhouse -
> > > > > >> JavaEE Consulting, Development and
> > > > > >> Courses in English and German
> > > > > >>
> > > > > >> Professional Support for Apache
> > > > > >> MyFaces, DeltaSpike and OpenWebBeans
> > > > > >>
> > > > > >> 2018-04-15 21:02 GMT+02:00 Stephen More <stephen.more@gmail.com
> >:
> > > > > >>
> > > > > >> > Correct. I have a default producer and 1 alternate producer. I
> > can
> > > > > >> enable
> > > > > >> > the alternate producer by updating beans.xml.
> > > > > >> > I am trying to do the same thing using labeledAlternatives....
> > > > > >> >
> > > > > >> > what changes should be made to META-INF/apache-deltaspike.
> > > > properties
> > > > > >> when
> > > > > >> > using multiple alternate producers ?
> > > > > >> >
> > > > > >> >
> > > > > >> > labeledAlternatives[testLabelX].org.apache.
> > > > > deltaspike.test.testcontrol.
> > > > > >> > uc014.TestService=org.apache.deltaspike.test.testcontrol.
> uc014.
> > > > > >> > TestServiceLabelXProducer
> > > > > >> > labeledAlternatives[y].org.apache.deltaspike.test.
> > > > > >> > testcontrol.uc014.TestService=org.apache.deltaspike.test.
> > > > > >> > testcontrol.uc014.TestServiceLabelYProducer
> > > > > >> >
> > > > > >> >
> > > > > >> > ?
> > > > > >> >
> > > > > >> >
> > > > > >> >
> > > > > >> >
> > > > > >> > On Sun, Apr 15, 2018 at 1:22 PM, Gerhard Petracek <
> > > > > >> > gerhard.petracek@gmail.com> wrote:
> > > > > >> >
> > > > > >> > > hi stephen,
> > > > > >> > >
> > > > > >> > > as usual with cdi, you need to create an
> alternative-producer
> > (=
> > > > the
> > > > > >> > > producer-bean itself needs to be replaced).
> > > > > >> > >
> > > > > >> > > regards,
> > > > > >> > > gerhard
> > > > > >> > >
> > > > > >> > > http://www.irian.at
> > > > > >> > >
> > > > > >> > > Your JavaEE powerhouse -
> > > > > >> > > JavaEE Consulting, Development and
> > > > > >> > > Courses in English and German
> > > > > >> > >
> > > > > >> > > Professional Support for Apache
> > > > > >> > > MyFaces, DeltaSpike and OpenWebBeans
> > > > > >> > >
> > > > > >> > >
> > > > > >> > >
> > > > > >> > > 2018-04-15 14:41 GMT+02:00 Stephen More <
> > stephen.more@gmail.com
> > > >:
> > > > > >> > >
> > > > > >> > > > "alternative-bean-x1 (instead of bean-x) in test1
> > > > > >> > > > and alternative-bean-x2  (instead of bean-x) in test2"
> > > > > >> > > >
> > > > > >> > > > Yes, this is exactly what I am going after, unfortunately
> I
> > > have
> > > > > not
> > > > > >> > > gotten
> > > > > >> > > > it to work yet. In my case bean-x comes from a producer.
> > > > > >> > > >
> > > > > >> > > > Not sure if that is my problem so I started working on a
> use
> > > > > case, I
> > > > > >> > > made a
> > > > > >> > > > clone of uc014 -> uc020 ( fixed name collisions in
> > > > > >> > > > apache-deltaspike.properties ) but many other test cases
> > > started
> > > > > to
> > > > > >> > fail
> > > > > >> > > > outside of uc020.  ( https://github.com/mores/
> > > > > >> > > deltaspike/tree/altProduces
> > > > > >> > > > )
> > > > > >> > > >
> > > > > >> > > > Is this a possible bug ?
> > > > > >> > > > -Thanks
> > > > > >> > > >
> > > > > >> > > >
> > > > > >> > > > p.s. when a typo is made in apache-deltaspike.properties
> no
> > > > > warning
> > > > > >> or
> > > > > >> > > > error was thrown that I could easily see
> > > > > >> > > >
> > > > > >> > > >
> > > > > >> > > >
> > > > > >> > > > On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
> > > > > >> > > > gerhard.petracek@gmail.com> wrote:
> > > > > >> > > >
> > > > > >> > > > > hi stephen,
> > > > > >> > > > >
> > > > > >> > > > > if your alternative-instance/behavior should be
> different
> > > for
> > > > > >> "every"
> > > > > >> > > > test
> > > > > >> > > > > and you can't use a mock-manager, you need to use a
> > producer
> > > > > (for
> > > > > >> the
> > > > > >> > > > > original bean) and @Specializes it in the
> test-classpath.
> > > > > >> > > > > in your test you change the state of the test-producer
> > with
> > > > > static
> > > > > >> > > > methods
> > > > > >> > > > > (e.g. set a flag or a whole instance which should be
> > > returned
> > > > by
> > > > > >> the
> > > > > >> > > > > test-producer).
> > > > > >> > > > > -> it's std. cdi and/or java - no special concept is
> > needed.
> > > > > >> > > > >
> > > > > >> > > > > if you would like to use alternative-bean-x1 (instead of
> > > > bean-x)
> > > > > >> in
> > > > > >> > > test1
> > > > > >> > > > > and alternative-bean-x2  (instead of bean-x) in test2,
> you
> > > can
> > > > > use
> > > > > >> > > > labeled
> > > > > >> > > > > alternatives (provided by ds > v1.8.1) - see e.g. [1]
> and
> > > [2].
> > > > > >> > > > > it's based on the new AlternativeBeanClassProvider spi
> > > (which
> > > > > you
> > > > > >> > could
> > > > > >> > > > use
> > > > > >> > > > > as well to implement your own concepts) - see e.g. [3].
> > > > > >> > > > >
> > > > > >> > > > > regards,
> > > > > >> > > > > gerhard
> > > > > >> > > > >
> > > > > >> > > > > [1]
> > > > > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > > > > >> > > > deltaspike/modules/test-
> > > > > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > > > >> > > testcontrol/uc014
> > > > > >> > > > > [2]
> > > > > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > > > > >> > > > deltaspike/modules/test-
> > > > > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > > > >> > > testcontrol/uc015
> > > > > >> > > > > [3]
> > > > > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > > > > >> > > > deltaspike/modules/test-
> > > > > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > > > >> > > testcontrol/uc016
> > > > > >> > > > >
> > > > > >> > > > >
> > > > > >> > > > >
> > > > > >> > > > > http://www.irian.at
> > > > > >> > > > >
> > > > > >> > > > > Your JavaEE powerhouse -
> > > > > >> > > > > JavaEE Consulting, Development and
> > > > > >> > > > > Courses in English and German
> > > > > >> > > > >
> > > > > >> > > > > Professional Support for Apache
> > > > > >> > > > > MyFaces, DeltaSpike and OpenWebBeans
> > > > > >> > > > >
> > > > > >> > > > > 2018-04-14 15:24 GMT+02:00 Stephen More <
> > > > stephen.more@gmail.com
> > > > > >:
> > > > > >> > > > >
> > > > > >> > > > > > I have a need to run some unit tests with
> @Alternative -
> > > > > >> > > mockedVersionA
> > > > > >> > > > > > and other tests with @Alternative - mockedVersionB
> > > > > >> > > > > > and other tests with @Alternative - mockedVersionC
> > > > > >> > > > > >
> > > > > >> > > > > > It looks like Arquillian can handle this utilizing
> > > > ShrinkWrap
> > > > > >> and
> > > > > >> > > > > > @Deployment....
> > > > > >> > > > > > addAsManifestResource( "mockedVersionA.xml","beans.
> > xml");
> > > > > >> > > > > > addAsManifestResource( "mockedVersionB.xml","beans.
> > xml");
> > > > > >> > > > > >
> > > > > >> > > > > > Can I achieve the same functionality using
> > CdiTestRunner ?
> > > > > >> > > > > > -Thanks
> > > > > >> > > > > >
> > > > > >> > > > >
> > > > > >> > > >
> > > > > >> > >
> > > > > >> >
> > > > > >>
> > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Stephen More <st...@gmail.com>.
Ah, now my tests pass.

Thanks for all your help.

On Mon, Apr 16, 2018 at 2:50 PM, Gerhard Petracek <
gerhard.petracek@gmail.com> wrote:

> hi stephen,
>
> if you have an alternative bean, you need to extend the original one or
> implement all interfaces to keep the same types. (= std. cdi rules)
> in your case TestServiceLabelAProducer and TestServiceLabelBProducer need
> to extend DefaultTestServiceProducer.
>
> the labeled alternative config for your labels is:
>
> labeledAlternatives[testLabelA].org.apache.deltaspike.test.testcontrol.
> uc020.DefaultTestServiceProducer=org.apache.deltaspike.test.
> testcontrol.uc020.TestServiceLabelAProducer
> labeledAlternatives[b].org.apache.deltaspike.test.testcontrol.uc020.
> DefaultTestServiceProducer=org.apache.deltaspike.test.testcontrol.uc020.
> TestServiceLabelBProducer
>
> as mentioned earlier "you need to replace the producer-class and not the
> beans created by the producer"
>
> @everybody reading this thread later on:
> uc020 is the private/external example from stephen and not part of our
> test-suite, however, i'll add a corresponding uc-test to have a reference
> for similar questions.
>
> regards,
> gerhard
>
>
>
> http://www.irian.at
>
> Your JavaEE powerhouse -
> JavaEE Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache
> MyFaces, DeltaSpike and OpenWebBeans
>
> 2018-04-16 20:14 GMT+02:00 Stephen More <st...@gmail.com>:
>
> > My bad for copy paste, I did not see that I had DefaultTestService
> > instantiated in each producer. -Fixed ( BAD stephen )
> > I removed qualifiers.
> >
> > I think my apache-deltaspike.properties is configure properly - is it ?
> > I think my Alternate Producers are now correct - are they ?
> >
> > I still think there is something that I am not comprehending because the
> > tests are still failing.
> >
> >
> >
> >
> > On Mon, Apr 16, 2018 at 12:15 PM, Gerhard Petracek <
> > gerhard.petracek@gmail.com> wrote:
> >
> > > hi stephen,
> > >
> > > @#1:
> > > (by design) ds-test-control always uses/tests the whole
> > > application(/module+deps.) and the test-classpath the test is located
> in.
> > > you added a constellation in the test-classpath which violates the
> rules
> > of
> > > cdi -> as you can see (in the logs), you caused an
> > > AmbiguousResolutionException because [1] and [2] lead to 2 beans of the
> > > same type (and qualifiers).
> > > that are std./plain cdi-rules and isn't related to any kind of
> > alternative
> > > bean/s.
> > > since the test-classpath isn't isolated per test (because you test your
> > > application as a whole), all tests will fail in case you violate rules
> > > defined by cdi.
> > >
> > > in this case you sometimes see diff. exceptions (as the last
> exception),
> > > because in our test-suite (to test ds-test-control itself) we have some
> > > consistency checks e.g. in @AfterClass callbacks.
> > > due to that you see e.g. an IllegalStateException instead of an
> > > AmbiguousResolutionException at the very end (but the first issue was
> > > always an AmbiguousResolutionException).
> > > in your own application it would/should be always just one exception in
> > > case you violate cdi-rules (in this case the
> > AmbiguousResolutionException).
> > >
> > > @#2:
> > > i answered that already (following the std. cdi-rule/s you need to
> > replace
> > > the producer-class and not the beans created by the producer).
> > >
> > > @"#3":
> > > you don't need 3 qualifiers for 3 producers for the test you shared.
> > > you need
> > >  - @Exclude (or @Vetoed or @Typed() or nothing with cdi 1.1+ and
> > > bean-discovery-mode="annotated") for DefaultTestService, because you
> > have
> > > DefaultTestServiceProducer which creates beans of type TestService020
> (=
> > > std. cdi rules)
> > >  - @Alternative for your alternative producer (which should replace
> > > DefaultTestServiceProducer) (= std. cdi rules)
> > >  - a label to bind alternative-producer-x to test-x (+ the config for
> it
> > in
> > > an active config-source like apache-deltaspike.properties)
> > >
> > > most is std. cdi and really easier than you (might) think.
> > >
> > > regards,
> > > gerhard
> > >
> > > [1]
> > > https://github.com/mores/deltaspike/blob/altProduces/
> > > deltaspike/modules/test-control/impl/src/test/java/
> > > org/apache/deltaspike/test/testcontrol/uc020/
> DefaultTestServiceProducer.
> > > java
> > > [2]
> > > https://github.com/mores/deltaspike/blob/altProduces/
> > > deltaspike/modules/test-control/impl/src/test/java/
> > > org/apache/deltaspike/test/testcontrol/uc020/DefaultTestService.java
> > >
> > >
> > >
> > > http://www.irian.at
> > >
> > > Your JavaEE powerhouse -
> > > JavaEE Consulting, Development and
> > > Courses in English and German
> > >
> > > Professional Support for Apache
> > > MyFaces, DeltaSpike and OpenWebBeans
> > >
> > > 2018-04-16 16:21 GMT+02:00 Stephen More <st...@gmail.com>:
> > >
> > > > Ok, I updated my code, I had to add 3 Qualifiers to fix all other
> > tests.
> > > >
> > > > I now have 3 producers.
> > > >
> > > > I think it should be working as is but I still see:
> > > >
> > > >   TestServiceLabelBTest.resultB:44 expected:<[result-b]> but
> > > > was:<[default-result]>
> > > >   TestServiceTestLabelATest.resultA:44 expected:<[result-a]> but
> > > > was:<[default-result]>
> > > >
> > > >
> > > >
> > > > On Mon, Apr 16, 2018 at 8:22 AM, Stephen More <
> stephen.more@gmail.com>
> > > > wrote:
> > > >
> > > > > Usually I work on multiple tasks at a time, and I might not
> > communicate
> > > > as
> > > > > well as I should. I will try to be a little more verbose.
> > > > >
> > > > > Before I added DefaultTestServiceProducer to uc020, mvn clean
> install
> > > > > was working as expected "Tests run: 65, Failures: 0, Errors: 0,
> > > Skipped:
> > > > 0"
> > > > >
> > > > > By simply adding DefaultTestServiceProducer to uc020 I did not
> expect
> > > to
> > > > > get "Tests run: 53, Failures: 6, Errors: 22, Skipped: 0"
> > > > >
> > > > > 1. At this point I am no longer focusing on getting my uc020 to
> pass,
> > > but
> > > > > rather what the heck did I just do.....what caused this ? Is
> > something
> > > > else
> > > > > bigger going on that will cause my use case to fail anyway ?
> > > > >
> > > > > 2. In parallel I am also working on a private branch to get
> > Alternate
> > > > > Producers working....( again not working as expected ).
> > > > >
> > > > > I am at a loss to explain what is going on in 1, and 2 I think
> should
> > > be
> > > > > working, but is not.
> > > > >
> > > > >
> > > > > Why did my DefaultTestServiceProducer create all this havoc ?
> > > > >
> > > > >
> > > > >
> > > > >
> > > > > Failed tests:
> > > > >   InterceptedBeanTest.classLevelInterception:52
> > > > >   InterceptedBeanTest.methodLevelInterception:60
> > > > >   TestServiceLabelYTest.resultY:44 expected:<[result-y]> but
> > > > > was:<[default-result]>
> > > > >   TestServiceTestLabelXTest.resultX:44 expected:<[result-x]> but
> > > > > was:<[default-result]>
> > > > >   LabeledServiceTest.resultLbl:45 expected:<[result-lbl]> but
> > > > > was:<[alternative-result]>
> > > > >   TestServiceLabelXTest.resultX:43 expected:<result-[x]> but
> > > > > was:<result-[y]>
> > > > > Tests in error:
> > > > >   MockedRequestScopedBeanTest.org.apache.deltaspike.test.
> > > > > testcontrol.mock.uc001.MockedRequestScopedBeanTest » Deployment
> > > > >   MockedSessionScopedBeanAcrossMethodsTest.org.apache.
> > > > > deltaspike.test.testcontrol.mock.uc003.MockedSessionScopedBe
> > anAcrossM
> > > > ethodsTest
> > > > > » Deployment
> > > > >   MockedProducedBeanTest.org.apache.deltaspike.test.
> > > > > testcontrol.mock.uc005.MockedProducedBeanTest » Deployment
> > > > >   MockedTypedBeanTest.org.apache.deltaspike.test.
> > > testcontrol.mock.uc008.
> > > > MockedTypedBeanTest
> > > > > » Deployment
> > > > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > > > testcontrol.mock.uc009.MockedTypedProducedBeanTest » Deployment
> > > > >   MockedRequestScopedBeanWithInjectionTest.org.apache.
> > > > > deltaspike.test.testcontrol.mock.uc012.MockedRequestScopedBe
> > anWithInj
> > > > ectionTest
> > > > > » Deployment
> > > > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > > > testcontrol.mock.uc013.MockedTypedProducedBeanTest » Deployment
> > > > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > > > testcontrol.mock.uc014.MockedTypedProducedBeanTest » Deployment
> > > > > org.apache.deltaspike.test.testcontrol.uc001.
> > > > > RequestAndSessionScopePerTestMethodTest.org.apache.
> > > > > deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestM
> > > > ethodTest
> > > > >   Run 1: RequestAndSessionScopePerTestMethodTest.org.apache.
> > > > > deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestM
> > > > ethodTest
> > > > > » Deployment
> > > > >   Run 2: RequestAndSessionScopePerTestMethodTest.
> > > finalCheckAndCleanup:99
> > > > > IllegalState u...
> > > > >
> > > > > org.apache.deltaspike.test.testcontrol.uc002.
> > > > SessionScopePerTestClassTest.
> > > > > org.apache.deltaspike.test.testcontrol.uc002.
> > > > SessionScopePerTestClassTest
> > > > >   Run 1: SessionScopePerTestClassTest.org.apache.deltaspike.test.
> > > > > testcontrol.uc002.SessionScopePerTestClassTest » Deployment
> > > > >   Run 2: SessionScopePerTestClassTest.finalCheckAndCleanup:93
> > > > > IllegalState unexpected i...
> > > > >
> > > > >   SessionScopePerTestClassTest.org.apache.deltaspike.test.
> > > > > testcontrol.uc003.SessionScopePerTestClassTest » Deployment
> > > > > org.apache.deltaspike.test.testcontrol.uc004.
> > > > ProjectStageTestControlTest.
> > > > > org.apache.deltaspike.test.testcontrol.uc004.
> > > ProjectStageTestControlTest
> > > > >   Run 1: ProjectStageTestControlTest.org.apache.deltaspike.test.
> > > > > testcontrol.uc004.ProjectStageTestControlTest » Deployment
> > > > >   Run 2: ProjectStageTestControlTest>
> RequestAndSessionScopePerTestM
> > > > > ethodTest.finalCheckAndCleanup:99 » IllegalState
> > > > >
> > > > >   SkipExternalContainerTest.org.apache.deltaspike.test.
> > > > testcontrol.uc006.SkipExternalContainerTest
> > > > > » Deployment
> > > > >   ExtendedTest.org.apache.deltaspike.test.testcontrol.
> > > uc007.ExtendedTest
> > > > > » Deployment
> > > > >   JsfContainerPerTestMethodTest.org.apache.deltaspike.test.
> > > > > testcontrol.uc010.JsfContainerPerTestMethodTest » Deployment
> > > > >   InterceptedBeanTest.org.apache.deltaspike.test.
> testcontrol.uc011.
> > > > InterceptedBeanTest
> > > > > » Deployment
> > > > >   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontr
> > ol.uc014.
> > > > TestServiceNoLabelTest
> > > > > » Deployment
> > > > >   AlternativeServiceTest.org.apache.deltaspike.test.testcontr
> > ol.uc015.
> > > > AlternativeServiceTest
> > > > > » Deployment
> > > > >   TestServiceLabelYTest.org.apache.deltaspike.test.testcontro
> > l.uc016.
> > > > TestServiceLabelYTest
> > > > > » Deployment
> > > > >   TestServiceLabelBTest.resultB » AmbiguousResolution There is more
> > > than
> > > > > one Bea...
> > > > >   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontr
> > ol.uc020.
> > > > TestServiceNoLabelTest
> > > > > » Deployment
> > > > >   TestServiceTestLabelATest.org.apache.deltaspike.test.
> > > > testcontrol.uc020.TestServiceTestLabelATest
> > > > > » Deployment
> > > > >
> > > > >
> > > > >
> > > > > On Mon, Apr 16, 2018 at 1:33 AM, Gerhard Petracek <
> > > > > gerhard.petracek@gmail.com> wrote:
> > > > >
> > > > >> hi stephen,
> > > > >>
> > > > >> you only have one producer-class:
> > > > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > > > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > > > >> deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.java
> > > > >>
> > > > >> and @Alternative is only present at:
> > > > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > > > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > > > >> deltaspike/test/testcontrol/uc020/TestServiceLabelA.java#L24
> > > > >> and
> > > > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > > > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > > > >> deltaspike/test/testcontrol/uc020/TestServiceLabelB.java#L24
> > > > >>
> > > > >> instead you need an alternative producer-class (to replace
> > > > >> DefaultTestServiceProducer in your case).
> > > > >>
> > > > >> regards,
> > > > >> gerhard
> > > > >>
> > > > >> http://www.irian.at
> > > > >>
> > > > >> Your JavaEE powerhouse -
> > > > >> JavaEE Consulting, Development and
> > > > >> Courses in English and German
> > > > >>
> > > > >> Professional Support for Apache
> > > > >> MyFaces, DeltaSpike and OpenWebBeans
> > > > >>
> > > > >> 2018-04-15 21:02 GMT+02:00 Stephen More <st...@gmail.com>:
> > > > >>
> > > > >> > Correct. I have a default producer and 1 alternate producer. I
> can
> > > > >> enable
> > > > >> > the alternate producer by updating beans.xml.
> > > > >> > I am trying to do the same thing using labeledAlternatives....
> > > > >> >
> > > > >> > what changes should be made to META-INF/apache-deltaspike.
> > > properties
> > > > >> when
> > > > >> > using multiple alternate producers ?
> > > > >> >
> > > > >> >
> > > > >> > labeledAlternatives[testLabelX].org.apache.
> > > > deltaspike.test.testcontrol.
> > > > >> > uc014.TestService=org.apache.deltaspike.test.testcontrol.uc014.
> > > > >> > TestServiceLabelXProducer
> > > > >> > labeledAlternatives[y].org.apache.deltaspike.test.
> > > > >> > testcontrol.uc014.TestService=org.apache.deltaspike.test.
> > > > >> > testcontrol.uc014.TestServiceLabelYProducer
> > > > >> >
> > > > >> >
> > > > >> > ?
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> >
> > > > >> > On Sun, Apr 15, 2018 at 1:22 PM, Gerhard Petracek <
> > > > >> > gerhard.petracek@gmail.com> wrote:
> > > > >> >
> > > > >> > > hi stephen,
> > > > >> > >
> > > > >> > > as usual with cdi, you need to create an alternative-producer
> (=
> > > the
> > > > >> > > producer-bean itself needs to be replaced).
> > > > >> > >
> > > > >> > > regards,
> > > > >> > > gerhard
> > > > >> > >
> > > > >> > > http://www.irian.at
> > > > >> > >
> > > > >> > > Your JavaEE powerhouse -
> > > > >> > > JavaEE Consulting, Development and
> > > > >> > > Courses in English and German
> > > > >> > >
> > > > >> > > Professional Support for Apache
> > > > >> > > MyFaces, DeltaSpike and OpenWebBeans
> > > > >> > >
> > > > >> > >
> > > > >> > >
> > > > >> > > 2018-04-15 14:41 GMT+02:00 Stephen More <
> stephen.more@gmail.com
> > >:
> > > > >> > >
> > > > >> > > > "alternative-bean-x1 (instead of bean-x) in test1
> > > > >> > > > and alternative-bean-x2  (instead of bean-x) in test2"
> > > > >> > > >
> > > > >> > > > Yes, this is exactly what I am going after, unfortunately I
> > have
> > > > not
> > > > >> > > gotten
> > > > >> > > > it to work yet. In my case bean-x comes from a producer.
> > > > >> > > >
> > > > >> > > > Not sure if that is my problem so I started working on a use
> > > > case, I
> > > > >> > > made a
> > > > >> > > > clone of uc014 -> uc020 ( fixed name collisions in
> > > > >> > > > apache-deltaspike.properties ) but many other test cases
> > started
> > > > to
> > > > >> > fail
> > > > >> > > > outside of uc020.  ( https://github.com/mores/
> > > > >> > > deltaspike/tree/altProduces
> > > > >> > > > )
> > > > >> > > >
> > > > >> > > > Is this a possible bug ?
> > > > >> > > > -Thanks
> > > > >> > > >
> > > > >> > > >
> > > > >> > > > p.s. when a typo is made in apache-deltaspike.properties no
> > > > warning
> > > > >> or
> > > > >> > > > error was thrown that I could easily see
> > > > >> > > >
> > > > >> > > >
> > > > >> > > >
> > > > >> > > > On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
> > > > >> > > > gerhard.petracek@gmail.com> wrote:
> > > > >> > > >
> > > > >> > > > > hi stephen,
> > > > >> > > > >
> > > > >> > > > > if your alternative-instance/behavior should be different
> > for
> > > > >> "every"
> > > > >> > > > test
> > > > >> > > > > and you can't use a mock-manager, you need to use a
> producer
> > > > (for
> > > > >> the
> > > > >> > > > > original bean) and @Specializes it in the test-classpath.
> > > > >> > > > > in your test you change the state of the test-producer
> with
> > > > static
> > > > >> > > > methods
> > > > >> > > > > (e.g. set a flag or a whole instance which should be
> > returned
> > > by
> > > > >> the
> > > > >> > > > > test-producer).
> > > > >> > > > > -> it's std. cdi and/or java - no special concept is
> needed.
> > > > >> > > > >
> > > > >> > > > > if you would like to use alternative-bean-x1 (instead of
> > > bean-x)
> > > > >> in
> > > > >> > > test1
> > > > >> > > > > and alternative-bean-x2  (instead of bean-x) in test2, you
> > can
> > > > use
> > > > >> > > > labeled
> > > > >> > > > > alternatives (provided by ds > v1.8.1) - see e.g. [1] and
> > [2].
> > > > >> > > > > it's based on the new AlternativeBeanClassProvider spi
> > (which
> > > > you
> > > > >> > could
> > > > >> > > > use
> > > > >> > > > > as well to implement your own concepts) - see e.g. [3].
> > > > >> > > > >
> > > > >> > > > > regards,
> > > > >> > > > > gerhard
> > > > >> > > > >
> > > > >> > > > > [1]
> > > > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > > > >> > > > deltaspike/modules/test-
> > > > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > > >> > > testcontrol/uc014
> > > > >> > > > > [2]
> > > > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > > > >> > > > deltaspike/modules/test-
> > > > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > > >> > > testcontrol/uc015
> > > > >> > > > > [3]
> > > > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > > > >> > > > deltaspike/modules/test-
> > > > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > > >> > > testcontrol/uc016
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > > >
> > > > >> > > > > http://www.irian.at
> > > > >> > > > >
> > > > >> > > > > Your JavaEE powerhouse -
> > > > >> > > > > JavaEE Consulting, Development and
> > > > >> > > > > Courses in English and German
> > > > >> > > > >
> > > > >> > > > > Professional Support for Apache
> > > > >> > > > > MyFaces, DeltaSpike and OpenWebBeans
> > > > >> > > > >
> > > > >> > > > > 2018-04-14 15:24 GMT+02:00 Stephen More <
> > > stephen.more@gmail.com
> > > > >:
> > > > >> > > > >
> > > > >> > > > > > I have a need to run some unit tests with @Alternative -
> > > > >> > > mockedVersionA
> > > > >> > > > > > and other tests with @Alternative - mockedVersionB
> > > > >> > > > > > and other tests with @Alternative - mockedVersionC
> > > > >> > > > > >
> > > > >> > > > > > It looks like Arquillian can handle this utilizing
> > > ShrinkWrap
> > > > >> and
> > > > >> > > > > > @Deployment....
> > > > >> > > > > > addAsManifestResource( "mockedVersionA.xml","beans.
> xml");
> > > > >> > > > > > addAsManifestResource( "mockedVersionB.xml","beans.
> xml");
> > > > >> > > > > >
> > > > >> > > > > > Can I achieve the same functionality using
> CdiTestRunner ?
> > > > >> > > > > > -Thanks
> > > > >> > > > > >
> > > > >> > > > >
> > > > >> > > >
> > > > >> > >
> > > > >> >
> > > > >>
> > > > >
> > > > >
> > > >
> > >
> >
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Gerhard Petracek <ge...@gmail.com>.
hi stephen,

if you have an alternative bean, you need to extend the original one or
implement all interfaces to keep the same types. (= std. cdi rules)
in your case TestServiceLabelAProducer and TestServiceLabelBProducer need
to extend DefaultTestServiceProducer.

the labeled alternative config for your labels is:

labeledAlternatives[testLabelA].org.apache.deltaspike.test.testcontrol.uc020.DefaultTestServiceProducer=org.apache.deltaspike.test.testcontrol.uc020.TestServiceLabelAProducer
labeledAlternatives[b].org.apache.deltaspike.test.testcontrol.uc020.DefaultTestServiceProducer=org.apache.deltaspike.test.testcontrol.uc020.TestServiceLabelBProducer

as mentioned earlier "you need to replace the producer-class and not the
beans created by the producer"

@everybody reading this thread later on:
uc020 is the private/external example from stephen and not part of our
test-suite, however, i'll add a corresponding uc-test to have a reference
for similar questions.

regards,
gerhard



http://www.irian.at

Your JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache
MyFaces, DeltaSpike and OpenWebBeans

2018-04-16 20:14 GMT+02:00 Stephen More <st...@gmail.com>:

> My bad for copy paste, I did not see that I had DefaultTestService
> instantiated in each producer. -Fixed ( BAD stephen )
> I removed qualifiers.
>
> I think my apache-deltaspike.properties is configure properly - is it ?
> I think my Alternate Producers are now correct - are they ?
>
> I still think there is something that I am not comprehending because the
> tests are still failing.
>
>
>
>
> On Mon, Apr 16, 2018 at 12:15 PM, Gerhard Petracek <
> gerhard.petracek@gmail.com> wrote:
>
> > hi stephen,
> >
> > @#1:
> > (by design) ds-test-control always uses/tests the whole
> > application(/module+deps.) and the test-classpath the test is located in.
> > you added a constellation in the test-classpath which violates the rules
> of
> > cdi -> as you can see (in the logs), you caused an
> > AmbiguousResolutionException because [1] and [2] lead to 2 beans of the
> > same type (and qualifiers).
> > that are std./plain cdi-rules and isn't related to any kind of
> alternative
> > bean/s.
> > since the test-classpath isn't isolated per test (because you test your
> > application as a whole), all tests will fail in case you violate rules
> > defined by cdi.
> >
> > in this case you sometimes see diff. exceptions (as the last exception),
> > because in our test-suite (to test ds-test-control itself) we have some
> > consistency checks e.g. in @AfterClass callbacks.
> > due to that you see e.g. an IllegalStateException instead of an
> > AmbiguousResolutionException at the very end (but the first issue was
> > always an AmbiguousResolutionException).
> > in your own application it would/should be always just one exception in
> > case you violate cdi-rules (in this case the
> AmbiguousResolutionException).
> >
> > @#2:
> > i answered that already (following the std. cdi-rule/s you need to
> replace
> > the producer-class and not the beans created by the producer).
> >
> > @"#3":
> > you don't need 3 qualifiers for 3 producers for the test you shared.
> > you need
> >  - @Exclude (or @Vetoed or @Typed() or nothing with cdi 1.1+ and
> > bean-discovery-mode="annotated") for DefaultTestService, because you
> have
> > DefaultTestServiceProducer which creates beans of type TestService020 (=
> > std. cdi rules)
> >  - @Alternative for your alternative producer (which should replace
> > DefaultTestServiceProducer) (= std. cdi rules)
> >  - a label to bind alternative-producer-x to test-x (+ the config for it
> in
> > an active config-source like apache-deltaspike.properties)
> >
> > most is std. cdi and really easier than you (might) think.
> >
> > regards,
> > gerhard
> >
> > [1]
> > https://github.com/mores/deltaspike/blob/altProduces/
> > deltaspike/modules/test-control/impl/src/test/java/
> > org/apache/deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.
> > java
> > [2]
> > https://github.com/mores/deltaspike/blob/altProduces/
> > deltaspike/modules/test-control/impl/src/test/java/
> > org/apache/deltaspike/test/testcontrol/uc020/DefaultTestService.java
> >
> >
> >
> > http://www.irian.at
> >
> > Your JavaEE powerhouse -
> > JavaEE Consulting, Development and
> > Courses in English and German
> >
> > Professional Support for Apache
> > MyFaces, DeltaSpike and OpenWebBeans
> >
> > 2018-04-16 16:21 GMT+02:00 Stephen More <st...@gmail.com>:
> >
> > > Ok, I updated my code, I had to add 3 Qualifiers to fix all other
> tests.
> > >
> > > I now have 3 producers.
> > >
> > > I think it should be working as is but I still see:
> > >
> > >   TestServiceLabelBTest.resultB:44 expected:<[result-b]> but
> > > was:<[default-result]>
> > >   TestServiceTestLabelATest.resultA:44 expected:<[result-a]> but
> > > was:<[default-result]>
> > >
> > >
> > >
> > > On Mon, Apr 16, 2018 at 8:22 AM, Stephen More <st...@gmail.com>
> > > wrote:
> > >
> > > > Usually I work on multiple tasks at a time, and I might not
> communicate
> > > as
> > > > well as I should. I will try to be a little more verbose.
> > > >
> > > > Before I added DefaultTestServiceProducer to uc020, mvn clean install
> > > > was working as expected "Tests run: 65, Failures: 0, Errors: 0,
> > Skipped:
> > > 0"
> > > >
> > > > By simply adding DefaultTestServiceProducer to uc020 I did not expect
> > to
> > > > get "Tests run: 53, Failures: 6, Errors: 22, Skipped: 0"
> > > >
> > > > 1. At this point I am no longer focusing on getting my uc020 to pass,
> > but
> > > > rather what the heck did I just do.....what caused this ? Is
> something
> > > else
> > > > bigger going on that will cause my use case to fail anyway ?
> > > >
> > > > 2. In parallel I am also working on a private branch to get
> Alternate
> > > > Producers working....( again not working as expected ).
> > > >
> > > > I am at a loss to explain what is going on in 1, and 2 I think should
> > be
> > > > working, but is not.
> > > >
> > > >
> > > > Why did my DefaultTestServiceProducer create all this havoc ?
> > > >
> > > >
> > > >
> > > >
> > > > Failed tests:
> > > >   InterceptedBeanTest.classLevelInterception:52
> > > >   InterceptedBeanTest.methodLevelInterception:60
> > > >   TestServiceLabelYTest.resultY:44 expected:<[result-y]> but
> > > > was:<[default-result]>
> > > >   TestServiceTestLabelXTest.resultX:44 expected:<[result-x]> but
> > > > was:<[default-result]>
> > > >   LabeledServiceTest.resultLbl:45 expected:<[result-lbl]> but
> > > > was:<[alternative-result]>
> > > >   TestServiceLabelXTest.resultX:43 expected:<result-[x]> but
> > > > was:<result-[y]>
> > > > Tests in error:
> > > >   MockedRequestScopedBeanTest.org.apache.deltaspike.test.
> > > > testcontrol.mock.uc001.MockedRequestScopedBeanTest » Deployment
> > > >   MockedSessionScopedBeanAcrossMethodsTest.org.apache.
> > > > deltaspike.test.testcontrol.mock.uc003.MockedSessionScopedBe
> anAcrossM
> > > ethodsTest
> > > > » Deployment
> > > >   MockedProducedBeanTest.org.apache.deltaspike.test.
> > > > testcontrol.mock.uc005.MockedProducedBeanTest » Deployment
> > > >   MockedTypedBeanTest.org.apache.deltaspike.test.
> > testcontrol.mock.uc008.
> > > MockedTypedBeanTest
> > > > » Deployment
> > > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > > testcontrol.mock.uc009.MockedTypedProducedBeanTest » Deployment
> > > >   MockedRequestScopedBeanWithInjectionTest.org.apache.
> > > > deltaspike.test.testcontrol.mock.uc012.MockedRequestScopedBe
> anWithInj
> > > ectionTest
> > > > » Deployment
> > > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > > testcontrol.mock.uc013.MockedTypedProducedBeanTest » Deployment
> > > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > > testcontrol.mock.uc014.MockedTypedProducedBeanTest » Deployment
> > > > org.apache.deltaspike.test.testcontrol.uc001.
> > > > RequestAndSessionScopePerTestMethodTest.org.apache.
> > > > deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestM
> > > ethodTest
> > > >   Run 1: RequestAndSessionScopePerTestMethodTest.org.apache.
> > > > deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestM
> > > ethodTest
> > > > » Deployment
> > > >   Run 2: RequestAndSessionScopePerTestMethodTest.
> > finalCheckAndCleanup:99
> > > > IllegalState u...
> > > >
> > > > org.apache.deltaspike.test.testcontrol.uc002.
> > > SessionScopePerTestClassTest.
> > > > org.apache.deltaspike.test.testcontrol.uc002.
> > > SessionScopePerTestClassTest
> > > >   Run 1: SessionScopePerTestClassTest.org.apache.deltaspike.test.
> > > > testcontrol.uc002.SessionScopePerTestClassTest » Deployment
> > > >   Run 2: SessionScopePerTestClassTest.finalCheckAndCleanup:93
> > > > IllegalState unexpected i...
> > > >
> > > >   SessionScopePerTestClassTest.org.apache.deltaspike.test.
> > > > testcontrol.uc003.SessionScopePerTestClassTest » Deployment
> > > > org.apache.deltaspike.test.testcontrol.uc004.
> > > ProjectStageTestControlTest.
> > > > org.apache.deltaspike.test.testcontrol.uc004.
> > ProjectStageTestControlTest
> > > >   Run 1: ProjectStageTestControlTest.org.apache.deltaspike.test.
> > > > testcontrol.uc004.ProjectStageTestControlTest » Deployment
> > > >   Run 2: ProjectStageTestControlTest>RequestAndSessionScopePerTestM
> > > > ethodTest.finalCheckAndCleanup:99 » IllegalState
> > > >
> > > >   SkipExternalContainerTest.org.apache.deltaspike.test.
> > > testcontrol.uc006.SkipExternalContainerTest
> > > > » Deployment
> > > >   ExtendedTest.org.apache.deltaspike.test.testcontrol.
> > uc007.ExtendedTest
> > > > » Deployment
> > > >   JsfContainerPerTestMethodTest.org.apache.deltaspike.test.
> > > > testcontrol.uc010.JsfContainerPerTestMethodTest » Deployment
> > > >   InterceptedBeanTest.org.apache.deltaspike.test.testcontrol.uc011.
> > > InterceptedBeanTest
> > > > » Deployment
> > > >   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontr
> ol.uc014.
> > > TestServiceNoLabelTest
> > > > » Deployment
> > > >   AlternativeServiceTest.org.apache.deltaspike.test.testcontr
> ol.uc015.
> > > AlternativeServiceTest
> > > > » Deployment
> > > >   TestServiceLabelYTest.org.apache.deltaspike.test.testcontro
> l.uc016.
> > > TestServiceLabelYTest
> > > > » Deployment
> > > >   TestServiceLabelBTest.resultB » AmbiguousResolution There is more
> > than
> > > > one Bea...
> > > >   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontr
> ol.uc020.
> > > TestServiceNoLabelTest
> > > > » Deployment
> > > >   TestServiceTestLabelATest.org.apache.deltaspike.test.
> > > testcontrol.uc020.TestServiceTestLabelATest
> > > > » Deployment
> > > >
> > > >
> > > >
> > > > On Mon, Apr 16, 2018 at 1:33 AM, Gerhard Petracek <
> > > > gerhard.petracek@gmail.com> wrote:
> > > >
> > > >> hi stephen,
> > > >>
> > > >> you only have one producer-class:
> > > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > > >> deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.java
> > > >>
> > > >> and @Alternative is only present at:
> > > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > > >> deltaspike/test/testcontrol/uc020/TestServiceLabelA.java#L24
> > > >> and
> > > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > > >> deltaspike/test/testcontrol/uc020/TestServiceLabelB.java#L24
> > > >>
> > > >> instead you need an alternative producer-class (to replace
> > > >> DefaultTestServiceProducer in your case).
> > > >>
> > > >> regards,
> > > >> gerhard
> > > >>
> > > >> http://www.irian.at
> > > >>
> > > >> Your JavaEE powerhouse -
> > > >> JavaEE Consulting, Development and
> > > >> Courses in English and German
> > > >>
> > > >> Professional Support for Apache
> > > >> MyFaces, DeltaSpike and OpenWebBeans
> > > >>
> > > >> 2018-04-15 21:02 GMT+02:00 Stephen More <st...@gmail.com>:
> > > >>
> > > >> > Correct. I have a default producer and 1 alternate producer. I can
> > > >> enable
> > > >> > the alternate producer by updating beans.xml.
> > > >> > I am trying to do the same thing using labeledAlternatives....
> > > >> >
> > > >> > what changes should be made to META-INF/apache-deltaspike.
> > properties
> > > >> when
> > > >> > using multiple alternate producers ?
> > > >> >
> > > >> >
> > > >> > labeledAlternatives[testLabelX].org.apache.
> > > deltaspike.test.testcontrol.
> > > >> > uc014.TestService=org.apache.deltaspike.test.testcontrol.uc014.
> > > >> > TestServiceLabelXProducer
> > > >> > labeledAlternatives[y].org.apache.deltaspike.test.
> > > >> > testcontrol.uc014.TestService=org.apache.deltaspike.test.
> > > >> > testcontrol.uc014.TestServiceLabelYProducer
> > > >> >
> > > >> >
> > > >> > ?
> > > >> >
> > > >> >
> > > >> >
> > > >> >
> > > >> > On Sun, Apr 15, 2018 at 1:22 PM, Gerhard Petracek <
> > > >> > gerhard.petracek@gmail.com> wrote:
> > > >> >
> > > >> > > hi stephen,
> > > >> > >
> > > >> > > as usual with cdi, you need to create an alternative-producer (=
> > the
> > > >> > > producer-bean itself needs to be replaced).
> > > >> > >
> > > >> > > regards,
> > > >> > > gerhard
> > > >> > >
> > > >> > > http://www.irian.at
> > > >> > >
> > > >> > > Your JavaEE powerhouse -
> > > >> > > JavaEE Consulting, Development and
> > > >> > > Courses in English and German
> > > >> > >
> > > >> > > Professional Support for Apache
> > > >> > > MyFaces, DeltaSpike and OpenWebBeans
> > > >> > >
> > > >> > >
> > > >> > >
> > > >> > > 2018-04-15 14:41 GMT+02:00 Stephen More <stephen.more@gmail.com
> >:
> > > >> > >
> > > >> > > > "alternative-bean-x1 (instead of bean-x) in test1
> > > >> > > > and alternative-bean-x2  (instead of bean-x) in test2"
> > > >> > > >
> > > >> > > > Yes, this is exactly what I am going after, unfortunately I
> have
> > > not
> > > >> > > gotten
> > > >> > > > it to work yet. In my case bean-x comes from a producer.
> > > >> > > >
> > > >> > > > Not sure if that is my problem so I started working on a use
> > > case, I
> > > >> > > made a
> > > >> > > > clone of uc014 -> uc020 ( fixed name collisions in
> > > >> > > > apache-deltaspike.properties ) but many other test cases
> started
> > > to
> > > >> > fail
> > > >> > > > outside of uc020.  ( https://github.com/mores/
> > > >> > > deltaspike/tree/altProduces
> > > >> > > > )
> > > >> > > >
> > > >> > > > Is this a possible bug ?
> > > >> > > > -Thanks
> > > >> > > >
> > > >> > > >
> > > >> > > > p.s. when a typo is made in apache-deltaspike.properties no
> > > warning
> > > >> or
> > > >> > > > error was thrown that I could easily see
> > > >> > > >
> > > >> > > >
> > > >> > > >
> > > >> > > > On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
> > > >> > > > gerhard.petracek@gmail.com> wrote:
> > > >> > > >
> > > >> > > > > hi stephen,
> > > >> > > > >
> > > >> > > > > if your alternative-instance/behavior should be different
> for
> > > >> "every"
> > > >> > > > test
> > > >> > > > > and you can't use a mock-manager, you need to use a producer
> > > (for
> > > >> the
> > > >> > > > > original bean) and @Specializes it in the test-classpath.
> > > >> > > > > in your test you change the state of the test-producer with
> > > static
> > > >> > > > methods
> > > >> > > > > (e.g. set a flag or a whole instance which should be
> returned
> > by
> > > >> the
> > > >> > > > > test-producer).
> > > >> > > > > -> it's std. cdi and/or java - no special concept is needed.
> > > >> > > > >
> > > >> > > > > if you would like to use alternative-bean-x1 (instead of
> > bean-x)
> > > >> in
> > > >> > > test1
> > > >> > > > > and alternative-bean-x2  (instead of bean-x) in test2, you
> can
> > > use
> > > >> > > > labeled
> > > >> > > > > alternatives (provided by ds > v1.8.1) - see e.g. [1] and
> [2].
> > > >> > > > > it's based on the new AlternativeBeanClassProvider spi
> (which
> > > you
> > > >> > could
> > > >> > > > use
> > > >> > > > > as well to implement your own concepts) - see e.g. [3].
> > > >> > > > >
> > > >> > > > > regards,
> > > >> > > > > gerhard
> > > >> > > > >
> > > >> > > > > [1]
> > > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > > >> > > > deltaspike/modules/test-
> > > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > >> > > testcontrol/uc014
> > > >> > > > > [2]
> > > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > > >> > > > deltaspike/modules/test-
> > > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > >> > > testcontrol/uc015
> > > >> > > > > [3]
> > > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > > >> > > > deltaspike/modules/test-
> > > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > >> > > testcontrol/uc016
> > > >> > > > >
> > > >> > > > >
> > > >> > > > >
> > > >> > > > > http://www.irian.at
> > > >> > > > >
> > > >> > > > > Your JavaEE powerhouse -
> > > >> > > > > JavaEE Consulting, Development and
> > > >> > > > > Courses in English and German
> > > >> > > > >
> > > >> > > > > Professional Support for Apache
> > > >> > > > > MyFaces, DeltaSpike and OpenWebBeans
> > > >> > > > >
> > > >> > > > > 2018-04-14 15:24 GMT+02:00 Stephen More <
> > stephen.more@gmail.com
> > > >:
> > > >> > > > >
> > > >> > > > > > I have a need to run some unit tests with @Alternative -
> > > >> > > mockedVersionA
> > > >> > > > > > and other tests with @Alternative - mockedVersionB
> > > >> > > > > > and other tests with @Alternative - mockedVersionC
> > > >> > > > > >
> > > >> > > > > > It looks like Arquillian can handle this utilizing
> > ShrinkWrap
> > > >> and
> > > >> > > > > > @Deployment....
> > > >> > > > > > addAsManifestResource( "mockedVersionA.xml","beans.xml");
> > > >> > > > > > addAsManifestResource( "mockedVersionB.xml","beans.xml");
> > > >> > > > > >
> > > >> > > > > > Can I achieve the same functionality using CdiTestRunner ?
> > > >> > > > > > -Thanks
> > > >> > > > > >
> > > >> > > > >
> > > >> > > >
> > > >> > >
> > > >> >
> > > >>
> > > >
> > > >
> > >
> >
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Stephen More <st...@gmail.com>.
My bad for copy paste, I did not see that I had DefaultTestService
instantiated in each producer. -Fixed ( BAD stephen )
I removed qualifiers.

I think my apache-deltaspike.properties is configure properly - is it ?
I think my Alternate Producers are now correct - are they ?

I still think there is something that I am not comprehending because the
tests are still failing.




On Mon, Apr 16, 2018 at 12:15 PM, Gerhard Petracek <
gerhard.petracek@gmail.com> wrote:

> hi stephen,
>
> @#1:
> (by design) ds-test-control always uses/tests the whole
> application(/module+deps.) and the test-classpath the test is located in.
> you added a constellation in the test-classpath which violates the rules of
> cdi -> as you can see (in the logs), you caused an
> AmbiguousResolutionException because [1] and [2] lead to 2 beans of the
> same type (and qualifiers).
> that are std./plain cdi-rules and isn't related to any kind of alternative
> bean/s.
> since the test-classpath isn't isolated per test (because you test your
> application as a whole), all tests will fail in case you violate rules
> defined by cdi.
>
> in this case you sometimes see diff. exceptions (as the last exception),
> because in our test-suite (to test ds-test-control itself) we have some
> consistency checks e.g. in @AfterClass callbacks.
> due to that you see e.g. an IllegalStateException instead of an
> AmbiguousResolutionException at the very end (but the first issue was
> always an AmbiguousResolutionException).
> in your own application it would/should be always just one exception in
> case you violate cdi-rules (in this case the AmbiguousResolutionException).
>
> @#2:
> i answered that already (following the std. cdi-rule/s you need to replace
> the producer-class and not the beans created by the producer).
>
> @"#3":
> you don't need 3 qualifiers for 3 producers for the test you shared.
> you need
>  - @Exclude (or @Vetoed or @Typed() or nothing with cdi 1.1+ and
> bean-discovery-mode="annotated") for DefaultTestService, because you have
> DefaultTestServiceProducer which creates beans of type TestService020 (=
> std. cdi rules)
>  - @Alternative for your alternative producer (which should replace
> DefaultTestServiceProducer) (= std. cdi rules)
>  - a label to bind alternative-producer-x to test-x (+ the config for it in
> an active config-source like apache-deltaspike.properties)
>
> most is std. cdi and really easier than you (might) think.
>
> regards,
> gerhard
>
> [1]
> https://github.com/mores/deltaspike/blob/altProduces/
> deltaspike/modules/test-control/impl/src/test/java/
> org/apache/deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.
> java
> [2]
> https://github.com/mores/deltaspike/blob/altProduces/
> deltaspike/modules/test-control/impl/src/test/java/
> org/apache/deltaspike/test/testcontrol/uc020/DefaultTestService.java
>
>
>
> http://www.irian.at
>
> Your JavaEE powerhouse -
> JavaEE Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache
> MyFaces, DeltaSpike and OpenWebBeans
>
> 2018-04-16 16:21 GMT+02:00 Stephen More <st...@gmail.com>:
>
> > Ok, I updated my code, I had to add 3 Qualifiers to fix all other tests.
> >
> > I now have 3 producers.
> >
> > I think it should be working as is but I still see:
> >
> >   TestServiceLabelBTest.resultB:44 expected:<[result-b]> but
> > was:<[default-result]>
> >   TestServiceTestLabelATest.resultA:44 expected:<[result-a]> but
> > was:<[default-result]>
> >
> >
> >
> > On Mon, Apr 16, 2018 at 8:22 AM, Stephen More <st...@gmail.com>
> > wrote:
> >
> > > Usually I work on multiple tasks at a time, and I might not communicate
> > as
> > > well as I should. I will try to be a little more verbose.
> > >
> > > Before I added DefaultTestServiceProducer to uc020, mvn clean install
> > > was working as expected "Tests run: 65, Failures: 0, Errors: 0,
> Skipped:
> > 0"
> > >
> > > By simply adding DefaultTestServiceProducer to uc020 I did not expect
> to
> > > get "Tests run: 53, Failures: 6, Errors: 22, Skipped: 0"
> > >
> > > 1. At this point I am no longer focusing on getting my uc020 to pass,
> but
> > > rather what the heck did I just do.....what caused this ? Is something
> > else
> > > bigger going on that will cause my use case to fail anyway ?
> > >
> > > 2. In parallel I am also working on a private branch to get  Alternate
> > > Producers working....( again not working as expected ).
> > >
> > > I am at a loss to explain what is going on in 1, and 2 I think should
> be
> > > working, but is not.
> > >
> > >
> > > Why did my DefaultTestServiceProducer create all this havoc ?
> > >
> > >
> > >
> > >
> > > Failed tests:
> > >   InterceptedBeanTest.classLevelInterception:52
> > >   InterceptedBeanTest.methodLevelInterception:60
> > >   TestServiceLabelYTest.resultY:44 expected:<[result-y]> but
> > > was:<[default-result]>
> > >   TestServiceTestLabelXTest.resultX:44 expected:<[result-x]> but
> > > was:<[default-result]>
> > >   LabeledServiceTest.resultLbl:45 expected:<[result-lbl]> but
> > > was:<[alternative-result]>
> > >   TestServiceLabelXTest.resultX:43 expected:<result-[x]> but
> > > was:<result-[y]>
> > > Tests in error:
> > >   MockedRequestScopedBeanTest.org.apache.deltaspike.test.
> > > testcontrol.mock.uc001.MockedRequestScopedBeanTest » Deployment
> > >   MockedSessionScopedBeanAcrossMethodsTest.org.apache.
> > > deltaspike.test.testcontrol.mock.uc003.MockedSessionScopedBeanAcrossM
> > ethodsTest
> > > » Deployment
> > >   MockedProducedBeanTest.org.apache.deltaspike.test.
> > > testcontrol.mock.uc005.MockedProducedBeanTest » Deployment
> > >   MockedTypedBeanTest.org.apache.deltaspike.test.
> testcontrol.mock.uc008.
> > MockedTypedBeanTest
> > > » Deployment
> > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > testcontrol.mock.uc009.MockedTypedProducedBeanTest » Deployment
> > >   MockedRequestScopedBeanWithInjectionTest.org.apache.
> > > deltaspike.test.testcontrol.mock.uc012.MockedRequestScopedBeanWithInj
> > ectionTest
> > > » Deployment
> > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > testcontrol.mock.uc013.MockedTypedProducedBeanTest » Deployment
> > >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > > testcontrol.mock.uc014.MockedTypedProducedBeanTest » Deployment
> > > org.apache.deltaspike.test.testcontrol.uc001.
> > > RequestAndSessionScopePerTestMethodTest.org.apache.
> > > deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestM
> > ethodTest
> > >   Run 1: RequestAndSessionScopePerTestMethodTest.org.apache.
> > > deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestM
> > ethodTest
> > > » Deployment
> > >   Run 2: RequestAndSessionScopePerTestMethodTest.
> finalCheckAndCleanup:99
> > > IllegalState u...
> > >
> > > org.apache.deltaspike.test.testcontrol.uc002.
> > SessionScopePerTestClassTest.
> > > org.apache.deltaspike.test.testcontrol.uc002.
> > SessionScopePerTestClassTest
> > >   Run 1: SessionScopePerTestClassTest.org.apache.deltaspike.test.
> > > testcontrol.uc002.SessionScopePerTestClassTest » Deployment
> > >   Run 2: SessionScopePerTestClassTest.finalCheckAndCleanup:93
> > > IllegalState unexpected i...
> > >
> > >   SessionScopePerTestClassTest.org.apache.deltaspike.test.
> > > testcontrol.uc003.SessionScopePerTestClassTest » Deployment
> > > org.apache.deltaspike.test.testcontrol.uc004.
> > ProjectStageTestControlTest.
> > > org.apache.deltaspike.test.testcontrol.uc004.
> ProjectStageTestControlTest
> > >   Run 1: ProjectStageTestControlTest.org.apache.deltaspike.test.
> > > testcontrol.uc004.ProjectStageTestControlTest » Deployment
> > >   Run 2: ProjectStageTestControlTest>RequestAndSessionScopePerTestM
> > > ethodTest.finalCheckAndCleanup:99 » IllegalState
> > >
> > >   SkipExternalContainerTest.org.apache.deltaspike.test.
> > testcontrol.uc006.SkipExternalContainerTest
> > > » Deployment
> > >   ExtendedTest.org.apache.deltaspike.test.testcontrol.
> uc007.ExtendedTest
> > > » Deployment
> > >   JsfContainerPerTestMethodTest.org.apache.deltaspike.test.
> > > testcontrol.uc010.JsfContainerPerTestMethodTest » Deployment
> > >   InterceptedBeanTest.org.apache.deltaspike.test.testcontrol.uc011.
> > InterceptedBeanTest
> > > » Deployment
> > >   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontrol.uc014.
> > TestServiceNoLabelTest
> > > » Deployment
> > >   AlternativeServiceTest.org.apache.deltaspike.test.testcontrol.uc015.
> > AlternativeServiceTest
> > > » Deployment
> > >   TestServiceLabelYTest.org.apache.deltaspike.test.testcontrol.uc016.
> > TestServiceLabelYTest
> > > » Deployment
> > >   TestServiceLabelBTest.resultB » AmbiguousResolution There is more
> than
> > > one Bea...
> > >   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontrol.uc020.
> > TestServiceNoLabelTest
> > > » Deployment
> > >   TestServiceTestLabelATest.org.apache.deltaspike.test.
> > testcontrol.uc020.TestServiceTestLabelATest
> > > » Deployment
> > >
> > >
> > >
> > > On Mon, Apr 16, 2018 at 1:33 AM, Gerhard Petracek <
> > > gerhard.petracek@gmail.com> wrote:
> > >
> > >> hi stephen,
> > >>
> > >> you only have one producer-class:
> > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > >> deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.java
> > >>
> > >> and @Alternative is only present at:
> > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > >> deltaspike/test/testcontrol/uc020/TestServiceLabelA.java#L24
> > >> and
> > >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> > >> ike/modules/test-control/impl/src/test/java/org/apache/
> > >> deltaspike/test/testcontrol/uc020/TestServiceLabelB.java#L24
> > >>
> > >> instead you need an alternative producer-class (to replace
> > >> DefaultTestServiceProducer in your case).
> > >>
> > >> regards,
> > >> gerhard
> > >>
> > >> http://www.irian.at
> > >>
> > >> Your JavaEE powerhouse -
> > >> JavaEE Consulting, Development and
> > >> Courses in English and German
> > >>
> > >> Professional Support for Apache
> > >> MyFaces, DeltaSpike and OpenWebBeans
> > >>
> > >> 2018-04-15 21:02 GMT+02:00 Stephen More <st...@gmail.com>:
> > >>
> > >> > Correct. I have a default producer and 1 alternate producer. I can
> > >> enable
> > >> > the alternate producer by updating beans.xml.
> > >> > I am trying to do the same thing using labeledAlternatives....
> > >> >
> > >> > what changes should be made to META-INF/apache-deltaspike.
> properties
> > >> when
> > >> > using multiple alternate producers ?
> > >> >
> > >> >
> > >> > labeledAlternatives[testLabelX].org.apache.
> > deltaspike.test.testcontrol.
> > >> > uc014.TestService=org.apache.deltaspike.test.testcontrol.uc014.
> > >> > TestServiceLabelXProducer
> > >> > labeledAlternatives[y].org.apache.deltaspike.test.
> > >> > testcontrol.uc014.TestService=org.apache.deltaspike.test.
> > >> > testcontrol.uc014.TestServiceLabelYProducer
> > >> >
> > >> >
> > >> > ?
> > >> >
> > >> >
> > >> >
> > >> >
> > >> > On Sun, Apr 15, 2018 at 1:22 PM, Gerhard Petracek <
> > >> > gerhard.petracek@gmail.com> wrote:
> > >> >
> > >> > > hi stephen,
> > >> > >
> > >> > > as usual with cdi, you need to create an alternative-producer (=
> the
> > >> > > producer-bean itself needs to be replaced).
> > >> > >
> > >> > > regards,
> > >> > > gerhard
> > >> > >
> > >> > > http://www.irian.at
> > >> > >
> > >> > > Your JavaEE powerhouse -
> > >> > > JavaEE Consulting, Development and
> > >> > > Courses in English and German
> > >> > >
> > >> > > Professional Support for Apache
> > >> > > MyFaces, DeltaSpike and OpenWebBeans
> > >> > >
> > >> > >
> > >> > >
> > >> > > 2018-04-15 14:41 GMT+02:00 Stephen More <st...@gmail.com>:
> > >> > >
> > >> > > > "alternative-bean-x1 (instead of bean-x) in test1
> > >> > > > and alternative-bean-x2  (instead of bean-x) in test2"
> > >> > > >
> > >> > > > Yes, this is exactly what I am going after, unfortunately I have
> > not
> > >> > > gotten
> > >> > > > it to work yet. In my case bean-x comes from a producer.
> > >> > > >
> > >> > > > Not sure if that is my problem so I started working on a use
> > case, I
> > >> > > made a
> > >> > > > clone of uc014 -> uc020 ( fixed name collisions in
> > >> > > > apache-deltaspike.properties ) but many other test cases started
> > to
> > >> > fail
> > >> > > > outside of uc020.  ( https://github.com/mores/
> > >> > > deltaspike/tree/altProduces
> > >> > > > )
> > >> > > >
> > >> > > > Is this a possible bug ?
> > >> > > > -Thanks
> > >> > > >
> > >> > > >
> > >> > > > p.s. when a typo is made in apache-deltaspike.properties no
> > warning
> > >> or
> > >> > > > error was thrown that I could easily see
> > >> > > >
> > >> > > >
> > >> > > >
> > >> > > > On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
> > >> > > > gerhard.petracek@gmail.com> wrote:
> > >> > > >
> > >> > > > > hi stephen,
> > >> > > > >
> > >> > > > > if your alternative-instance/behavior should be different for
> > >> "every"
> > >> > > > test
> > >> > > > > and you can't use a mock-manager, you need to use a producer
> > (for
> > >> the
> > >> > > > > original bean) and @Specializes it in the test-classpath.
> > >> > > > > in your test you change the state of the test-producer with
> > static
> > >> > > > methods
> > >> > > > > (e.g. set a flag or a whole instance which should be returned
> by
> > >> the
> > >> > > > > test-producer).
> > >> > > > > -> it's std. cdi and/or java - no special concept is needed.
> > >> > > > >
> > >> > > > > if you would like to use alternative-bean-x1 (instead of
> bean-x)
> > >> in
> > >> > > test1
> > >> > > > > and alternative-bean-x2  (instead of bean-x) in test2, you can
> > use
> > >> > > > labeled
> > >> > > > > alternatives (provided by ds > v1.8.1) - see e.g. [1] and [2].
> > >> > > > > it's based on the new AlternativeBeanClassProvider spi (which
> > you
> > >> > could
> > >> > > > use
> > >> > > > > as well to implement your own concepts) - see e.g. [3].
> > >> > > > >
> > >> > > > > regards,
> > >> > > > > gerhard
> > >> > > > >
> > >> > > > > [1]
> > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > >> > > > deltaspike/modules/test-
> > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > >> > > testcontrol/uc014
> > >> > > > > [2]
> > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > >> > > > deltaspike/modules/test-
> > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > >> > > testcontrol/uc015
> > >> > > > > [3]
> > >> > > > > https://github.com/apache/deltaspike/tree/master/
> > >> > > > deltaspike/modules/test-
> > >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > >> > > testcontrol/uc016
> > >> > > > >
> > >> > > > >
> > >> > > > >
> > >> > > > > http://www.irian.at
> > >> > > > >
> > >> > > > > Your JavaEE powerhouse -
> > >> > > > > JavaEE Consulting, Development and
> > >> > > > > Courses in English and German
> > >> > > > >
> > >> > > > > Professional Support for Apache
> > >> > > > > MyFaces, DeltaSpike and OpenWebBeans
> > >> > > > >
> > >> > > > > 2018-04-14 15:24 GMT+02:00 Stephen More <
> stephen.more@gmail.com
> > >:
> > >> > > > >
> > >> > > > > > I have a need to run some unit tests with @Alternative -
> > >> > > mockedVersionA
> > >> > > > > > and other tests with @Alternative - mockedVersionB
> > >> > > > > > and other tests with @Alternative - mockedVersionC
> > >> > > > > >
> > >> > > > > > It looks like Arquillian can handle this utilizing
> ShrinkWrap
> > >> and
> > >> > > > > > @Deployment....
> > >> > > > > > addAsManifestResource( "mockedVersionA.xml","beans.xml");
> > >> > > > > > addAsManifestResource( "mockedVersionB.xml","beans.xml");
> > >> > > > > >
> > >> > > > > > Can I achieve the same functionality using CdiTestRunner ?
> > >> > > > > > -Thanks
> > >> > > > > >
> > >> > > > >
> > >> > > >
> > >> > >
> > >> >
> > >>
> > >
> > >
> >
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Gerhard Petracek <ge...@gmail.com>.
hi stephen,

@#1:
(by design) ds-test-control always uses/tests the whole
application(/module+deps.) and the test-classpath the test is located in.
you added a constellation in the test-classpath which violates the rules of
cdi -> as you can see (in the logs), you caused an
AmbiguousResolutionException because [1] and [2] lead to 2 beans of the
same type (and qualifiers).
that are std./plain cdi-rules and isn't related to any kind of alternative
bean/s.
since the test-classpath isn't isolated per test (because you test your
application as a whole), all tests will fail in case you violate rules
defined by cdi.

in this case you sometimes see diff. exceptions (as the last exception),
because in our test-suite (to test ds-test-control itself) we have some
consistency checks e.g. in @AfterClass callbacks.
due to that you see e.g. an IllegalStateException instead of an
AmbiguousResolutionException at the very end (but the first issue was
always an AmbiguousResolutionException).
in your own application it would/should be always just one exception in
case you violate cdi-rules (in this case the AmbiguousResolutionException).

@#2:
i answered that already (following the std. cdi-rule/s you need to replace
the producer-class and not the beans created by the producer).

@"#3":
you don't need 3 qualifiers for 3 producers for the test you shared.
you need
 - @Exclude (or @Vetoed or @Typed() or nothing with cdi 1.1+ and
bean-discovery-mode="annotated") for DefaultTestService, because you have
DefaultTestServiceProducer which creates beans of type TestService020 (=
std. cdi rules)
 - @Alternative for your alternative producer (which should replace
DefaultTestServiceProducer) (= std. cdi rules)
 - a label to bind alternative-producer-x to test-x (+ the config for it in
an active config-source like apache-deltaspike.properties)

most is std. cdi and really easier than you (might) think.

regards,
gerhard

[1]
https://github.com/mores/deltaspike/blob/altProduces/deltaspike/modules/test-control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.java
[2]
https://github.com/mores/deltaspike/blob/altProduces/deltaspike/modules/test-control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc020/DefaultTestService.java



http://www.irian.at

Your JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache
MyFaces, DeltaSpike and OpenWebBeans

2018-04-16 16:21 GMT+02:00 Stephen More <st...@gmail.com>:

> Ok, I updated my code, I had to add 3 Qualifiers to fix all other tests.
>
> I now have 3 producers.
>
> I think it should be working as is but I still see:
>
>   TestServiceLabelBTest.resultB:44 expected:<[result-b]> but
> was:<[default-result]>
>   TestServiceTestLabelATest.resultA:44 expected:<[result-a]> but
> was:<[default-result]>
>
>
>
> On Mon, Apr 16, 2018 at 8:22 AM, Stephen More <st...@gmail.com>
> wrote:
>
> > Usually I work on multiple tasks at a time, and I might not communicate
> as
> > well as I should. I will try to be a little more verbose.
> >
> > Before I added DefaultTestServiceProducer to uc020, mvn clean install
> > was working as expected "Tests run: 65, Failures: 0, Errors: 0, Skipped:
> 0"
> >
> > By simply adding DefaultTestServiceProducer to uc020 I did not expect to
> > get "Tests run: 53, Failures: 6, Errors: 22, Skipped: 0"
> >
> > 1. At this point I am no longer focusing on getting my uc020 to pass, but
> > rather what the heck did I just do.....what caused this ? Is something
> else
> > bigger going on that will cause my use case to fail anyway ?
> >
> > 2. In parallel I am also working on a private branch to get  Alternate
> > Producers working....( again not working as expected ).
> >
> > I am at a loss to explain what is going on in 1, and 2 I think should be
> > working, but is not.
> >
> >
> > Why did my DefaultTestServiceProducer create all this havoc ?
> >
> >
> >
> >
> > Failed tests:
> >   InterceptedBeanTest.classLevelInterception:52
> >   InterceptedBeanTest.methodLevelInterception:60
> >   TestServiceLabelYTest.resultY:44 expected:<[result-y]> but
> > was:<[default-result]>
> >   TestServiceTestLabelXTest.resultX:44 expected:<[result-x]> but
> > was:<[default-result]>
> >   LabeledServiceTest.resultLbl:45 expected:<[result-lbl]> but
> > was:<[alternative-result]>
> >   TestServiceLabelXTest.resultX:43 expected:<result-[x]> but
> > was:<result-[y]>
> > Tests in error:
> >   MockedRequestScopedBeanTest.org.apache.deltaspike.test.
> > testcontrol.mock.uc001.MockedRequestScopedBeanTest » Deployment
> >   MockedSessionScopedBeanAcrossMethodsTest.org.apache.
> > deltaspike.test.testcontrol.mock.uc003.MockedSessionScopedBeanAcrossM
> ethodsTest
> > » Deployment
> >   MockedProducedBeanTest.org.apache.deltaspike.test.
> > testcontrol.mock.uc005.MockedProducedBeanTest » Deployment
> >   MockedTypedBeanTest.org.apache.deltaspike.test.testcontrol.mock.uc008.
> MockedTypedBeanTest
> > » Deployment
> >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > testcontrol.mock.uc009.MockedTypedProducedBeanTest » Deployment
> >   MockedRequestScopedBeanWithInjectionTest.org.apache.
> > deltaspike.test.testcontrol.mock.uc012.MockedRequestScopedBeanWithInj
> ectionTest
> > » Deployment
> >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > testcontrol.mock.uc013.MockedTypedProducedBeanTest » Deployment
> >   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> > testcontrol.mock.uc014.MockedTypedProducedBeanTest » Deployment
> > org.apache.deltaspike.test.testcontrol.uc001.
> > RequestAndSessionScopePerTestMethodTest.org.apache.
> > deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestM
> ethodTest
> >   Run 1: RequestAndSessionScopePerTestMethodTest.org.apache.
> > deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestM
> ethodTest
> > » Deployment
> >   Run 2: RequestAndSessionScopePerTestMethodTest.finalCheckAndCleanup:99
> > IllegalState u...
> >
> > org.apache.deltaspike.test.testcontrol.uc002.
> SessionScopePerTestClassTest.
> > org.apache.deltaspike.test.testcontrol.uc002.
> SessionScopePerTestClassTest
> >   Run 1: SessionScopePerTestClassTest.org.apache.deltaspike.test.
> > testcontrol.uc002.SessionScopePerTestClassTest » Deployment
> >   Run 2: SessionScopePerTestClassTest.finalCheckAndCleanup:93
> > IllegalState unexpected i...
> >
> >   SessionScopePerTestClassTest.org.apache.deltaspike.test.
> > testcontrol.uc003.SessionScopePerTestClassTest » Deployment
> > org.apache.deltaspike.test.testcontrol.uc004.
> ProjectStageTestControlTest.
> > org.apache.deltaspike.test.testcontrol.uc004.ProjectStageTestControlTest
> >   Run 1: ProjectStageTestControlTest.org.apache.deltaspike.test.
> > testcontrol.uc004.ProjectStageTestControlTest » Deployment
> >   Run 2: ProjectStageTestControlTest>RequestAndSessionScopePerTestM
> > ethodTest.finalCheckAndCleanup:99 » IllegalState
> >
> >   SkipExternalContainerTest.org.apache.deltaspike.test.
> testcontrol.uc006.SkipExternalContainerTest
> > » Deployment
> >   ExtendedTest.org.apache.deltaspike.test.testcontrol.uc007.ExtendedTest
> > » Deployment
> >   JsfContainerPerTestMethodTest.org.apache.deltaspike.test.
> > testcontrol.uc010.JsfContainerPerTestMethodTest » Deployment
> >   InterceptedBeanTest.org.apache.deltaspike.test.testcontrol.uc011.
> InterceptedBeanTest
> > » Deployment
> >   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontrol.uc014.
> TestServiceNoLabelTest
> > » Deployment
> >   AlternativeServiceTest.org.apache.deltaspike.test.testcontrol.uc015.
> AlternativeServiceTest
> > » Deployment
> >   TestServiceLabelYTest.org.apache.deltaspike.test.testcontrol.uc016.
> TestServiceLabelYTest
> > » Deployment
> >   TestServiceLabelBTest.resultB » AmbiguousResolution There is more than
> > one Bea...
> >   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontrol.uc020.
> TestServiceNoLabelTest
> > » Deployment
> >   TestServiceTestLabelATest.org.apache.deltaspike.test.
> testcontrol.uc020.TestServiceTestLabelATest
> > » Deployment
> >
> >
> >
> > On Mon, Apr 16, 2018 at 1:33 AM, Gerhard Petracek <
> > gerhard.petracek@gmail.com> wrote:
> >
> >> hi stephen,
> >>
> >> you only have one producer-class:
> >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> >> ike/modules/test-control/impl/src/test/java/org/apache/
> >> deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.java
> >>
> >> and @Alternative is only present at:
> >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> >> ike/modules/test-control/impl/src/test/java/org/apache/
> >> deltaspike/test/testcontrol/uc020/TestServiceLabelA.java#L24
> >> and
> >> https://github.com/mores/deltaspike/blob/altProduces/deltasp
> >> ike/modules/test-control/impl/src/test/java/org/apache/
> >> deltaspike/test/testcontrol/uc020/TestServiceLabelB.java#L24
> >>
> >> instead you need an alternative producer-class (to replace
> >> DefaultTestServiceProducer in your case).
> >>
> >> regards,
> >> gerhard
> >>
> >> http://www.irian.at
> >>
> >> Your JavaEE powerhouse -
> >> JavaEE Consulting, Development and
> >> Courses in English and German
> >>
> >> Professional Support for Apache
> >> MyFaces, DeltaSpike and OpenWebBeans
> >>
> >> 2018-04-15 21:02 GMT+02:00 Stephen More <st...@gmail.com>:
> >>
> >> > Correct. I have a default producer and 1 alternate producer. I can
> >> enable
> >> > the alternate producer by updating beans.xml.
> >> > I am trying to do the same thing using labeledAlternatives....
> >> >
> >> > what changes should be made to META-INF/apache-deltaspike.properties
> >> when
> >> > using multiple alternate producers ?
> >> >
> >> >
> >> > labeledAlternatives[testLabelX].org.apache.
> deltaspike.test.testcontrol.
> >> > uc014.TestService=org.apache.deltaspike.test.testcontrol.uc014.
> >> > TestServiceLabelXProducer
> >> > labeledAlternatives[y].org.apache.deltaspike.test.
> >> > testcontrol.uc014.TestService=org.apache.deltaspike.test.
> >> > testcontrol.uc014.TestServiceLabelYProducer
> >> >
> >> >
> >> > ?
> >> >
> >> >
> >> >
> >> >
> >> > On Sun, Apr 15, 2018 at 1:22 PM, Gerhard Petracek <
> >> > gerhard.petracek@gmail.com> wrote:
> >> >
> >> > > hi stephen,
> >> > >
> >> > > as usual with cdi, you need to create an alternative-producer (= the
> >> > > producer-bean itself needs to be replaced).
> >> > >
> >> > > regards,
> >> > > gerhard
> >> > >
> >> > > http://www.irian.at
> >> > >
> >> > > Your JavaEE powerhouse -
> >> > > JavaEE Consulting, Development and
> >> > > Courses in English and German
> >> > >
> >> > > Professional Support for Apache
> >> > > MyFaces, DeltaSpike and OpenWebBeans
> >> > >
> >> > >
> >> > >
> >> > > 2018-04-15 14:41 GMT+02:00 Stephen More <st...@gmail.com>:
> >> > >
> >> > > > "alternative-bean-x1 (instead of bean-x) in test1
> >> > > > and alternative-bean-x2  (instead of bean-x) in test2"
> >> > > >
> >> > > > Yes, this is exactly what I am going after, unfortunately I have
> not
> >> > > gotten
> >> > > > it to work yet. In my case bean-x comes from a producer.
> >> > > >
> >> > > > Not sure if that is my problem so I started working on a use
> case, I
> >> > > made a
> >> > > > clone of uc014 -> uc020 ( fixed name collisions in
> >> > > > apache-deltaspike.properties ) but many other test cases started
> to
> >> > fail
> >> > > > outside of uc020.  ( https://github.com/mores/
> >> > > deltaspike/tree/altProduces
> >> > > > )
> >> > > >
> >> > > > Is this a possible bug ?
> >> > > > -Thanks
> >> > > >
> >> > > >
> >> > > > p.s. when a typo is made in apache-deltaspike.properties no
> warning
> >> or
> >> > > > error was thrown that I could easily see
> >> > > >
> >> > > >
> >> > > >
> >> > > > On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
> >> > > > gerhard.petracek@gmail.com> wrote:
> >> > > >
> >> > > > > hi stephen,
> >> > > > >
> >> > > > > if your alternative-instance/behavior should be different for
> >> "every"
> >> > > > test
> >> > > > > and you can't use a mock-manager, you need to use a producer
> (for
> >> the
> >> > > > > original bean) and @Specializes it in the test-classpath.
> >> > > > > in your test you change the state of the test-producer with
> static
> >> > > > methods
> >> > > > > (e.g. set a flag or a whole instance which should be returned by
> >> the
> >> > > > > test-producer).
> >> > > > > -> it's std. cdi and/or java - no special concept is needed.
> >> > > > >
> >> > > > > if you would like to use alternative-bean-x1 (instead of bean-x)
> >> in
> >> > > test1
> >> > > > > and alternative-bean-x2  (instead of bean-x) in test2, you can
> use
> >> > > > labeled
> >> > > > > alternatives (provided by ds > v1.8.1) - see e.g. [1] and [2].
> >> > > > > it's based on the new AlternativeBeanClassProvider spi (which
> you
> >> > could
> >> > > > use
> >> > > > > as well to implement your own concepts) - see e.g. [3].
> >> > > > >
> >> > > > > regards,
> >> > > > > gerhard
> >> > > > >
> >> > > > > [1]
> >> > > > > https://github.com/apache/deltaspike/tree/master/
> >> > > > deltaspike/modules/test-
> >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> >> > > testcontrol/uc014
> >> > > > > [2]
> >> > > > > https://github.com/apache/deltaspike/tree/master/
> >> > > > deltaspike/modules/test-
> >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> >> > > testcontrol/uc015
> >> > > > > [3]
> >> > > > > https://github.com/apache/deltaspike/tree/master/
> >> > > > deltaspike/modules/test-
> >> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> >> > > testcontrol/uc016
> >> > > > >
> >> > > > >
> >> > > > >
> >> > > > > http://www.irian.at
> >> > > > >
> >> > > > > Your JavaEE powerhouse -
> >> > > > > JavaEE Consulting, Development and
> >> > > > > Courses in English and German
> >> > > > >
> >> > > > > Professional Support for Apache
> >> > > > > MyFaces, DeltaSpike and OpenWebBeans
> >> > > > >
> >> > > > > 2018-04-14 15:24 GMT+02:00 Stephen More <stephen.more@gmail.com
> >:
> >> > > > >
> >> > > > > > I have a need to run some unit tests with @Alternative -
> >> > > mockedVersionA
> >> > > > > > and other tests with @Alternative - mockedVersionB
> >> > > > > > and other tests with @Alternative - mockedVersionC
> >> > > > > >
> >> > > > > > It looks like Arquillian can handle this utilizing ShrinkWrap
> >> and
> >> > > > > > @Deployment....
> >> > > > > > addAsManifestResource( "mockedVersionA.xml","beans.xml");
> >> > > > > > addAsManifestResource( "mockedVersionB.xml","beans.xml");
> >> > > > > >
> >> > > > > > Can I achieve the same functionality using CdiTestRunner ?
> >> > > > > > -Thanks
> >> > > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> >
> >
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Stephen More <st...@gmail.com>.
Ok, I updated my code, I had to add 3 Qualifiers to fix all other tests.

I now have 3 producers.

I think it should be working as is but I still see:

  TestServiceLabelBTest.resultB:44 expected:<[result-b]> but
was:<[default-result]>
  TestServiceTestLabelATest.resultA:44 expected:<[result-a]> but
was:<[default-result]>



On Mon, Apr 16, 2018 at 8:22 AM, Stephen More <st...@gmail.com>
wrote:

> Usually I work on multiple tasks at a time, and I might not communicate as
> well as I should. I will try to be a little more verbose.
>
> Before I added DefaultTestServiceProducer to uc020, mvn clean install
> was working as expected "Tests run: 65, Failures: 0, Errors: 0, Skipped: 0"
>
> By simply adding DefaultTestServiceProducer to uc020 I did not expect to
> get "Tests run: 53, Failures: 6, Errors: 22, Skipped: 0"
>
> 1. At this point I am no longer focusing on getting my uc020 to pass, but
> rather what the heck did I just do.....what caused this ? Is something else
> bigger going on that will cause my use case to fail anyway ?
>
> 2. In parallel I am also working on a private branch to get  Alternate
> Producers working....( again not working as expected ).
>
> I am at a loss to explain what is going on in 1, and 2 I think should be
> working, but is not.
>
>
> Why did my DefaultTestServiceProducer create all this havoc ?
>
>
>
>
> Failed tests:
>   InterceptedBeanTest.classLevelInterception:52
>   InterceptedBeanTest.methodLevelInterception:60
>   TestServiceLabelYTest.resultY:44 expected:<[result-y]> but
> was:<[default-result]>
>   TestServiceTestLabelXTest.resultX:44 expected:<[result-x]> but
> was:<[default-result]>
>   LabeledServiceTest.resultLbl:45 expected:<[result-lbl]> but
> was:<[alternative-result]>
>   TestServiceLabelXTest.resultX:43 expected:<result-[x]> but
> was:<result-[y]>
> Tests in error:
>   MockedRequestScopedBeanTest.org.apache.deltaspike.test.
> testcontrol.mock.uc001.MockedRequestScopedBeanTest » Deployment
>   MockedSessionScopedBeanAcrossMethodsTest.org.apache.
> deltaspike.test.testcontrol.mock.uc003.MockedSessionScopedBeanAcrossMethodsTest
> » Deployment
>   MockedProducedBeanTest.org.apache.deltaspike.test.
> testcontrol.mock.uc005.MockedProducedBeanTest » Deployment
>   MockedTypedBeanTest.org.apache.deltaspike.test.testcontrol.mock.uc008.MockedTypedBeanTest
> » Deployment
>   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> testcontrol.mock.uc009.MockedTypedProducedBeanTest » Deployment
>   MockedRequestScopedBeanWithInjectionTest.org.apache.
> deltaspike.test.testcontrol.mock.uc012.MockedRequestScopedBeanWithInjectionTest
> » Deployment
>   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> testcontrol.mock.uc013.MockedTypedProducedBeanTest » Deployment
>   MockedTypedProducedBeanTest.org.apache.deltaspike.test.
> testcontrol.mock.uc014.MockedTypedProducedBeanTest » Deployment
> org.apache.deltaspike.test.testcontrol.uc001.
> RequestAndSessionScopePerTestMethodTest.org.apache.
> deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestMethodTest
>   Run 1: RequestAndSessionScopePerTestMethodTest.org.apache.
> deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestMethodTest
> » Deployment
>   Run 2: RequestAndSessionScopePerTestMethodTest.finalCheckAndCleanup:99
> IllegalState u...
>
> org.apache.deltaspike.test.testcontrol.uc002.SessionScopePerTestClassTest.
> org.apache.deltaspike.test.testcontrol.uc002.SessionScopePerTestClassTest
>   Run 1: SessionScopePerTestClassTest.org.apache.deltaspike.test.
> testcontrol.uc002.SessionScopePerTestClassTest » Deployment
>   Run 2: SessionScopePerTestClassTest.finalCheckAndCleanup:93
> IllegalState unexpected i...
>
>   SessionScopePerTestClassTest.org.apache.deltaspike.test.
> testcontrol.uc003.SessionScopePerTestClassTest » Deployment
> org.apache.deltaspike.test.testcontrol.uc004.ProjectStageTestControlTest.
> org.apache.deltaspike.test.testcontrol.uc004.ProjectStageTestControlTest
>   Run 1: ProjectStageTestControlTest.org.apache.deltaspike.test.
> testcontrol.uc004.ProjectStageTestControlTest » Deployment
>   Run 2: ProjectStageTestControlTest>RequestAndSessionScopePerTestM
> ethodTest.finalCheckAndCleanup:99 » IllegalState
>
>   SkipExternalContainerTest.org.apache.deltaspike.test.testcontrol.uc006.SkipExternalContainerTest
> » Deployment
>   ExtendedTest.org.apache.deltaspike.test.testcontrol.uc007.ExtendedTest
> » Deployment
>   JsfContainerPerTestMethodTest.org.apache.deltaspike.test.
> testcontrol.uc010.JsfContainerPerTestMethodTest » Deployment
>   InterceptedBeanTest.org.apache.deltaspike.test.testcontrol.uc011.InterceptedBeanTest
> » Deployment
>   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontrol.uc014.TestServiceNoLabelTest
> » Deployment
>   AlternativeServiceTest.org.apache.deltaspike.test.testcontrol.uc015.AlternativeServiceTest
> » Deployment
>   TestServiceLabelYTest.org.apache.deltaspike.test.testcontrol.uc016.TestServiceLabelYTest
> » Deployment
>   TestServiceLabelBTest.resultB » AmbiguousResolution There is more than
> one Bea...
>   TestServiceNoLabelTest.org.apache.deltaspike.test.testcontrol.uc020.TestServiceNoLabelTest
> » Deployment
>   TestServiceTestLabelATest.org.apache.deltaspike.test.testcontrol.uc020.TestServiceTestLabelATest
> » Deployment
>
>
>
> On Mon, Apr 16, 2018 at 1:33 AM, Gerhard Petracek <
> gerhard.petracek@gmail.com> wrote:
>
>> hi stephen,
>>
>> you only have one producer-class:
>> https://github.com/mores/deltaspike/blob/altProduces/deltasp
>> ike/modules/test-control/impl/src/test/java/org/apache/
>> deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.java
>>
>> and @Alternative is only present at:
>> https://github.com/mores/deltaspike/blob/altProduces/deltasp
>> ike/modules/test-control/impl/src/test/java/org/apache/
>> deltaspike/test/testcontrol/uc020/TestServiceLabelA.java#L24
>> and
>> https://github.com/mores/deltaspike/blob/altProduces/deltasp
>> ike/modules/test-control/impl/src/test/java/org/apache/
>> deltaspike/test/testcontrol/uc020/TestServiceLabelB.java#L24
>>
>> instead you need an alternative producer-class (to replace
>> DefaultTestServiceProducer in your case).
>>
>> regards,
>> gerhard
>>
>> http://www.irian.at
>>
>> Your JavaEE powerhouse -
>> JavaEE Consulting, Development and
>> Courses in English and German
>>
>> Professional Support for Apache
>> MyFaces, DeltaSpike and OpenWebBeans
>>
>> 2018-04-15 21:02 GMT+02:00 Stephen More <st...@gmail.com>:
>>
>> > Correct. I have a default producer and 1 alternate producer. I can
>> enable
>> > the alternate producer by updating beans.xml.
>> > I am trying to do the same thing using labeledAlternatives....
>> >
>> > what changes should be made to META-INF/apache-deltaspike.properties
>> when
>> > using multiple alternate producers ?
>> >
>> >
>> > labeledAlternatives[testLabelX].org.apache.deltaspike.test.testcontrol.
>> > uc014.TestService=org.apache.deltaspike.test.testcontrol.uc014.
>> > TestServiceLabelXProducer
>> > labeledAlternatives[y].org.apache.deltaspike.test.
>> > testcontrol.uc014.TestService=org.apache.deltaspike.test.
>> > testcontrol.uc014.TestServiceLabelYProducer
>> >
>> >
>> > ?
>> >
>> >
>> >
>> >
>> > On Sun, Apr 15, 2018 at 1:22 PM, Gerhard Petracek <
>> > gerhard.petracek@gmail.com> wrote:
>> >
>> > > hi stephen,
>> > >
>> > > as usual with cdi, you need to create an alternative-producer (= the
>> > > producer-bean itself needs to be replaced).
>> > >
>> > > regards,
>> > > gerhard
>> > >
>> > > http://www.irian.at
>> > >
>> > > Your JavaEE powerhouse -
>> > > JavaEE Consulting, Development and
>> > > Courses in English and German
>> > >
>> > > Professional Support for Apache
>> > > MyFaces, DeltaSpike and OpenWebBeans
>> > >
>> > >
>> > >
>> > > 2018-04-15 14:41 GMT+02:00 Stephen More <st...@gmail.com>:
>> > >
>> > > > "alternative-bean-x1 (instead of bean-x) in test1
>> > > > and alternative-bean-x2  (instead of bean-x) in test2"
>> > > >
>> > > > Yes, this is exactly what I am going after, unfortunately I have not
>> > > gotten
>> > > > it to work yet. In my case bean-x comes from a producer.
>> > > >
>> > > > Not sure if that is my problem so I started working on a use case, I
>> > > made a
>> > > > clone of uc014 -> uc020 ( fixed name collisions in
>> > > > apache-deltaspike.properties ) but many other test cases started to
>> > fail
>> > > > outside of uc020.  ( https://github.com/mores/
>> > > deltaspike/tree/altProduces
>> > > > )
>> > > >
>> > > > Is this a possible bug ?
>> > > > -Thanks
>> > > >
>> > > >
>> > > > p.s. when a typo is made in apache-deltaspike.properties no warning
>> or
>> > > > error was thrown that I could easily see
>> > > >
>> > > >
>> > > >
>> > > > On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
>> > > > gerhard.petracek@gmail.com> wrote:
>> > > >
>> > > > > hi stephen,
>> > > > >
>> > > > > if your alternative-instance/behavior should be different for
>> "every"
>> > > > test
>> > > > > and you can't use a mock-manager, you need to use a producer (for
>> the
>> > > > > original bean) and @Specializes it in the test-classpath.
>> > > > > in your test you change the state of the test-producer with static
>> > > > methods
>> > > > > (e.g. set a flag or a whole instance which should be returned by
>> the
>> > > > > test-producer).
>> > > > > -> it's std. cdi and/or java - no special concept is needed.
>> > > > >
>> > > > > if you would like to use alternative-bean-x1 (instead of bean-x)
>> in
>> > > test1
>> > > > > and alternative-bean-x2  (instead of bean-x) in test2, you can use
>> > > > labeled
>> > > > > alternatives (provided by ds > v1.8.1) - see e.g. [1] and [2].
>> > > > > it's based on the new AlternativeBeanClassProvider spi (which you
>> > could
>> > > > use
>> > > > > as well to implement your own concepts) - see e.g. [3].
>> > > > >
>> > > > > regards,
>> > > > > gerhard
>> > > > >
>> > > > > [1]
>> > > > > https://github.com/apache/deltaspike/tree/master/
>> > > > deltaspike/modules/test-
>> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
>> > > testcontrol/uc014
>> > > > > [2]
>> > > > > https://github.com/apache/deltaspike/tree/master/
>> > > > deltaspike/modules/test-
>> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
>> > > testcontrol/uc015
>> > > > > [3]
>> > > > > https://github.com/apache/deltaspike/tree/master/
>> > > > deltaspike/modules/test-
>> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
>> > > testcontrol/uc016
>> > > > >
>> > > > >
>> > > > >
>> > > > > http://www.irian.at
>> > > > >
>> > > > > Your JavaEE powerhouse -
>> > > > > JavaEE Consulting, Development and
>> > > > > Courses in English and German
>> > > > >
>> > > > > Professional Support for Apache
>> > > > > MyFaces, DeltaSpike and OpenWebBeans
>> > > > >
>> > > > > 2018-04-14 15:24 GMT+02:00 Stephen More <st...@gmail.com>:
>> > > > >
>> > > > > > I have a need to run some unit tests with @Alternative -
>> > > mockedVersionA
>> > > > > > and other tests with @Alternative - mockedVersionB
>> > > > > > and other tests with @Alternative - mockedVersionC
>> > > > > >
>> > > > > > It looks like Arquillian can handle this utilizing ShrinkWrap
>> and
>> > > > > > @Deployment....
>> > > > > > addAsManifestResource( "mockedVersionA.xml","beans.xml");
>> > > > > > addAsManifestResource( "mockedVersionB.xml","beans.xml");
>> > > > > >
>> > > > > > Can I achieve the same functionality using CdiTestRunner ?
>> > > > > > -Thanks
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Stephen More <st...@gmail.com>.
Usually I work on multiple tasks at a time, and I might not communicate as
well as I should. I will try to be a little more verbose.

Before I added DefaultTestServiceProducer to uc020, mvn clean install  was
working as expected "Tests run: 65, Failures: 0, Errors: 0, Skipped: 0"

By simply adding DefaultTestServiceProducer to uc020 I did not expect to
get "Tests run: 53, Failures: 6, Errors: 22, Skipped: 0"

1. At this point I am no longer focusing on getting my uc020 to pass, but
rather what the heck did I just do.....what caused this ? Is something else
bigger going on that will cause my use case to fail anyway ?

2. In parallel I am also working on a private branch to get  Alternate
Producers working....( again not working as expected ).

I am at a loss to explain what is going on in 1, and 2 I think should be
working, but is not.


Why did my DefaultTestServiceProducer create all this havoc ?




Failed tests:
  InterceptedBeanTest.classLevelInterception:52
  InterceptedBeanTest.methodLevelInterception:60
  TestServiceLabelYTest.resultY:44 expected:<[result-y]> but
was:<[default-result]>
  TestServiceTestLabelXTest.resultX:44 expected:<[result-x]> but
was:<[default-result]>
  LabeledServiceTest.resultLbl:45 expected:<[result-lbl]> but
was:<[alternative-result]>
  TestServiceLabelXTest.resultX:43 expected:<result-[x]> but
was:<result-[y]>
Tests in error:

MockedRequestScopedBeanTest.org.apache.deltaspike.test.testcontrol.mock.uc001.MockedRequestScopedBeanTest
» Deployment

MockedSessionScopedBeanAcrossMethodsTest.org.apache.deltaspike.test.testcontrol.mock.uc003.MockedSessionScopedBeanAcrossMethodsTest
» Deployment

MockedProducedBeanTest.org.apache.deltaspike.test.testcontrol.mock.uc005.MockedProducedBeanTest
» Deployment

MockedTypedBeanTest.org.apache.deltaspike.test.testcontrol.mock.uc008.MockedTypedBeanTest
» Deployment

MockedTypedProducedBeanTest.org.apache.deltaspike.test.testcontrol.mock.uc009.MockedTypedProducedBeanTest
» Deployment

MockedRequestScopedBeanWithInjectionTest.org.apache.deltaspike.test.testcontrol.mock.uc012.MockedRequestScopedBeanWithInjectionTest
» Deployment

MockedTypedProducedBeanTest.org.apache.deltaspike.test.testcontrol.mock.uc013.MockedTypedProducedBeanTest
» Deployment

MockedTypedProducedBeanTest.org.apache.deltaspike.test.testcontrol.mock.uc014.MockedTypedProducedBeanTest
» Deployment
org.apache.deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestMethodTest.org.apache.deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestMethodTest
  Run 1:
RequestAndSessionScopePerTestMethodTest.org.apache.deltaspike.test.testcontrol.uc001.RequestAndSessionScopePerTestMethodTest
» Deployment
  Run 2: RequestAndSessionScopePerTestMethodTest.finalCheckAndCleanup:99
IllegalState u...

org.apache.deltaspike.test.testcontrol.uc002.SessionScopePerTestClassTest.org.apache.deltaspike.test.testcontrol.uc002.SessionScopePerTestClassTest
  Run 1:
SessionScopePerTestClassTest.org.apache.deltaspike.test.testcontrol.uc002.SessionScopePerTestClassTest
» Deployment
  Run 2: SessionScopePerTestClassTest.finalCheckAndCleanup:93 IllegalState
unexpected i...


SessionScopePerTestClassTest.org.apache.deltaspike.test.testcontrol.uc003.SessionScopePerTestClassTest
» Deployment
org.apache.deltaspike.test.testcontrol.uc004.ProjectStageTestControlTest.org.apache.deltaspike.test.testcontrol.uc004.ProjectStageTestControlTest
  Run 1:
ProjectStageTestControlTest.org.apache.deltaspike.test.testcontrol.uc004.ProjectStageTestControlTest
» Deployment
  Run 2:
ProjectStageTestControlTest>RequestAndSessionScopePerTestMethodTest.finalCheckAndCleanup:99
» IllegalState


SkipExternalContainerTest.org.apache.deltaspike.test.testcontrol.uc006.SkipExternalContainerTest
» Deployment
  ExtendedTest.org.apache.deltaspike.test.testcontrol.uc007.ExtendedTest »
Deployment

JsfContainerPerTestMethodTest.org.apache.deltaspike.test.testcontrol.uc010.JsfContainerPerTestMethodTest
» Deployment

InterceptedBeanTest.org.apache.deltaspike.test.testcontrol.uc011.InterceptedBeanTest
» Deployment

TestServiceNoLabelTest.org.apache.deltaspike.test.testcontrol.uc014.TestServiceNoLabelTest
» Deployment

AlternativeServiceTest.org.apache.deltaspike.test.testcontrol.uc015.AlternativeServiceTest
» Deployment

TestServiceLabelYTest.org.apache.deltaspike.test.testcontrol.uc016.TestServiceLabelYTest
» Deployment
  TestServiceLabelBTest.resultB » AmbiguousResolution There is more than
one Bea...

TestServiceNoLabelTest.org.apache.deltaspike.test.testcontrol.uc020.TestServiceNoLabelTest
» Deployment

TestServiceTestLabelATest.org.apache.deltaspike.test.testcontrol.uc020.TestServiceTestLabelATest
» Deployment



On Mon, Apr 16, 2018 at 1:33 AM, Gerhard Petracek <
gerhard.petracek@gmail.com> wrote:

> hi stephen,
>
> you only have one producer-class:
> https://github.com/mores/deltaspike/blob/altProduces/
> deltaspike/modules/test-control/impl/src/test/java/
> org/apache/deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.
> java
>
> and @Alternative is only present at:
> https://github.com/mores/deltaspike/blob/altProduces/
> deltaspike/modules/test-control/impl/src/test/java/
> org/apache/deltaspike/test/testcontrol/uc020/TestServiceLabelA.java#L24
> and
> https://github.com/mores/deltaspike/blob/altProduces/
> deltaspike/modules/test-control/impl/src/test/java/
> org/apache/deltaspike/test/testcontrol/uc020/TestServiceLabelB.java#L24
>
> instead you need an alternative producer-class (to replace
> DefaultTestServiceProducer in your case).
>
> regards,
> gerhard
>
> http://www.irian.at
>
> Your JavaEE powerhouse -
> JavaEE Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache
> MyFaces, DeltaSpike and OpenWebBeans
>
> 2018-04-15 21:02 GMT+02:00 Stephen More <st...@gmail.com>:
>
> > Correct. I have a default producer and 1 alternate producer. I can enable
> > the alternate producer by updating beans.xml.
> > I am trying to do the same thing using labeledAlternatives....
> >
> > what changes should be made to META-INF/apache-deltaspike.properties
> when
> > using multiple alternate producers ?
> >
> >
> > labeledAlternatives[testLabelX].org.apache.deltaspike.test.testcontrol.
> > uc014.TestService=org.apache.deltaspike.test.testcontrol.uc014.
> > TestServiceLabelXProducer
> > labeledAlternatives[y].org.apache.deltaspike.test.
> > testcontrol.uc014.TestService=org.apache.deltaspike.test.
> > testcontrol.uc014.TestServiceLabelYProducer
> >
> >
> > ?
> >
> >
> >
> >
> > On Sun, Apr 15, 2018 at 1:22 PM, Gerhard Petracek <
> > gerhard.petracek@gmail.com> wrote:
> >
> > > hi stephen,
> > >
> > > as usual with cdi, you need to create an alternative-producer (= the
> > > producer-bean itself needs to be replaced).
> > >
> > > regards,
> > > gerhard
> > >
> > > http://www.irian.at
> > >
> > > Your JavaEE powerhouse -
> > > JavaEE Consulting, Development and
> > > Courses in English and German
> > >
> > > Professional Support for Apache
> > > MyFaces, DeltaSpike and OpenWebBeans
> > >
> > >
> > >
> > > 2018-04-15 14:41 GMT+02:00 Stephen More <st...@gmail.com>:
> > >
> > > > "alternative-bean-x1 (instead of bean-x) in test1
> > > > and alternative-bean-x2  (instead of bean-x) in test2"
> > > >
> > > > Yes, this is exactly what I am going after, unfortunately I have not
> > > gotten
> > > > it to work yet. In my case bean-x comes from a producer.
> > > >
> > > > Not sure if that is my problem so I started working on a use case, I
> > > made a
> > > > clone of uc014 -> uc020 ( fixed name collisions in
> > > > apache-deltaspike.properties ) but many other test cases started to
> > fail
> > > > outside of uc020.  ( https://github.com/mores/
> > > deltaspike/tree/altProduces
> > > > )
> > > >
> > > > Is this a possible bug ?
> > > > -Thanks
> > > >
> > > >
> > > > p.s. when a typo is made in apache-deltaspike.properties no warning
> or
> > > > error was thrown that I could easily see
> > > >
> > > >
> > > >
> > > > On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
> > > > gerhard.petracek@gmail.com> wrote:
> > > >
> > > > > hi stephen,
> > > > >
> > > > > if your alternative-instance/behavior should be different for
> "every"
> > > > test
> > > > > and you can't use a mock-manager, you need to use a producer (for
> the
> > > > > original bean) and @Specializes it in the test-classpath.
> > > > > in your test you change the state of the test-producer with static
> > > > methods
> > > > > (e.g. set a flag or a whole instance which should be returned by
> the
> > > > > test-producer).
> > > > > -> it's std. cdi and/or java - no special concept is needed.
> > > > >
> > > > > if you would like to use alternative-bean-x1 (instead of bean-x) in
> > > test1
> > > > > and alternative-bean-x2  (instead of bean-x) in test2, you can use
> > > > labeled
> > > > > alternatives (provided by ds > v1.8.1) - see e.g. [1] and [2].
> > > > > it's based on the new AlternativeBeanClassProvider spi (which you
> > could
> > > > use
> > > > > as well to implement your own concepts) - see e.g. [3].
> > > > >
> > > > > regards,
> > > > > gerhard
> > > > >
> > > > > [1]
> > > > > https://github.com/apache/deltaspike/tree/master/
> > > > deltaspike/modules/test-
> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > testcontrol/uc014
> > > > > [2]
> > > > > https://github.com/apache/deltaspike/tree/master/
> > > > deltaspike/modules/test-
> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > testcontrol/uc015
> > > > > [3]
> > > > > https://github.com/apache/deltaspike/tree/master/
> > > > deltaspike/modules/test-
> > > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > > testcontrol/uc016
> > > > >
> > > > >
> > > > >
> > > > > http://www.irian.at
> > > > >
> > > > > Your JavaEE powerhouse -
> > > > > JavaEE Consulting, Development and
> > > > > Courses in English and German
> > > > >
> > > > > Professional Support for Apache
> > > > > MyFaces, DeltaSpike and OpenWebBeans
> > > > >
> > > > > 2018-04-14 15:24 GMT+02:00 Stephen More <st...@gmail.com>:
> > > > >
> > > > > > I have a need to run some unit tests with @Alternative -
> > > mockedVersionA
> > > > > > and other tests with @Alternative - mockedVersionB
> > > > > > and other tests with @Alternative - mockedVersionC
> > > > > >
> > > > > > It looks like Arquillian can handle this utilizing ShrinkWrap and
> > > > > > @Deployment....
> > > > > > addAsManifestResource( "mockedVersionA.xml","beans.xml");
> > > > > > addAsManifestResource( "mockedVersionB.xml","beans.xml");
> > > > > >
> > > > > > Can I achieve the same functionality using CdiTestRunner ?
> > > > > > -Thanks
> > > > > >
> > > > >
> > > >
> > >
> >
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Gerhard Petracek <ge...@gmail.com>.
hi stephen,

you only have one producer-class:
https://github.com/mores/deltaspike/blob/altProduces/deltaspike/modules/test-control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc020/DefaultTestServiceProducer.java

and @Alternative is only present at:
https://github.com/mores/deltaspike/blob/altProduces/deltaspike/modules/test-control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc020/TestServiceLabelA.java#L24
and
https://github.com/mores/deltaspike/blob/altProduces/deltaspike/modules/test-control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc020/TestServiceLabelB.java#L24

instead you need an alternative producer-class (to replace
DefaultTestServiceProducer in your case).

regards,
gerhard

http://www.irian.at

Your JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache
MyFaces, DeltaSpike and OpenWebBeans

2018-04-15 21:02 GMT+02:00 Stephen More <st...@gmail.com>:

> Correct. I have a default producer and 1 alternate producer. I can enable
> the alternate producer by updating beans.xml.
> I am trying to do the same thing using labeledAlternatives....
>
> what changes should be made to META-INF/apache-deltaspike.properties when
> using multiple alternate producers ?
>
>
> labeledAlternatives[testLabelX].org.apache.deltaspike.test.testcontrol.
> uc014.TestService=org.apache.deltaspike.test.testcontrol.uc014.
> TestServiceLabelXProducer
> labeledAlternatives[y].org.apache.deltaspike.test.
> testcontrol.uc014.TestService=org.apache.deltaspike.test.
> testcontrol.uc014.TestServiceLabelYProducer
>
>
> ?
>
>
>
>
> On Sun, Apr 15, 2018 at 1:22 PM, Gerhard Petracek <
> gerhard.petracek@gmail.com> wrote:
>
> > hi stephen,
> >
> > as usual with cdi, you need to create an alternative-producer (= the
> > producer-bean itself needs to be replaced).
> >
> > regards,
> > gerhard
> >
> > http://www.irian.at
> >
> > Your JavaEE powerhouse -
> > JavaEE Consulting, Development and
> > Courses in English and German
> >
> > Professional Support for Apache
> > MyFaces, DeltaSpike and OpenWebBeans
> >
> >
> >
> > 2018-04-15 14:41 GMT+02:00 Stephen More <st...@gmail.com>:
> >
> > > "alternative-bean-x1 (instead of bean-x) in test1
> > > and alternative-bean-x2  (instead of bean-x) in test2"
> > >
> > > Yes, this is exactly what I am going after, unfortunately I have not
> > gotten
> > > it to work yet. In my case bean-x comes from a producer.
> > >
> > > Not sure if that is my problem so I started working on a use case, I
> > made a
> > > clone of uc014 -> uc020 ( fixed name collisions in
> > > apache-deltaspike.properties ) but many other test cases started to
> fail
> > > outside of uc020.  ( https://github.com/mores/
> > deltaspike/tree/altProduces
> > > )
> > >
> > > Is this a possible bug ?
> > > -Thanks
> > >
> > >
> > > p.s. when a typo is made in apache-deltaspike.properties no warning or
> > > error was thrown that I could easily see
> > >
> > >
> > >
> > > On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
> > > gerhard.petracek@gmail.com> wrote:
> > >
> > > > hi stephen,
> > > >
> > > > if your alternative-instance/behavior should be different for "every"
> > > test
> > > > and you can't use a mock-manager, you need to use a producer (for the
> > > > original bean) and @Specializes it in the test-classpath.
> > > > in your test you change the state of the test-producer with static
> > > methods
> > > > (e.g. set a flag or a whole instance which should be returned by the
> > > > test-producer).
> > > > -> it's std. cdi and/or java - no special concept is needed.
> > > >
> > > > if you would like to use alternative-bean-x1 (instead of bean-x) in
> > test1
> > > > and alternative-bean-x2  (instead of bean-x) in test2, you can use
> > > labeled
> > > > alternatives (provided by ds > v1.8.1) - see e.g. [1] and [2].
> > > > it's based on the new AlternativeBeanClassProvider spi (which you
> could
> > > use
> > > > as well to implement your own concepts) - see e.g. [3].
> > > >
> > > > regards,
> > > > gerhard
> > > >
> > > > [1]
> > > > https://github.com/apache/deltaspike/tree/master/
> > > deltaspike/modules/test-
> > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > testcontrol/uc014
> > > > [2]
> > > > https://github.com/apache/deltaspike/tree/master/
> > > deltaspike/modules/test-
> > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > testcontrol/uc015
> > > > [3]
> > > > https://github.com/apache/deltaspike/tree/master/
> > > deltaspike/modules/test-
> > > > control/impl/src/test/java/org/apache/deltaspike/test/
> > testcontrol/uc016
> > > >
> > > >
> > > >
> > > > http://www.irian.at
> > > >
> > > > Your JavaEE powerhouse -
> > > > JavaEE Consulting, Development and
> > > > Courses in English and German
> > > >
> > > > Professional Support for Apache
> > > > MyFaces, DeltaSpike and OpenWebBeans
> > > >
> > > > 2018-04-14 15:24 GMT+02:00 Stephen More <st...@gmail.com>:
> > > >
> > > > > I have a need to run some unit tests with @Alternative -
> > mockedVersionA
> > > > > and other tests with @Alternative - mockedVersionB
> > > > > and other tests with @Alternative - mockedVersionC
> > > > >
> > > > > It looks like Arquillian can handle this utilizing ShrinkWrap and
> > > > > @Deployment....
> > > > > addAsManifestResource( "mockedVersionA.xml","beans.xml");
> > > > > addAsManifestResource( "mockedVersionB.xml","beans.xml");
> > > > >
> > > > > Can I achieve the same functionality using CdiTestRunner ?
> > > > > -Thanks
> > > > >
> > > >
> > >
> >
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Stephen More <st...@gmail.com>.
Correct. I have a default producer and 1 alternate producer. I can enable
the alternate producer by updating beans.xml.
I am trying to do the same thing using labeledAlternatives....

what changes should be made to META-INF/apache-deltaspike.properties when
using multiple alternate producers ?


labeledAlternatives[testLabelX].org.apache.deltaspike.test.testcontrol.uc014.TestService=org.apache.deltaspike.test.testcontrol.uc014.TestServiceLabelXProducer
labeledAlternatives[y].org.apache.deltaspike.test.testcontrol.uc014.TestService=org.apache.deltaspike.test.testcontrol.uc014.TestServiceLabelYProducer


?




On Sun, Apr 15, 2018 at 1:22 PM, Gerhard Petracek <
gerhard.petracek@gmail.com> wrote:

> hi stephen,
>
> as usual with cdi, you need to create an alternative-producer (= the
> producer-bean itself needs to be replaced).
>
> regards,
> gerhard
>
> http://www.irian.at
>
> Your JavaEE powerhouse -
> JavaEE Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache
> MyFaces, DeltaSpike and OpenWebBeans
>
>
>
> 2018-04-15 14:41 GMT+02:00 Stephen More <st...@gmail.com>:
>
> > "alternative-bean-x1 (instead of bean-x) in test1
> > and alternative-bean-x2  (instead of bean-x) in test2"
> >
> > Yes, this is exactly what I am going after, unfortunately I have not
> gotten
> > it to work yet. In my case bean-x comes from a producer.
> >
> > Not sure if that is my problem so I started working on a use case, I
> made a
> > clone of uc014 -> uc020 ( fixed name collisions in
> > apache-deltaspike.properties ) but many other test cases started to fail
> > outside of uc020.  ( https://github.com/mores/
> deltaspike/tree/altProduces
> > )
> >
> > Is this a possible bug ?
> > -Thanks
> >
> >
> > p.s. when a typo is made in apache-deltaspike.properties no warning or
> > error was thrown that I could easily see
> >
> >
> >
> > On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
> > gerhard.petracek@gmail.com> wrote:
> >
> > > hi stephen,
> > >
> > > if your alternative-instance/behavior should be different for "every"
> > test
> > > and you can't use a mock-manager, you need to use a producer (for the
> > > original bean) and @Specializes it in the test-classpath.
> > > in your test you change the state of the test-producer with static
> > methods
> > > (e.g. set a flag or a whole instance which should be returned by the
> > > test-producer).
> > > -> it's std. cdi and/or java - no special concept is needed.
> > >
> > > if you would like to use alternative-bean-x1 (instead of bean-x) in
> test1
> > > and alternative-bean-x2  (instead of bean-x) in test2, you can use
> > labeled
> > > alternatives (provided by ds > v1.8.1) - see e.g. [1] and [2].
> > > it's based on the new AlternativeBeanClassProvider spi (which you could
> > use
> > > as well to implement your own concepts) - see e.g. [3].
> > >
> > > regards,
> > > gerhard
> > >
> > > [1]
> > > https://github.com/apache/deltaspike/tree/master/
> > deltaspike/modules/test-
> > > control/impl/src/test/java/org/apache/deltaspike/test/
> testcontrol/uc014
> > > [2]
> > > https://github.com/apache/deltaspike/tree/master/
> > deltaspike/modules/test-
> > > control/impl/src/test/java/org/apache/deltaspike/test/
> testcontrol/uc015
> > > [3]
> > > https://github.com/apache/deltaspike/tree/master/
> > deltaspike/modules/test-
> > > control/impl/src/test/java/org/apache/deltaspike/test/
> testcontrol/uc016
> > >
> > >
> > >
> > > http://www.irian.at
> > >
> > > Your JavaEE powerhouse -
> > > JavaEE Consulting, Development and
> > > Courses in English and German
> > >
> > > Professional Support for Apache
> > > MyFaces, DeltaSpike and OpenWebBeans
> > >
> > > 2018-04-14 15:24 GMT+02:00 Stephen More <st...@gmail.com>:
> > >
> > > > I have a need to run some unit tests with @Alternative -
> mockedVersionA
> > > > and other tests with @Alternative - mockedVersionB
> > > > and other tests with @Alternative - mockedVersionC
> > > >
> > > > It looks like Arquillian can handle this utilizing ShrinkWrap and
> > > > @Deployment....
> > > > addAsManifestResource( "mockedVersionA.xml","beans.xml");
> > > > addAsManifestResource( "mockedVersionB.xml","beans.xml");
> > > >
> > > > Can I achieve the same functionality using CdiTestRunner ?
> > > > -Thanks
> > > >
> > >
> >
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Gerhard Petracek <ge...@gmail.com>.
hi stephen,

as usual with cdi, you need to create an alternative-producer (= the
producer-bean itself needs to be replaced).

regards,
gerhard

http://www.irian.at

Your JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache
MyFaces, DeltaSpike and OpenWebBeans



2018-04-15 14:41 GMT+02:00 Stephen More <st...@gmail.com>:

> "alternative-bean-x1 (instead of bean-x) in test1
> and alternative-bean-x2  (instead of bean-x) in test2"
>
> Yes, this is exactly what I am going after, unfortunately I have not gotten
> it to work yet. In my case bean-x comes from a producer.
>
> Not sure if that is my problem so I started working on a use case, I made a
> clone of uc014 -> uc020 ( fixed name collisions in
> apache-deltaspike.properties ) but many other test cases started to fail
> outside of uc020.  ( https://github.com/mores/deltaspike/tree/altProduces
> )
>
> Is this a possible bug ?
> -Thanks
>
>
> p.s. when a typo is made in apache-deltaspike.properties no warning or
> error was thrown that I could easily see
>
>
>
> On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
> gerhard.petracek@gmail.com> wrote:
>
> > hi stephen,
> >
> > if your alternative-instance/behavior should be different for "every"
> test
> > and you can't use a mock-manager, you need to use a producer (for the
> > original bean) and @Specializes it in the test-classpath.
> > in your test you change the state of the test-producer with static
> methods
> > (e.g. set a flag or a whole instance which should be returned by the
> > test-producer).
> > -> it's std. cdi and/or java - no special concept is needed.
> >
> > if you would like to use alternative-bean-x1 (instead of bean-x) in test1
> > and alternative-bean-x2  (instead of bean-x) in test2, you can use
> labeled
> > alternatives (provided by ds > v1.8.1) - see e.g. [1] and [2].
> > it's based on the new AlternativeBeanClassProvider spi (which you could
> use
> > as well to implement your own concepts) - see e.g. [3].
> >
> > regards,
> > gerhard
> >
> > [1]
> > https://github.com/apache/deltaspike/tree/master/
> deltaspike/modules/test-
> > control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc014
> > [2]
> > https://github.com/apache/deltaspike/tree/master/
> deltaspike/modules/test-
> > control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc015
> > [3]
> > https://github.com/apache/deltaspike/tree/master/
> deltaspike/modules/test-
> > control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc016
> >
> >
> >
> > http://www.irian.at
> >
> > Your JavaEE powerhouse -
> > JavaEE Consulting, Development and
> > Courses in English and German
> >
> > Professional Support for Apache
> > MyFaces, DeltaSpike and OpenWebBeans
> >
> > 2018-04-14 15:24 GMT+02:00 Stephen More <st...@gmail.com>:
> >
> > > I have a need to run some unit tests with @Alternative - mockedVersionA
> > > and other tests with @Alternative - mockedVersionB
> > > and other tests with @Alternative - mockedVersionC
> > >
> > > It looks like Arquillian can handle this utilizing ShrinkWrap and
> > > @Deployment....
> > > addAsManifestResource( "mockedVersionA.xml","beans.xml");
> > > addAsManifestResource( "mockedVersionB.xml","beans.xml");
> > >
> > > Can I achieve the same functionality using CdiTestRunner ?
> > > -Thanks
> > >
> >
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Stephen More <st...@gmail.com>.
"alternative-bean-x1 (instead of bean-x) in test1
and alternative-bean-x2  (instead of bean-x) in test2"

Yes, this is exactly what I am going after, unfortunately I have not gotten
it to work yet. In my case bean-x comes from a producer.

Not sure if that is my problem so I started working on a use case, I made a
clone of uc014 -> uc020 ( fixed name collisions in
apache-deltaspike.properties ) but many other test cases started to fail
outside of uc020.  ( https://github.com/mores/deltaspike/tree/altProduces )

Is this a possible bug ?
-Thanks


p.s. when a typo is made in apache-deltaspike.properties no warning or
error was thrown that I could easily see



On Sat, Apr 14, 2018 at 12:18 PM, Gerhard Petracek <
gerhard.petracek@gmail.com> wrote:

> hi stephen,
>
> if your alternative-instance/behavior should be different for "every" test
> and you can't use a mock-manager, you need to use a producer (for the
> original bean) and @Specializes it in the test-classpath.
> in your test you change the state of the test-producer with static methods
> (e.g. set a flag or a whole instance which should be returned by the
> test-producer).
> -> it's std. cdi and/or java - no special concept is needed.
>
> if you would like to use alternative-bean-x1 (instead of bean-x) in test1
> and alternative-bean-x2  (instead of bean-x) in test2, you can use labeled
> alternatives (provided by ds > v1.8.1) - see e.g. [1] and [2].
> it's based on the new AlternativeBeanClassProvider spi (which you could use
> as well to implement your own concepts) - see e.g. [3].
>
> regards,
> gerhard
>
> [1]
> https://github.com/apache/deltaspike/tree/master/deltaspike/modules/test-
> control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc014
> [2]
> https://github.com/apache/deltaspike/tree/master/deltaspike/modules/test-
> control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc015
> [3]
> https://github.com/apache/deltaspike/tree/master/deltaspike/modules/test-
> control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc016
>
>
>
> http://www.irian.at
>
> Your JavaEE powerhouse -
> JavaEE Consulting, Development and
> Courses in English and German
>
> Professional Support for Apache
> MyFaces, DeltaSpike and OpenWebBeans
>
> 2018-04-14 15:24 GMT+02:00 Stephen More <st...@gmail.com>:
>
> > I have a need to run some unit tests with @Alternative - mockedVersionA
> > and other tests with @Alternative - mockedVersionB
> > and other tests with @Alternative - mockedVersionC
> >
> > It looks like Arquillian can handle this utilizing ShrinkWrap and
> > @Deployment....
> > addAsManifestResource( "mockedVersionA.xml","beans.xml");
> > addAsManifestResource( "mockedVersionB.xml","beans.xml");
> >
> > Can I achieve the same functionality using CdiTestRunner ?
> > -Thanks
> >
>

Re: CdiTestRunner with multiple versions of @Alternative / beans.xml

Posted by Gerhard Petracek <ge...@gmail.com>.
hi stephen,

if your alternative-instance/behavior should be different for "every" test
and you can't use a mock-manager, you need to use a producer (for the
original bean) and @Specializes it in the test-classpath.
in your test you change the state of the test-producer with static methods
(e.g. set a flag or a whole instance which should be returned by the
test-producer).
-> it's std. cdi and/or java - no special concept is needed.

if you would like to use alternative-bean-x1 (instead of bean-x) in test1
and alternative-bean-x2  (instead of bean-x) in test2, you can use labeled
alternatives (provided by ds > v1.8.1) - see e.g. [1] and [2].
it's based on the new AlternativeBeanClassProvider spi (which you could use
as well to implement your own concepts) - see e.g. [3].

regards,
gerhard

[1]
https://github.com/apache/deltaspike/tree/master/deltaspike/modules/test-control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc014
[2]
https://github.com/apache/deltaspike/tree/master/deltaspike/modules/test-control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc015
[3]
https://github.com/apache/deltaspike/tree/master/deltaspike/modules/test-control/impl/src/test/java/org/apache/deltaspike/test/testcontrol/uc016



http://www.irian.at

Your JavaEE powerhouse -
JavaEE Consulting, Development and
Courses in English and German

Professional Support for Apache
MyFaces, DeltaSpike and OpenWebBeans

2018-04-14 15:24 GMT+02:00 Stephen More <st...@gmail.com>:

> I have a need to run some unit tests with @Alternative - mockedVersionA
> and other tests with @Alternative - mockedVersionB
> and other tests with @Alternative - mockedVersionC
>
> It looks like Arquillian can handle this utilizing ShrinkWrap and
> @Deployment....
> addAsManifestResource( "mockedVersionA.xml","beans.xml");
> addAsManifestResource( "mockedVersionB.xml","beans.xml");
>
> Can I achieve the same functionality using CdiTestRunner ?
> -Thanks
>