1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.onami.factoryannotation;
20
21 import static org.junit.Assert.assertEquals;
22
23 import org.apache.onami.factoryannotation.annotations.SecondLayer;
24 import org.apache.onami.factoryannotation.impl.SecondLayerEntity;
25 import org.apache.onami.factoryannotation.impl.SecondLayerIdentityProvider;
26 import org.junit.Test;
27
28 import com.google.inject.Guice;
29 import com.google.inject.Injector;
30
31 public class InterfaceTestCase
32 {
33
34 @Test
35 public void testInterfaceValueProvider()
36 {
37 final Injector injector = Guice.createInjector( new FactoryAnnotationModule()
38 {
39 @Override
40 protected void configure()
41 {
42 bindType( SecondLayerEntity.class ).annotatedWith( SecondLayer.class ).toAnnotationFactory( new SecondLayerIdentityProvider() );
43 }
44 } );
45
46 final SecondLayerInjectable injectable = new SecondLayerInjectable();
47 injector.injectMembers( injectable );
48
49 assertEquals( "SecondLayerEntity1", injectable.layerEntity1.getValue() );
50 assertEquals( 1, injectable.layerEntity1.getId() );
51 assertEquals( "SecondLayerEntity2", injectable.layerEntity2.getValue() );
52 assertEquals( 2, injectable.layerEntity2.getId() );
53 }
54
55 public class SecondLayerInjectable
56 {
57 @SecondLayer( byId = 1 )
58 private SecondLayerEntity layerEntity1;
59
60 @SecondLayer( byId = 2 )
61 private SecondLayerEntity layerEntity2;
62 }
63
64 }