1561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes/*
2561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Licensed to the Apache Software Foundation (ASF) under one or more
3561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  contributor license agreements.  See the NOTICE file distributed with
4561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  this work for additional information regarding copyright ownership.
5561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  The ASF licenses this file to You under the Apache License, Version 2.0
6561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  (the "License"); you may not use this file except in compliance with
7561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  the License.  You may obtain a copy of the License at
8561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
9561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *     http://www.apache.org/licenses/LICENSE-2.0
10561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *
11561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  Unless required by applicable law or agreed to in writing, software
12561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  distributed under the License is distributed on an "AS IS" BASIS,
13561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  See the License for the specific language governing permissions and
15561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes *  limitations under the License.
16561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes */
17561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
18561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespackage org.apache.harmony.luni.tests.java.util;
19561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
20561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Observable;
21561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Observer;
22561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughesimport java.util.Vector;
23561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
24561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughespublic class ObservableTest extends junit.framework.TestCase {
25561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
26561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static class TestObserver implements Observer {
27561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public Vector objv = new Vector();
28561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
29561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int updateCount = 0;
30561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
31561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void update(Observable observed, Object arg) {
32561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			++updateCount;
33561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			objv.add(arg);
34561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
35561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
36561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public int updateCount() {
37561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return updateCount;
38561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
39561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
40561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
41561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
42561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static class DeleteTestObserver implements Observer {
43561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		int updateCount = 0;
44561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
45561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		boolean deleteAll = false;
46561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
47561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public DeleteTestObserver(boolean all) {
48561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			deleteAll = all;
49561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
50561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
51561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void update(Observable observed, Object arg) {
52561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			++updateCount;
53561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			if (deleteAll)
54561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				observed.deleteObservers();
55561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			else
56561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				observed.deleteObserver(this);
57561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
58561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
59561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public int updateCount() {
60561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			return updateCount;
61561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
62561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
63561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
64561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
65561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	static class TestObservable extends Observable {
66561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		public void doChange() {
67561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			setChanged();
68561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
69561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
70561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
71561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	Observer observer;
72561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
73561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	TestObservable observable;
74561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
75561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
76561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Observable#Observable()
77561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
78561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_Constructor() {
79561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method java.util.Observable()
80561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                Observable ov = new Observable();
81561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertTrue("Wrong initial values.", !ov.hasChanged());
82561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes                assertEquals("Wrong initial values.", 0, ov.countObservers());
83561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
84561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
85561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
86561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Observable#addObserver(java.util.Observer)
87561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
88561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_addObserverLjava_util_Observer() {
89561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
90561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.util.Observable.addObserver(java.util.Observer)
91561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		TestObserver test = new TestObserver();
92561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(test);
93561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Failed to add observer", 1, observable.countObservers());
94561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(test);
95561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Duplicate observer", 1, observable.countObservers());
96561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
97561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Observable o = new Observable();
98561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		try {
99561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			o.addObserver(null);
100561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			fail("Expected adding a null observer to throw a NPE.");
101561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		} catch (NullPointerException ex) {
102561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes			// expected;
103561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		}
104561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
105561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
106561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
107561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Observable#countObservers()
108561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
109561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_countObservers() {
110561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method int java.util.Observable.countObservers()
111561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("New observable had > 0 observers", 0, observable
112561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.countObservers());
113561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(new TestObserver());
114561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Observable with observer returned other than 1", 1, observable
115561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.countObservers());
116561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
117561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
118561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
119561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Observable#deleteObserver(java.util.Observer)
120561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
121561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_deleteObserverLjava_util_Observer() {
122561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
123561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.util.Observable.deleteObserver(java.util.Observer)
124561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(observer = new TestObserver());
125561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.deleteObserver(observer);
126561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Failed to delete observer",
127561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				0, observable.countObservers());
128561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
129561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
130561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
131561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
132561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Observable#deleteObservers()
133561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
134561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_deleteObservers() {
135561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Observable.deleteObservers()
136561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(new TestObserver());
137561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(new TestObserver());
138561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(new TestObserver());
139561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(new TestObserver());
140561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(new TestObserver());
141561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(new TestObserver());
142561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(new TestObserver());
143561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(new TestObserver());
144561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.deleteObservers();
145561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Failed to delete observers",
146561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				0, observable.countObservers());
147561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
148561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
149561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
150561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Observable#hasChanged()
151561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
152561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_hasChanged() {
153561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// TODO : Implement test
154561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
155561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
156561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
157561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Observable#notifyObservers()
158561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
159561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_notifyObservers() {
160561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void java.util.Observable.notifyObservers()
161561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(observer = new TestObserver());
162561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.notifyObservers();
163561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Notified when unchnaged", 0, ((TestObserver) observer)
164561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.updateCount());
165561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		((TestObservable) observable).doChange();
166561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.notifyObservers();
167561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Failed to notify",
168561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				1, ((TestObserver) observer).updateCount());
169561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
170561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		DeleteTestObserver observer1, observer2;
171561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.deleteObservers();
172561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(observer1 = new DeleteTestObserver(false));
173561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(observer2 = new DeleteTestObserver(false));
174561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.doChange();
175561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.notifyObservers();
176561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Failed to notify all", observer1.updateCount() == 1
177561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				&& observer2.updateCount() == 1);
178561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Failed to delete all", 0, observable.countObservers());
179561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
180561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(observer1 = new DeleteTestObserver(false));
181561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(observer2 = new DeleteTestObserver(false));
182561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.doChange();
183561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.notifyObservers();
184561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Failed to notify all 2", observer1.updateCount() == 1
185561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				&& observer2.updateCount() == 1);
186561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Failed to delete all 2", 0, observable.countObservers());
187561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
188561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
189561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
190561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * @tests java.util.Observable#notifyObservers(java.lang.Object)
191561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
192561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	public void test_notifyObserversLjava_lang_Object() {
193561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// Test for method void
194561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		// java.util.Observable.notifyObservers(java.lang.Object)
195561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		Object obj;
196561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.addObserver(observer = new TestObserver());
197561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.notifyObservers();
198561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Notified when unchanged", 0, ((TestObserver) observer)
199561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.updateCount());
200561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		((TestObservable) observable).doChange();
201561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable.notifyObservers(obj = new Object());
202561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertEquals("Failed to notify",
203561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				1, ((TestObserver) observer).updateCount());
204561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		assertTrue("Failed to pass Object arg", ((TestObserver) observer).objv
205561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes				.elementAt(0).equals(obj));
206561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
207561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
208561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
209561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Sets up the fixture, for example, open a network connection. This method
210561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * is called before a test is executed.
211561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
212561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	protected void setUp() {
213561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes		observable = new TestObservable();
214561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
215561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes
216561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	/**
217561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * Tears down the fixture, for example, close a network connection. This
218561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 * method is called after a test is executed.
219561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	 */
220561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	protected void tearDown() {
221561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes	}
222561ee011997c6c2f1befbfaa9d5f0a99771c1d63Elliott Hughes}
223