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