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.tests.java.util.prefs;
18
19import java.io.NotSerializableException;
20import java.util.prefs.PreferenceChangeEvent;
21import java.util.prefs.Preferences;
22import junit.framework.TestCase;
23import org.apache.harmony.testframework.serialization.SerializationTest;
24
25/**
26 *
27 */
28public class PreferenceChangeEventTest extends TestCase {
29
30    PreferenceChangeEvent event;
31
32    public void testPreferenceChangeEventException() {
33        try {
34            event = new PreferenceChangeEvent(null, "key", "value");
35            fail();
36        } catch (IllegalArgumentException e) {
37        }
38    }
39
40    public void testConstructorNullValue() {
41        event = new PreferenceChangeEvent(Preferences.userRoot(), "key", null);
42        assertEquals("key", event.getKey());
43        assertNull(event.getNewValue());
44        assertSame(Preferences.userRoot(), event.getNode());
45        assertSame(Preferences.userRoot(), event.getSource());
46
47        event = new PreferenceChangeEvent(Preferences.userRoot(), "", null);
48        assertEquals("", event.getKey());
49        assertNull(event.getNewValue());
50        assertSame(Preferences.userRoot(), event.getNode());
51        assertSame(Preferences.userRoot(), event.getSource());
52
53        event = new PreferenceChangeEvent(Preferences.userRoot(), null, "value");
54        assertNull(event.getKey());
55        assertEquals("value", event.getNewValue());
56        assertSame(Preferences.userRoot(), event.getNode());
57        assertSame(Preferences.userRoot(), event.getSource());
58
59        event = new PreferenceChangeEvent(Preferences.userRoot(), null, "");
60        assertNull(event.getKey());
61        assertEquals("", event.getNewValue());
62        assertSame(Preferences.userRoot(), event.getNode());
63        assertSame(Preferences.userRoot(), event.getSource());
64    }
65
66    public void testConstructor() {
67        event = new PreferenceChangeEvent(Preferences.userRoot(), "key",
68                "value");
69        assertEquals("key", event.getKey());
70        assertEquals("value", event.getNewValue());
71        assertSame(Preferences.userRoot(), event.getNode());
72        assertSame(Preferences.userRoot(), event.getSource());
73    }
74
75    public void testSerialization() throws Exception {
76        event = new PreferenceChangeEvent(Preferences.userRoot(), "key",
77                "value");
78        try {
79            SerializationTest.copySerializable(event);
80            fail("No expected NotSerializableException");
81        } catch (NotSerializableException e) {
82        }
83    }
84}
85