1a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath/* Licensed to the Apache Software Foundation (ASF) under one or more 2a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * contributor license agreements. See the NOTICE file distributed with 3a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * this work for additional information regarding copyright ownership. 4a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0 5a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * (the "License"); you may not use this file except in compliance with 6a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * the License. You may obtain a copy of the License at 7a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * 8a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 9a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * 10a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * Unless required by applicable law or agreed to in writing, software 11a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, 12a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * See the License for the specific language governing permissions and 14a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * limitations under the License. 15a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath */ 16a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 17a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamathpackage org.apache.harmony.tests.java.util.prefs; 18a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 19a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamathimport java.io.NotSerializableException; 20a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamathimport java.util.prefs.PreferenceChangeEvent; 21a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamathimport java.util.prefs.Preferences; 22a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamathimport junit.framework.TestCase; 23a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamathimport org.apache.harmony.testframework.serialization.SerializationTest; 24a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 25a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath/** 26a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath * 27a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath */ 28a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamathpublic class PreferenceChangeEventTest extends TestCase { 29a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 30a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath PreferenceChangeEvent event; 31a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 32a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath public void testPreferenceChangeEventException() { 33a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath try { 34a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath event = new PreferenceChangeEvent(null, "key", "value"); 35a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath fail(); 36a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath } catch (IllegalArgumentException e) { 37a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath } 38a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath } 39a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 40a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath public void testConstructorNullValue() { 41a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath event = new PreferenceChangeEvent(Preferences.userRoot(), "key", null); 42a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertEquals("key", event.getKey()); 43a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertNull(event.getNewValue()); 44a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertSame(Preferences.userRoot(), event.getNode()); 45a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertSame(Preferences.userRoot(), event.getSource()); 46a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 47a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath event = new PreferenceChangeEvent(Preferences.userRoot(), "", null); 48a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertEquals("", event.getKey()); 49a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertNull(event.getNewValue()); 50a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertSame(Preferences.userRoot(), event.getNode()); 51a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertSame(Preferences.userRoot(), event.getSource()); 52a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 53a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath event = new PreferenceChangeEvent(Preferences.userRoot(), null, "value"); 54a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertNull(event.getKey()); 55a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertEquals("value", event.getNewValue()); 56a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertSame(Preferences.userRoot(), event.getNode()); 57a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertSame(Preferences.userRoot(), event.getSource()); 58a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 59a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath event = new PreferenceChangeEvent(Preferences.userRoot(), null, ""); 60a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertNull(event.getKey()); 61a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertEquals("", event.getNewValue()); 62a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertSame(Preferences.userRoot(), event.getNode()); 63a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertSame(Preferences.userRoot(), event.getSource()); 64a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath } 65a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 66a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath public void testConstructor() { 67a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath event = new PreferenceChangeEvent(Preferences.userRoot(), "key", 68a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath "value"); 69a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertEquals("key", event.getKey()); 70a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertEquals("value", event.getNewValue()); 71a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertSame(Preferences.userRoot(), event.getNode()); 72a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath assertSame(Preferences.userRoot(), event.getSource()); 73a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath } 74a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath 75a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath public void testSerialization() throws Exception { 76a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath event = new PreferenceChangeEvent(Preferences.userRoot(), "key", 77a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath "value"); 78a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath try { 79a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath SerializationTest.copySerializable(event); 80a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath fail("No expected NotSerializableException"); 81a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath } catch (NotSerializableException e) { 82a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath } 83a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath } 84a152f62d4d81ef6500b3e02dbc381e2414f9a11fNarayan Kamath} 85