1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.springframework.richclient.application.config;
17
18 import java.awt.Color;
19 import java.awt.Image;
20 import java.awt.image.BufferedImage;
21 import java.util.Locale;
22
23 import javax.swing.Icon;
24 import javax.swing.ImageIcon;
25
26 import junit.framework.Assert;
27 import junit.framework.TestCase;
28
29 import org.easymock.EasyMock;
30 import org.springframework.context.MessageSource;
31 import org.springframework.richclient.command.config.CommandButtonIconInfo;
32 import org.springframework.richclient.command.config.CommandButtonLabelInfo;
33 import org.springframework.richclient.command.config.CommandIconConfigurable;
34 import org.springframework.richclient.command.config.CommandLabelConfigurable;
35 import org.springframework.richclient.core.DescriptionConfigurable;
36 import org.springframework.richclient.core.LabelConfigurable;
37 import org.springframework.richclient.core.LabelInfo;
38 import org.springframework.richclient.core.SecurityControllable;
39 import org.springframework.richclient.core.TitleConfigurable;
40 import org.springframework.richclient.image.IconSource;
41 import org.springframework.richclient.image.ImageSource;
42 import org.springframework.richclient.image.config.IconConfigurable;
43 import org.springframework.richclient.image.config.ImageConfigurable;
44 import org.springframework.richclient.security.SecurityController;
45 import org.springframework.richclient.security.SecurityControllerManager;
46 import org.springframework.richclient.test.TestIcon;
47
48
49
50
51
52
53
54
55
56 public class DefaultApplicationObjectConfigurerTests extends TestCase {
57
58
59
60
61 public DefaultApplicationObjectConfigurerTests() {
62 super();
63 }
64
65
66
67
68
69 public void testForNullInputToConfigureMethod() {
70
71 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer();
72
73
74 configurer.configure(null, "bogus");
75
76 try {
77 configurer.configure("bogus", null);
78 Assert.fail("Should have thrown an IllegalArgumentException for null object name");
79 }
80 catch (IllegalArgumentException e) {
81
82 }
83
84 }
85
86
87
88
89
90
91 public void testConfigureTitleConfigurable() {
92 MessageSource messageSource = (MessageSource) EasyMock.createMock(MessageSource.class);
93
94 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(messageSource);
95
96 String objectName = "bogusTitleable";
97 String messageCode = objectName + ".title";
98 String message = "bogusTitle";
99
100 EasyMock.expect(messageSource.getMessage(messageCode, null, Locale.getDefault())).andReturn(message);
101
102 TitleConfigurable configurable = (TitleConfigurable) EasyMock.createMock(TitleConfigurable.class);
103 configurable.setTitle(message);
104
105 EasyMock.replay(messageSource);
106 EasyMock.replay(configurable);
107
108 configurer.configure(configurable, objectName);
109
110 EasyMock.verify(messageSource);
111 EasyMock.verify(configurable);
112 }
113
114 public void testConfigureTitleConfigurableWithNoTitleFound() {
115 MessageSource messageSource = (MessageSource) EasyMock.createMock(MessageSource.class);
116
117 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(messageSource);
118
119 String objectName = "bogusTitleable";
120 String messageCode = objectName + ".title";
121
122 EasyMock.expect(messageSource.getMessage(messageCode, null, Locale.getDefault())).andReturn(null);
123
124 TitleConfigurable configurable = (TitleConfigurable) EasyMock.createMock(TitleConfigurable.class);
125
126 EasyMock.replay(messageSource);
127 EasyMock.replay(configurable);
128
129 configurer.configure(configurable, objectName);
130
131 EasyMock.verify(messageSource);
132 EasyMock.verify(configurable);
133 }
134
135
136
137
138
139
140 public void testDescriptionConfigurable() {
141 MessageSource messageSource = (MessageSource) EasyMock.createMock(MessageSource.class);
142
143 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(messageSource);
144
145 String objectName = "bogusDescriptionConfigurable";
146 String descriptionCode = objectName + ".description";
147 String captionCode = objectName + ".caption";
148 String description = "bogusDescription";
149 String caption = "bogusCaption";
150
151 EasyMock.expect(messageSource.getMessage(descriptionCode, null, Locale.getDefault())).andReturn(description);
152 EasyMock.expect(messageSource.getMessage(captionCode, null, Locale.getDefault())).andReturn(caption);
153
154 DescriptionConfigurable configurable = (DescriptionConfigurable) EasyMock
155 .createMock(DescriptionConfigurable.class);
156 configurable.setDescription(description);
157 configurable.setCaption(caption);
158
159 EasyMock.replay(messageSource);
160 EasyMock.replay(configurable);
161
162 configurer.configure(configurable, objectName);
163
164 EasyMock.verify(messageSource);
165 EasyMock.verify(configurable);
166 }
167
168 public void testDescriptionConfigurableWithNoDescriptionFound() {
169 MessageSource messageSource = (MessageSource) EasyMock.createMock(MessageSource.class);
170
171 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(messageSource);
172
173 String objectName = "bogusDescriptionConfigurable";
174 String descriptionCode = objectName + ".description";
175 String captionCode = objectName + ".caption";
176
177 EasyMock.expect(messageSource.getMessage(descriptionCode, null, Locale.getDefault())).andReturn(null);
178 EasyMock.expect(messageSource.getMessage(captionCode, null, Locale.getDefault())).andReturn(null);
179
180 DescriptionConfigurable configurable = (DescriptionConfigurable) EasyMock
181 .createMock(DescriptionConfigurable.class);
182
183 EasyMock.replay(messageSource);
184 EasyMock.replay(configurable);
185
186 configurer.configure(configurable, objectName);
187
188 EasyMock.verify(messageSource);
189 EasyMock.verify(configurable);
190 }
191
192
193
194
195
196
197 public void testLabelConfigurable() {
198 MessageSource messageSource = (MessageSource) EasyMock.createMock(MessageSource.class);
199
200 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(messageSource);
201
202 String objectName = "bogusLabelable";
203 String messageCode = objectName + ".label";
204 String message = "bogusLabelInfo";
205 LabelInfo expectedLabelInfo = LabelInfo.valueOf(message);
206
207 EasyMock.expect(messageSource.getMessage(messageCode, null, Locale.getDefault())).andReturn(message);
208
209 LabelConfigurable configurable = (LabelConfigurable) EasyMock.createMock(LabelConfigurable.class);
210 configurable.setLabelInfo(expectedLabelInfo);
211
212 EasyMock.replay(messageSource);
213 EasyMock.replay(configurable);
214
215 configurer.configure(configurable, objectName);
216
217 EasyMock.verify(messageSource);
218 EasyMock.verify(configurable);
219
220 }
221
222 public void testLabelConfigurableWithNoLabelFound() {
223 MessageSource messageSource = (MessageSource) EasyMock.createMock(MessageSource.class);
224
225 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(messageSource);
226
227 String objectName = "bogusLabelable";
228 String messageCode = objectName + ".label";
229
230 EasyMock.expect(messageSource.getMessage(messageCode, null, Locale.getDefault())).andReturn(null);
231
232 LabelConfigurable configurable = (LabelConfigurable) EasyMock.createMock(LabelConfigurable.class);
233
234 EasyMock.replay(messageSource);
235 EasyMock.replay(configurable);
236
237 configurer.configure(configurable, objectName);
238
239 EasyMock.verify(messageSource);
240 EasyMock.verify(configurable);
241 }
242
243
244
245
246
247
248 public void testCommandLabelConfigurable() {
249 MessageSource messageSource = (MessageSource) EasyMock.createMock(MessageSource.class);
250
251 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(messageSource);
252
253 String objectName = "bogusLabelable";
254 String messageCode = objectName + ".label";
255 String message = "bogusLabelInfo";
256 CommandButtonLabelInfo expectedLabelInfo = CommandButtonLabelInfo.valueOf(message);
257
258 EasyMock.expect(messageSource.getMessage(messageCode, null, Locale.getDefault())).andReturn(message);
259
260 CommandLabelConfigurable configurable = (CommandLabelConfigurable) EasyMock
261 .createMock(CommandLabelConfigurable.class);
262 configurable.setLabelInfo(expectedLabelInfo);
263
264 EasyMock.replay(messageSource);
265 EasyMock.replay(configurable);
266
267 configurer.configure(configurable, objectName);
268
269 EasyMock.verify(messageSource);
270 EasyMock.verify(configurable);
271
272 }
273
274 public void testCommandLabelConfigurableWithNoLabelFound() {
275 MessageSource messageSource = (MessageSource) EasyMock.createMock(MessageSource.class);
276
277 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(messageSource);
278
279 String objectName = "bogusLabelable";
280 String messageCode = objectName + ".label";
281
282 EasyMock.expect(messageSource.getMessage(messageCode, null, Locale.getDefault())).andReturn(null);
283
284 CommandLabelConfigurable configurable = (CommandLabelConfigurable) EasyMock
285 .createMock(CommandLabelConfigurable.class);
286
287 EasyMock.replay(messageSource);
288 EasyMock.replay(configurable);
289
290 configurer.configure(configurable, objectName);
291
292 EasyMock.verify(messageSource);
293 EasyMock.verify(configurable);
294
295 }
296
297
298
299
300
301
302 public void testConfigureIconConfigurable() {
303 String objectName = "bogusIconConfigurable";
304 String iconKey = objectName + ".icon";
305 Icon expectedIcon = new TestIcon(Color.GREEN);
306
307
308 IconSource iconSource = (IconSource) EasyMock.createMock(IconSource.class);
309 IconConfigurable configurable = (IconConfigurable) EasyMock.createMock(IconConfigurable.class);
310
311
312 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(null, null, iconSource,
313 null);
314
315
316
317
318
319 EasyMock.expect(iconSource.getIcon(iconKey)).andReturn(expectedIcon);
320 configurable.setIcon(expectedIcon);
321
322 EasyMock.replay(iconSource);
323 EasyMock.replay(configurable);
324
325 configurer.configure(configurable, objectName);
326
327 EasyMock.verify(iconSource);
328 EasyMock.verify(configurable);
329 }
330
331 public void testConfigureIconConfigurableWithNoIconFound() {
332 String objectName = "undefinedIconConfigurable";
333 String iconKey = objectName + ".icon";
334
335
336 IconSource iconSource = (IconSource) EasyMock.createMock(IconSource.class);
337 IconConfigurable configurable = (IconConfigurable) EasyMock.createMock(IconConfigurable.class);
338
339
340 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(null, null, iconSource,
341 null);
342
343
344
345
346
347 EasyMock.expect(iconSource.getIcon(iconKey)).andReturn(null);
348
349 EasyMock.replay(iconSource);
350 EasyMock.replay(configurable);
351
352 configurer.configure(configurable, objectName);
353
354 EasyMock.verify(iconSource);
355 EasyMock.verify(configurable);
356 }
357
358
359
360
361
362 public void testCommandIconConfigurable() {
363
364 String objectName = "bogusCommandIconConfigurable";
365 String iconKey = objectName + ".icon";
366 String disabledIconKey = objectName + ".disabledIcon";
367 String selectedIconKey = objectName + ".selectedIcon";
368 String rolloverIconKey = objectName + ".rolloverIcon";
369 String pressedIconKey = objectName + ".pressedIcon";
370 String largeIconKey = objectName + ".large.icon";
371 String disabledLargeIconKey = objectName + ".large.disabledIcon";
372 String selectedLargeIconKey = objectName + ".large.selectedIcon";
373 String rolloverLargeIconKey = objectName + ".large.rolloverIcon";
374 String pressedLargeIconKey = objectName + ".large.pressedIcon";
375
376 Icon expectedIcon = new ImageIcon();
377 Icon expectedSelectedIcon = new ImageIcon();
378 Icon expectedRolloverIcon = new ImageIcon();
379 Icon expectedDisabledIcon = new ImageIcon();
380 Icon expectedPressedIcon = new ImageIcon();
381
382 Icon expectedLargeIcon = new ImageIcon();
383 Icon expectedSelectedLargeIcon = new ImageIcon();
384 Icon expectedRolloverLargeIcon = new ImageIcon();
385 Icon expectedDisabledLargeIcon = new ImageIcon();
386 Icon expectedPressedLargeIcon = new ImageIcon();
387
388 CommandButtonIconInfo expectedIconInfo = new CommandButtonIconInfo(expectedIcon, expectedSelectedIcon,
389 expectedRolloverIcon, expectedDisabledIcon, expectedPressedIcon);
390
391 CommandButtonIconInfo expectedLargeIconInfo = new CommandButtonIconInfo(expectedLargeIcon,
392 expectedSelectedLargeIcon, expectedRolloverLargeIcon, expectedDisabledLargeIcon,
393 expectedPressedLargeIcon);
394
395
396 IconSource iconSource = (IconSource) EasyMock.createMock(IconSource.class);
397 CommandIconConfigurable configurable = (CommandIconConfigurable) EasyMock
398 .createMock(CommandIconConfigurable.class);
399
400
401 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(null, null, iconSource,
402 null);
403
404 EasyMock.expect(iconSource.getIcon(iconKey)).andReturn(expectedIcon);
405 EasyMock.expect(iconSource.getIcon(disabledIconKey)).andReturn(expectedDisabledIcon);
406 EasyMock.expect(iconSource.getIcon(selectedIconKey)).andReturn(expectedSelectedIcon);
407 EasyMock.expect(iconSource.getIcon(rolloverIconKey)).andReturn(expectedRolloverIcon);
408 EasyMock.expect(iconSource.getIcon(pressedIconKey)).andReturn(expectedPressedIcon);
409 EasyMock.expect(iconSource.getIcon(largeIconKey)).andReturn(expectedLargeIcon);
410 EasyMock.expect(iconSource.getIcon(disabledLargeIconKey)).andReturn(expectedDisabledLargeIcon);
411 EasyMock.expect(iconSource.getIcon(selectedLargeIconKey)).andReturn(expectedSelectedLargeIcon);
412 EasyMock.expect(iconSource.getIcon(rolloverLargeIconKey)).andReturn(expectedRolloverLargeIcon);
413 EasyMock.expect(iconSource.getIcon(pressedLargeIconKey)).andReturn(expectedPressedLargeIcon);
414 configurable.setIconInfo(expectedIconInfo);
415 configurable.setLargeIconInfo(expectedLargeIconInfo);
416
417 EasyMock.replay(iconSource);
418 EasyMock.replay(configurable);
419
420 configurer.configure(configurable, objectName);
421
422 EasyMock.verify(iconSource);
423 EasyMock.verify(configurable);
424
425
426 EasyMock.reset(iconSource);
427 EasyMock.reset(configurable);
428
429
430
431 configurer.setLoadOptionalIcons(false);
432 expectedIconInfo = new CommandButtonIconInfo(expectedIcon);
433 expectedLargeIconInfo = new CommandButtonIconInfo(expectedLargeIcon);
434 EasyMock.expect(iconSource.getIcon(iconKey)).andReturn(expectedIcon);
435 EasyMock.expect(iconSource.getIcon(largeIconKey)).andReturn(expectedLargeIcon);
436 configurable.setIconInfo(expectedIconInfo);
437 configurable.setLargeIconInfo(expectedLargeIconInfo);
438
439 EasyMock.replay(iconSource);
440 EasyMock.replay(configurable);
441
442 configurer.configure(configurable, objectName);
443
444 EasyMock.verify(iconSource);
445 EasyMock.verify(configurable);
446 }
447
448 public void testCommandIconConfigurableWithNoIconFound() {
449
450 String objectName = "bogusCommandIconConfigurable";
451 String iconKey = objectName + ".icon";
452 String largeIconKey = objectName + ".large.icon";
453
454
455 IconSource iconSource = (IconSource) EasyMock.createMock(IconSource.class);
456 CommandIconConfigurable configurable = (CommandIconConfigurable) EasyMock
457 .createMock(CommandIconConfigurable.class);
458
459
460 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(null, null, iconSource,
461 null);
462
463 EasyMock.expect(iconSource.getIcon(iconKey)).andReturn(null);
464 EasyMock.expect(iconSource.getIcon(largeIconKey)).andReturn(null);
465
466 EasyMock.replay(iconSource);
467 EasyMock.replay(configurable);
468
469 configurer.configure(configurable, objectName);
470
471 EasyMock.verify(iconSource);
472 EasyMock.verify(configurable);
473 }
474
475
476
477
478
479
480 public void testImageConfigurable() {
481
482 String objectName = "bogusImageConfigurable";
483 String iconKey = objectName + ".image";
484 Image expectedImage = new BufferedImage(32, 32, BufferedImage.TYPE_INT_RGB);
485
486
487 ImageSource imageSource = (ImageSource) EasyMock.createMock(ImageSource.class);
488 ImageConfigurable configurable = (ImageConfigurable) EasyMock.createMock(ImageConfigurable.class);
489
490
491 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(null, imageSource, null,
492 null);
493
494 EasyMock.expect(imageSource.getImage(iconKey)).andReturn(expectedImage);
495 configurable.setImage(expectedImage);
496
497 EasyMock.replay(imageSource);
498 EasyMock.replay(configurable);
499
500 configurer.configure(configurable, objectName);
501
502 EasyMock.verify(imageSource);
503 EasyMock.verify(configurable);
504
505 }
506
507 public void testImageConfigurableWithNoImageFound() {
508 String objectName = "bogusImageConfigurable";
509 String iconKey = objectName + ".image";
510
511
512 ImageSource imageSource = (ImageSource) EasyMock.createMock(ImageSource.class);
513 ImageConfigurable configurable = (ImageConfigurable) EasyMock.createMock(ImageConfigurable.class);
514
515
516 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(null, imageSource, null,
517 null);
518
519 EasyMock.expect(imageSource.getImage(iconKey)).andReturn(null);
520
521 EasyMock.replay(imageSource);
522 EasyMock.replay(configurable);
523
524 configurer.configure(configurable, objectName);
525
526 EasyMock.verify(imageSource);
527 EasyMock.verify(configurable);
528
529 }
530
531
532
533
534
535
536 public void testSecurityControllable() {
537
538 String objectName = "bogusSecurityControllable";
539 String securityControllerId = "bogusSecurityControllerId";
540
541
542 SecurityControllerManager controllerManager = (SecurityControllerManager) EasyMock
543 .createMock(SecurityControllerManager.class);
544 SecurityControllable controllable = (SecurityControllable) EasyMock.createMock(SecurityControllable.class);
545 SecurityController controller = (SecurityController) EasyMock.createMock(SecurityController.class);
546
547
548 DefaultApplicationObjectConfigurer configurer = new DefaultApplicationObjectConfigurer(null, null, null,
549 controllerManager);
550
551
552
553
554
555
556 EasyMock.expect(controllable.getSecurityControllerId()).andReturn(securityControllerId);
557 EasyMock.expect(controllerManager.getSecurityController(securityControllerId)).andReturn(null);
558
559
560 EasyMock.replay(controllable);
561 EasyMock.replay(controllerManager);
562 EasyMock.replay(controller);
563
564
565 configurer.configure(controllable, objectName);
566
567
568 EasyMock.verify(controllable);
569 EasyMock.verify(controllerManager);
570 EasyMock.verify(controller);
571
572
573 EasyMock.reset(controllable);
574 EasyMock.reset(controllerManager);
575 EasyMock.reset(controller);
576
577
578
579
580
581
582 EasyMock.expect(controllable.getSecurityControllerId()).andReturn(securityControllerId);
583 EasyMock.expect(controllerManager.getSecurityController(securityControllerId)).andReturn(controller);
584 controller.addControlledObject(controllable);
585
586
587 EasyMock.replay(controllable);
588 EasyMock.replay(controllerManager);
589 EasyMock.replay(controller);
590
591
592 configurer.configure(controllable, objectName);
593
594
595 EasyMock.verify(controllable);
596 EasyMock.verify(controllerManager);
597 EasyMock.verify(controller);
598
599 }
600
601 }