001 // Copyright 2005 The Apache Software Foundation 002 // 003 // Licensed under the Apache License, Version 2.0 (the "License"); 004 // you may not use this file except in compliance with the License. 005 // You may obtain a copy of the License at 006 // 007 // http://www.apache.org/licenses/LICENSE-2.0 008 // 009 // Unless required by applicable law or agreed to in writing, software 010 // distributed under the License is distributed on an "AS IS" BASIS, 011 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 012 // See the License for the specific language governing permissions and 013 // limitations under the License. 014 015 package org.apache.tapestry.record; 016 017 import org.apache.tapestry.BaseComponentTestCase; 018 import org.testng.annotations.Test; 019 020 /** 021 * Tests for {@link org.apache.tapestry.record.ChangeKey}. 022 * 023 * @author Howard M. Lewis Ship 024 * @since 4.0 025 */ 026 @Test 027 public class TestChangeKey extends BaseComponentTestCase 028 { 029 public void testSetters() 030 { 031 ChangeKey key = new ChangeKey("path", "name"); 032 033 assertEquals("path", key.getComponentPath()); 034 assertEquals("name", key.getPropertyName()); 035 036 key = new ChangeKey(null, "foo"); 037 038 assertNull(key.getComponentPath()); 039 assertEquals("foo", key.getPropertyName()); 040 } 041 042 public void testHashCode() 043 { 044 ChangeKey key1 = new ChangeKey("path", "name1"); 045 ChangeKey key2 = new ChangeKey("path", "name1"); 046 ChangeKey key3 = new ChangeKey(null, "name2"); 047 048 assertEquals(key1.hashCode(), key2.hashCode()); 049 assertTrue(key1.hashCode() != key3.hashCode()); 050 } 051 052 public void testEquals() 053 { 054 ChangeKey key1 = new ChangeKey("path", "name1"); 055 ChangeKey key2 = new ChangeKey("path", "name1"); 056 ChangeKey key3 = new ChangeKey(null, "name2"); 057 058 assertTrue(key1.equals(key2)); 059 assertFalse(key1.equals(key3)); 060 061 assertFalse(key1.equals(null)); 062 assertTrue(key1.equals(key1)); 063 assertFalse(key1.equals("foo")); 064 } 065 }