I am still wondering what this test is supposed to test ?

Where did you applied your fix ? Java Side ?

Matthias already said it is better to fix this in the JavaScript side.

On 10.11.2015 19:30, Matthias Bohnstedt wrote:
Hi Mehmet, Hi Ahmet-Serda

be aware of what you actually want to test in your. You probably don't want to test the correct behaviour of our SMACK library or the rooster object itself, nether the Injecttion via Picocontainer, but your modified add contact function. You can mock all needed dependencies in your test (F.e. State facade). Therefor we often use the Easymock library [1].

An example of the usage be found here [2]. (Again not yet in the master, but an working example of an JUnit test inside the UI - PROJECT that uses movkes). You can also do find some examples in the saros - eclipse project just search for library usages.

Bests
Matthias Bohnstedt
[1] http://easymock.org/getting-started.html
[2] http://saros-build.imp.fu-berlin.de/gerrit/#/c/2749/11/de.fu_berlin.inf.dpp.ui/test/junit/de/fu_berlin/inf/dpp/ui/manager/ProjectListManagerTest.java


-------- Ursprüngliche Nachricht --------
Von: Mehmet Bayram <mehmetbay...@zedat.fu-berlin.de>
Datum: 10.11.2015 17:36 (GMT+01:00)
An: dpp-devel@lists.sourceforge.net
Betreff: [DPP-Devel] Bug 857

Greetings,

We work to fix this bug (http://sourceforge.net/p/dpp/bugs/857/) and would
like to write some JUnit test cases.
But we can't access the Roster.

We tried it like this:

   @Test
    public void testAddContact() {
        PicoBuilder picoBuilder = new PicoBuilder(new CompositeInjection(
            new ConstructorInjection(), new AnnotatedFieldInjection()))
            .withCaching().withLifecycle();
        MutablePicoContainer container = picoBuilder.build();
        new HTMLUIContextFactory().createComponents(container);
StateFacade stateFacade = container.getComponent(StateFacade.class);
        Connection connection = stateFacade.getConnectionService()
            .getConnection();
        Roster roster = connection.getRoster();

        try {
            roster.createEntry("a...@def.ghi", "AB C", null);
            roster.createEntry("x...@def.ghi", "XY Z", null);
        } catch (XMPPException e) {
            // TODO Auto-generated catch block
        }

If we would have a roster object, we would not try to create it like above.

But if we try to create one, we get the following error:

org.picocontainer.injectors.AbstractInjector$UnsatisfiableDependenciesException:
de.fu_berlin.inf.dpp.ui.core_facades.StateFacade has unsatisfied
dependency: class
de.fu_berlin.inf.dpp.communication.connection.ConnectionHandler among
unsatisfiable dependencies: [[class
de.fu_berlin.inf.dpp.communication.connection.ConnectionHandler, class
de.fu_berlin.inf.dpp.net.xmpp.XMPPConnectionService, class
de.fu_berlin.inf.dpp.account.XMPPAccountStore]] where
org.picocontainer.DefaultPicoContainer@6513cf0:15<(empty) was the leaf
container being asked for dependencies.
at
org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:188)
at
org.picocontainer.injectors.ConstructorInjector.getGreediestSatisfiableConstructor(ConstructorInjector.java:110)
at
org.picocontainer.injectors.ConstructorInjector.access$100(ConstructorInjector.java:51)
at
org.picocontainer.injectors.ConstructorInjector$1.run(ConstructorInjector.java:308)
at
org.picocontainer.injectors.AbstractInjector$ThreadLocalCyclicDependencyGuard.observe(AbstractInjector.java:268)
at
org.picocontainer.injectors.ConstructorInjector.getComponentInstance(ConstructorInjector.java:341)
at
org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
at
org.picocontainer.injectors.CompositeInjector.getComponentInstance(CompositeInjector.java:42)
at
org.picocontainer.injectors.AbstractInjectionFactory$LifecycleAdapter.getComponentInstance(AbstractInjectionFactory.java:56)
at
org.picocontainer.behaviors.AbstractBehavior.getComponentInstance(AbstractBehavior.java:64)
at org.picocontainer.behaviors.Stored.getComponentInstance(Stored.java:91)
at
org.picocontainer.DefaultPicoContainer.getInstance(DefaultPicoContainer.java:691)
at
org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:645)
at
org.picocontainer.DefaultPicoContainer.getComponent(DefaultPicoContainer.java:670)
at
de.fu_berlin.inf.dpp.ui.core_facades.StateFacadeTest.testAddContact(StateFacadeTest.java:24)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at
org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at
org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

any help would be appreciated.

Best regards

Ahmet-Serdar Karakaya
Mehmet Bayram


------------------------------------------------------------------------------
_______________________________________________
DPP-Devel mailing list
DPP-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dpp-devel


------------------------------------------------------------------------------


_______________________________________________
DPP-Devel mailing list
DPP-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dpp-devel

------------------------------------------------------------------------------
_______________________________________________
DPP-Devel mailing list
DPP-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dpp-devel

Reply via email to