MentaContainer

Rev

Rev 101 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
97 soliveira 1
package org.mentacontainer.example;
2
 
3
import java.util.Calendar;
4
import java.util.Date;
5
 
6
import junit.framework.Assert;
7
 
8
import org.junit.Test;
9
import org.mentacontainer.Container;
10
import org.mentacontainer.impl.MentaContainer;
11
 
12
public class CoreExamplesTest {
13
 
14
        @Test
15
        public void testBeanInitialization() {
16
 
17
                Container c = new MentaContainer();
18
 
19
                c.ioc("myString1", String.class);
20
 
21
                String myString1 = c.get("myString1");
22
 
23
                Assert.assertEquals("", myString1); // default constructor...
24
 
25
                c.ioc("myString2", String.class).addInitValue("saoj");
26
 
27
                String myString2 = c.get("myString2"); // using constructor....
28
 
29
                Assert.assertEquals("saoj", myString2);
30
 
31
                Assert.assertNotSame(c.get("myString1"), c.get("myString1")); // most be different instances...
32
 
33
                // test setters...
34
 
35
                c.ioc("myDate1", Date.class).addPropertyValue("hours", 15) // setHours(15)
36
                                                                        .addPropertyValue("minutes", 10) // setMinutes(10)
37
                                                                        .addPropertyValue("seconds", 45); // setSeconds(45)
38
 
39
                Date myDate1 = c.get("myDate1");
40
 
41
                Assert.assertTrue(myDate1.toString().indexOf("15:10:45") > 0);
42
 
43
                // test setter together with constructor...
44
 
45
                Calendar cal = Calendar.getInstance();
46
                cal.set(Calendar.YEAR, 1976);
47
 
48
                c.ioc("myDate2", Date.class).addInitValue(cal.getTimeInMillis()).addPropertyValue("seconds", 59);
49
 
50
                Date myDate2 = c.get("myDate2");
51
 
52
                Assert.assertTrue(myDate2.toString().indexOf(":59") > 0);
53
                Assert.assertTrue(myDate2.toString().indexOf("1976") > 0);
54
        }
55
 
56
        @Test
57
        public void testDependencies() {
58
 
59
                // constructor dependency...
60
 
61
                Container c = new MentaContainer();
62
 
63
                c.ioc("username", String.class).addInitValue("saoj");
64
 
139 soliveira 65
                c.ioc("myString", String.class).addConstructorDependency("username");
97 soliveira 66
 
67
                String myString = c.get("myString");
68
 
69
                Assert.assertEquals("saoj", myString);
70
 
71
                // setter dependency...
72
 
73
                c.ioc("myBirthdayYear", Integer.class).addInitValue(76);
74
 
75
                c.ioc("myBirthday", Date.class).addPropertyDependency("year", "myBirthdayYear").addPropertyValue("month", 0).addPropertyValue("date", 20);
76
 
77
                Date myBirthday = c.get("myBirthday");
78
 
79
                Assert.assertTrue(myBirthday.toString().indexOf("Jan 20") > 0);
80
                Assert.assertTrue(myBirthday.toString().indexOf("1976") > 0);
81
 
82
                // both...
83
 
84
                Calendar cal = Calendar.getInstance();
85
                cal.set(Calendar.YEAR, 1976);
86
 
87
                c.ioc("timeInMillis", Long.class).addInitValue(cal.getTimeInMillis());
88
                c.ioc("myBirthdayMonth", Integer.class).addInitValue(0);
89
 
139 soliveira 90
                c.ioc("myBirthday", Date.class).addConstructorDependency("timeInMillis").addPropertyDependency("month", "myBirthdayMonth").addPropertyValue("date", 20);
97 soliveira 91
 
92
                myBirthday = c.get("myBirthday");
93
 
94
                Assert.assertTrue(myBirthday.toString().indexOf("Jan 20") > 0);
95
                Assert.assertTrue(myBirthday.toString().indexOf("1976") > 0);
96
        }
97
 
98
        @Test
99
        public void testAutoWiring() {
100
 
101
                // constructor dependency...
102
 
103
                Container c = new MentaContainer();
104
 
105
                c.ioc("username", String.class).addInitValue("saoj");
106
 
107
                c.ioc("myString", String.class);
108
 
101 soliveira 109
                c.autowire("username");
97 soliveira 110
 
111
                String myString = c.get("myString");
112
 
113
                Assert.assertEquals("saoj", myString);
114
 
115
                // setter dependency...
116
 
117
                c = new MentaContainer();
118
 
119
                c.ioc("myBirthdayYear", Integer.class).addInitValue(76);
120
 
121
                c.ioc("myBirthday", Date.class).addPropertyValue("month", 0).addPropertyValue("date", 20);
122
 
101 soliveira 123
                c.autowire("myBirthdayYear", "year");
97 soliveira 124
 
125
                Date myBirthday = c.get("myBirthday");
126
 
127
                Assert.assertTrue(myBirthday.toString().indexOf("Jan 20") > 0);
128
                Assert.assertTrue(myBirthday.toString().indexOf("1976") > 0);
129
 
130
                // both...
131
 
132
                c = new MentaContainer();
133
 
134
                Calendar cal = Calendar.getInstance();
135
                cal.set(Calendar.YEAR, 1976);
136
 
137
                c.ioc("timeInMillis", Long.class).addInitValue(cal.getTimeInMillis());
138
                c.ioc("myBirthdayMonth", Integer.class).addInitValue(0);
139
 
140
                c.ioc("myBirthday", Date.class).addPropertyValue("date", 20);
141
 
101 soliveira 142
                c.autowire("timeInMillis");
143
                c.autowire("myBirthdayMonth", "month");
97 soliveira 144
 
145
                myBirthday = c.get("myBirthday");
146
 
147
                Assert.assertTrue(myBirthday.toString().indexOf("Jan 20") > 0);
148
                Assert.assertTrue(myBirthday.toString().indexOf("1976") > 0);
149
 
150
                // bypass autowireByConstructor by specifying...
151
 
152
                c = new MentaContainer();
153
 
154
                cal = Calendar.getInstance();
155
                cal.set(Calendar.YEAR, 1976);
156
 
157
                Calendar cal2 = Calendar.getInstance();
158
                cal2.set(Calendar.YEAR, 1977);
159
 
160
                c.ioc("timeInMillis", Long.class).addInitValue(cal.getTimeInMillis());
161
                c.ioc("timeInMillis2", Long.class).addInitValue(cal2.getTimeInMillis());
162
                c.ioc("myBirthdayMonth", Integer.class).addInitValue(0);
163
 
139 soliveira 164
                c.ioc("myBirthday", Date.class).addPropertyValue("date", 20).addConstructorDependency("timeInMillis2");
97 soliveira 165
 
101 soliveira 166
                c.autowire("timeInMillis");
167
                c.autowire("myBirthdayMonth", "month");
97 soliveira 168
 
169
                myBirthday = c.get("myBirthday");
170
 
171
                Assert.assertTrue(myBirthday.toString().indexOf("Jan 20") > 0);
172
                Assert.assertTrue(myBirthday.toString().indexOf("1977") > 0);
173
 
174
                // bypass autowireBySetter by specifying...
175
 
176
                // not supported yet...
177
 
178
                // force zero arguments constructor...
179
 
180
                c = new MentaContainer();
181
 
182
                cal = Calendar.getInstance();
183
                cal.set(Calendar.YEAR, 1976);
184
 
185
                c.ioc("timeInMillis", Long.class).addInitValue(cal.getTimeInMillis());
186
                c.ioc("myBirthdayMonth", Integer.class).addInitValue(0);
187
 
188
                c.ioc("myBirthday", Date.class).addPropertyValue("date", 20).useZeroArgumentConstructor();
189
 
101 soliveira 190
                c.autowire("timeInMillis");
191
                c.autowire("myBirthdayMonth", "month");
97 soliveira 192
 
193
                myBirthday = c.get("myBirthday");
194
 
195
                Assert.assertTrue(myBirthday.toString().indexOf("Jan 20") > 0);
196
                Assert.assertTrue(myBirthday.toString().indexOf("1976") == -1);
197
        }
198
}