1
2
3
4
5
6
7 package org.mule.api.annotations.param;
8
9 import org.mule.api.model.InvocationResult;
10 import org.mule.tck.testmodels.fruit.Banana;
11 import org.mule.tck.testmodels.fruit.Fruit;
12 import org.mule.tck.testmodels.fruit.Orange;
13 import org.mule.tck.testmodels.fruit.RedApple;
14
15 import java.util.List;
16
17 import org.junit.Test;
18
19 import static org.junit.Assert.assertEquals;
20 import static org.junit.Assert.assertTrue;
21 import static org.junit.Assert.fail;
22
23 public class LookupEntrypointInjectionTestCase extends AbstractAnnotatedEntrypointResolverTestCase
24 {
25
26 @Override
27 protected Object getComponent()
28 {
29 return new LookupComponent();
30 }
31
32 @Test
33 public void testLookups() throws Exception
34 {
35 RedApple redApple = new RedApple();
36 redApple.wash();
37
38 muleContext.getRegistry().registerObject("redApple", redApple);
39 muleContext.getRegistry().registerObject("anotherRedApple", new RedApple());
40 muleContext.getRegistry().registerObject("aBanana", new Banana());
41
42 InvocationResult response = invokeResolver("listFruit", eventContext);
43 assertTrue("Message payload should be a List", response.getResult() instanceof List);
44 List<Fruit> result = (List<Fruit>) response.getResult();
45 assertEquals(2, result.size());
46
47 assertEquals(redApple, result.get(1));
48
49
50 muleContext.getRegistry().registerObject("orange", new Orange());
51 response = invokeResolver("listFruit", eventContext);
52 assertTrue("Message payload should be a List", response.getResult() instanceof List);
53 result = (List<Fruit>) response.getResult();
54
55 assertEquals(3, result.size());
56
57
58 muleContext.getRegistry().unregisterObject("redApple");
59
60 try
61 {
62 invokeResolver("listFruit", eventContext);
63 fail("redApple is a required property but not in the registry");
64 }
65 catch (Exception e)
66 {
67
68 }
69
70 }
71 }