1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/*
2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Copyright (C) 2008 The Android Open Source Project
3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License");
5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * you may not use this file except in compliance with the License.
6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * You may obtain a copy of the License at
7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0
9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project *
10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software
11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS,
12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and
14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License.
15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */
16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
17789c3a2e66efcf45c5b1c3cfd457dda7ce4f4ad8Jesse Wilsonpackage libcore.java.util;
18adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Observable;
20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.util.Observer;
21789c3a2e66efcf45c5b1c3cfd457dda7ce4f4ad8Jesse Wilsonimport junit.framework.TestCase;
22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
23789c3a2e66efcf45c5b1c3cfd457dda7ce4f4ad8Jesse Wilsonpublic class OldObserverTest extends TestCase {
24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    class Mock_Observer implements Observer {
26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        int updateCount = 0;
27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void update(Observable observed, Object arg) {
29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            ++updateCount;
30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public int getUpdateCount() {
33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            return updateCount;
34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    class TestObservable extends Observable {
38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        public void doChange() {
39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project            setChanged();
40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        }
41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project
43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    public void testUpdate() {
44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        TestObservable observable = new TestObservable();
45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        Mock_Observer observer = null;
46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        observable.addObserver(observer = new Mock_Observer());
47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        observable.notifyObservers();
48789c3a2e66efcf45c5b1c3cfd457dda7ce4f4ad8Jesse Wilson        assertEquals(0, observer.getUpdateCount());
49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        observable.doChange();
50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project        observable.notifyObservers();
51789c3a2e66efcf45c5b1c3cfd457dda7ce4f4ad8Jesse Wilson        assertEquals(1, observer.getUpdateCount());
52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project    }
53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project}
54