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