1f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project/* 2f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * this work for additional information regarding copyright ownership. 5f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * (the "License"); you may not use this file except in compliance with 7f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * the License. You may obtain a copy of the License at 8f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 9f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * 11f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * See the License for the specific language governing permissions and 15f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * limitations under the License. 16f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 17f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 18f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpackage tests.api.java.util; 19f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 20f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetNew; 21f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargets; 22f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestLevel; 23f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport dalvik.annotation.TestTargetClass; 24f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 25f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Observable; 26f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Observer; 27f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectimport java.util.Vector; 28f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 29f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project@TestTargetClass(Observable.class) 30f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Projectpublic class ObservableTest extends junit.framework.TestCase { 31f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 32f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static class TestObserver implements Observer { 33f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public Vector objv = new Vector(); 34f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 35f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int updateCount = 0; 36f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 37f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void update(Observable observed, Object arg) { 38f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ++updateCount; 39f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project objv.add(arg); 40f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 41f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 42f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public int updateCount() { 43f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return updateCount; 44f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 45f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 46f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 47f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 48f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static class DeleteTestObserver implements Observer { 49f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project int updateCount = 0; 50f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 51f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project boolean deleteAll = false; 52f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 53f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public DeleteTestObserver(boolean all) { 54f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project deleteAll = all; 55f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 56f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 57f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void update(Observable observed, Object arg) { 58f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ++updateCount; 59f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project if (deleteAll) 60f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observed.deleteObservers(); 61f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project else 62f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observed.deleteObserver(this); 63f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 64f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 65f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public int updateCount() { 66f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project return updateCount; 67f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 68f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 69f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 70f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 71f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project static class TestObservable extends Observable { 72f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void doChange() { 73f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project setChanged(); 74f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 75f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 76f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void clearChange() { 77f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project clearChanged(); 78f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 79f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 80f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 81f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Observer observer; 82f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 83f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestObservable observable; 84f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 85f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 86f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Observable#Observable() 87f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 88f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 89f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 90f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 91f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "Observable", 92f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 93f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 94f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_Constructor() { 95f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method java.util.Observable() 96f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 97f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Observable ov = new Observable(); 98f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Wrong initial values.", !ov.hasChanged()); 99f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Wrong initial values.", 0, ov.countObservers()); 100f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Exception e) { 101f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Exception during test : " + e.getMessage()); 102f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 103f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 104f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 105f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 106f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Observable#addObserver(java.util.Observer) 107f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 108f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 109f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 110f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 111f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "addObserver", 112f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.Observer.class} 113f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 114f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_addObserverLjava_util_Observer() { 115f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void 116f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.util.Observable.addObserver(java.util.Observer) 117f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project TestObserver test = new TestObserver(); 118f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(test); 119f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to add observer", 1, observable.countObservers()); 120f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(test); 121f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Duplicate observer", 1, observable.countObservers()); 122f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 123f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Observable o = new Observable(); 124f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project try { 125f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project o.addObserver(null); 126f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Expected adding a null observer to throw a NPE."); 127f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (NullPointerException ex) { 128f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // expected; 129f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } catch (Throwable ex) { 130f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project fail("Did not expect adding a new observer to throw a " 131f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project + ex.getClass().getName()); 132f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 133f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 134f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 135f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 136f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Observable#countObservers() 137f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 138f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 139f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 140f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 141f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "countObservers", 142f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 143f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 144f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_countObservers() { 145f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method int java.util.Observable.countObservers() 146f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("New observable had > 0 observers", 0, observable 147f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .countObservers()); 148f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(new TestObserver()); 149f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Observable with observer returned other than 1", 1, observable 150f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .countObservers()); 151f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 152f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 153f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 154f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Observable#deleteObserver(java.util.Observer) 155f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 156f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 157f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 158f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 159f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "deleteObserver", 160f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.util.Observer.class} 161f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 162f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_deleteObserverLjava_util_Observer() { 163f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void 164f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.util.Observable.deleteObserver(java.util.Observer) 165f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(observer = new TestObserver()); 166f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.deleteObserver(observer); 167f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to delete observer", 168f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 0, observable.countObservers()); 169f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.deleteObserver(observer); 170f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.deleteObserver(null); 171f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 172f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 173f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 174f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Observable#deleteObservers() 175f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 176f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 177f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 178f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 179f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "deleteObservers", 180f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 181f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 182f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_deleteObservers() { 183f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void java.util.Observable.deleteObservers() 184f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(new TestObserver()); 185f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(new TestObserver()); 186f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(new TestObserver()); 187f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(new TestObserver()); 188f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(new TestObserver()); 189f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(new TestObserver()); 190f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(new TestObserver()); 191f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(new TestObserver()); 192f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.deleteObservers(); 193f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to delete observers", 194f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 0, observable.countObservers()); 195f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 196f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 197f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 198f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Observable#hasChanged() 199f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 200f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargets({ 201f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 202f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 203f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 204f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "hasChanged", 205f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 206f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 207f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 208f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 209f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 210f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setChanged", 211f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 212f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 213f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }) 214f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_hasChanged() { 215f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(observable.hasChanged()); 216f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(observer = new TestObserver()); 217f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.doChange(); 218f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(observable.hasChanged()); 219f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 220f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 221f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargets({ 222f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 223f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 224f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 225f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "setChanged", 226f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 227f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ), 228f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 229f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 230f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 231f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "clearChanged", 232f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 233f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 234f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project }) 235f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_clearChanged() { 236f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(observable.hasChanged()); 237f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(observer = new TestObserver()); 238f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.doChange(); 239f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue(observable.hasChanged()); 240f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.clearChange(); 241f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertFalse(observable.hasChanged()); 242f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 243f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 244f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 245f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Observable#notifyObservers() 246f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 247f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 248f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 249f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 250f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "notifyObservers", 251f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {} 252f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 253f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_notifyObservers() { 254f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void java.util.Observable.notifyObservers() 255f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(observer = new TestObserver()); 256f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.notifyObservers(); 257f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Notified when unchnaged", 0, ((TestObserver) observer) 258f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .updateCount()); 259f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ((TestObservable) observable).doChange(); 260f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.notifyObservers(); 261f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to notify", 262f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1, ((TestObserver) observer).updateCount()); 263f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 264f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project DeleteTestObserver observer1, observer2; 265f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.deleteObservers(); 266f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(observer1 = new DeleteTestObserver(false)); 267f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(observer2 = new DeleteTestObserver(false)); 268f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.doChange(); 269f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.notifyObservers(); 270f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Failed to notify all", observer1.updateCount() == 1 271f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project && observer2.updateCount() == 1); 272f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to delete all", 0, observable.countObservers()); 273f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 274f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(observer1 = new DeleteTestObserver(false)); 275f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(observer2 = new DeleteTestObserver(false)); 276f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.doChange(); 277f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.notifyObservers(); 278f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Failed to notify all 2", observer1.updateCount() == 1 279f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project && observer2.updateCount() == 1); 280f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to delete all 2", 0, observable.countObservers()); 281f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 282f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 283f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 284f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * @tests java.util.Observable#notifyObservers(java.lang.Object) 285f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 286f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project @TestTargetNew( 287f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project level = TestLevel.COMPLETE, 288f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project notes = "", 289f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project method = "notifyObservers", 290f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project args = {java.lang.Object.class} 291f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ) 292f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project public void test_notifyObserversLjava_lang_Object() { 293f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // Test for method void 294f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project // java.util.Observable.notifyObservers(java.lang.Object) 295f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project Object obj; 296f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.addObserver(observer = new TestObserver()); 297f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.notifyObservers(); 298f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Notified when unchanged", 0, ((TestObserver) observer) 299f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .updateCount()); 300f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project ((TestObservable) observable).doChange(); 301f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable.notifyObservers(obj = new Object()); 302f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertEquals("Failed to notify", 303f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 1, ((TestObserver) observer).updateCount()); 304f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project assertTrue("Failed to pass Object arg", ((TestObserver) observer).objv 305f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project .elementAt(0).equals(obj)); 306f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 307f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 308f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 309f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Sets up the fixture, for example, open a network connection. This method 310f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * is called before a test is executed. 311f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 312f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void setUp() { 313f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project observable = new TestObservable(); 314f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 315f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project 316f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project /** 317f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * Tears down the fixture, for example, close a network connection. This 318f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project * method is called after a test is executed. 319f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project */ 320f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project protected void tearDown() { 321f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project } 322f6c387128427e121477c1b32ad35cdcaa5101ba3The Android Open Source Project} 323