1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.springframework.richclient.dialog;
17
18 import java.awt.event.WindowAdapter;
19 import java.awt.event.WindowEvent;
20
21 import javax.swing.SwingUtilities;
22
23 import org.springframework.binding.value.support.ValueHolder;
24 import org.springframework.richclient.test.SpringRichTestCase;
25
26
27
28
29
30
31 public abstract class ApplicationDialogTestCase extends SpringRichTestCase {
32 private ApplicationDialog applicationDialog;
33
34 private OnAboutToShow onAboutToShow = new OnAboutToShow();
35
36 public void testSetAndGetTitle() {
37 applicationDialog.setTitle("new title");
38
39 assertEquals("new title", applicationDialog.getTitle());
40 assertEquals("new title", applicationDialog.getDialog().getTitle());
41
42 applicationDialog.setTitle("other title");
43
44 assertEquals("other title", applicationDialog.getTitle());
45 assertEquals("other title", applicationDialog.getDialog().getTitle());
46 }
47
48 public void testOnAboutToShowIsCalled() {
49 applicationDialog.getDialog().addWindowListener(new WindowAdapter() {
50 public void windowOpened(WindowEvent e) {
51 SwingUtilities.invokeLater(new Runnable() {
52 public void run() {
53 applicationDialog.getDialog().dispose();
54 }
55 });
56 }
57 });
58 applicationDialog.showDialog();
59
60 assertTrue(onAboutToShow.wasRun());
61 }
62
63 protected final void doSetUp() throws Exception {
64 applicationDialog = createApplicationDialog(onAboutToShow);
65
66 assertNotNull(applicationDialog);
67
68 doMoreSetUp();
69 }
70
71 protected void doMoreSetUp() throws Exception {
72
73 }
74
75 protected abstract ApplicationDialog createApplicationDialog(Runnable onAboutToShow);
76
77 private static class OnAboutToShow implements Runnable {
78 public ValueHolder booleanHolder = new ValueHolder();
79
80 public void run() {
81 booleanHolder.setValue(Boolean.TRUE);
82 }
83
84 public boolean wasRun() {
85 return Boolean.TRUE.equals(booleanHolder.getValue());
86 }
87 }
88 }