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