MentaContainer

Rev

Rev 20 | Rev 27 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 20 Rev 26
Line 85... Line 85...
85
                Container c = new MentaContainer();
85
                Container c = new MentaContainer();
86
86
87
                c.autowire("myThread", Runnable.class);
87
                c.autowire("myThread", Runnable.class);
88
88
89
                c.autowire("myThread", Runnable.class);
89
                c.autowire("myThread", Runnable.class);
-
 
90
        }
-
 
91
       
-
 
92
        public static interface MyDAO {
-
 
93
               
-
 
94
                public Object getSomething();
-
 
95
               
-
 
96
        }
-
 
97
       
-
 
98
        public static class Connection {
-
 
99
               
-
 
100
                private final String name;
-
 
101
               
-
 
102
                public Connection(String name) {
-
 
103
                        this.name = name;
-
 
104
                }
-
 
105
               
-
 
106
                public String toString() {
-
 
107
                        return getClass().getName() + ": " + name;
-
 
108
                }
-
 
109
               
-
 
110
                public String getName() { return name; }
-
 
111
        }
-
 
112
       
-
 
113
        public static class JdbcMyDAO implements MyDAO {
-
 
114
               
-
 
115
                private Connection conn;
-
 
116
               
-
 
117
                public void setConn(Connection conn) { this.conn = conn; }
-
 
118
               
-
 
119
                public Connection getConn() { return conn; }
-
 
120
               
-
 
121
                public Object getSomething() {
-
 
122
                       
-
 
123
                        // use the connection to get something...
-
 
124
                       
-
 
125
                        return conn.toString(); // it cannot be null!
-
 
126
                }
-
 
127
        }
-
 
128
       
-
 
129
        @Test
-
 
130
        public void testAutoWiring() {
-
 
131
               
-
 
132
                Container c = new MentaContainer();
-
 
133
               
-
 
134
                c.ioc("myDAO", JdbcMyDAO.class);
-
 
135
               
-
 
136
                c.ioc("connection", Connection.class).addInitValue("A super JDBC connection!");
-
 
137
               
-
 
138
                c.autowire("conn" /* the property name that will receive the dependency */,
-
 
139
                                   Connection.class /* the type of the property that will receive the dependency */,
-
 
140
                                   "connection" /* the source inside the container */);
-
 
141
               
-
 
142
                MyDAO myDAO = (MyDAO) c.get("myDAO");
-
 
143
               
-
 
144
                // check implementation...
-
 
145
               
-
 
146
                Assert.assertEquals(JdbcMyDAO.class, myDAO.getClass());
-
 
147
               
-
 
148
                // check dependency...
-
 
149
               
-
 
150
                Connection conn = ((JdbcMyDAO) myDAO).getConn();
-
 
151
               
-
 
152
                Assert.assertNotNull(conn);
-
 
153
               
-
 
154
                Assert.assertEquals("A super JDBC connection!", conn.getName());
-
 
155
               
-
 
156
                Assert.assertNotNull(myDAO.getSomething());
90
        }
157
        }
91
}
158
}