/* * Copyright 2010 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package com.google.gwt.validation.client.impl; import junit.framework.TestCase; /** * Tests for {@link PathImpl}. */ public class PathImplTest extends TestCase { public void testEquals_root() { PathImpl root = new PathImpl(); PathImpl rootCopy = new PathImpl(); assertEqualsAndHash(root, rootCopy); } public void testEquals_foo() { PathImpl foo = new PathImpl().append("foo"); PathImpl fooCopy = new PathImpl().append("foo"); assertEqualsAndHash(foo, fooCopy); } public void testEqual_fooBarKey() { PathImpl fooBarKey = new PathImpl().append("foo").appendKey("bar", "key"); PathImpl fooBarKeyCopy = new PathImpl().append("foo").appendKey("bar", "key"); assertEqualsAndHash(fooBarKey, fooBarKeyCopy); } public void testEquals_fooBar1() { PathImpl fooBar1 = new PathImpl().append("foo").appendIndex("bar", 1); PathImpl fooBar1Copy = new PathImpl().append("foo").appendIndex("bar", 1); assertEqualsAndHash(fooBar1, fooBar1Copy); } public void testEquals_not() { PathImpl root = new PathImpl(); PathImpl foo = new PathImpl().append("foo"); assertNotEqual(root, foo); PathImpl fooBarKey = new PathImpl().append("foo").appendKey("bar", "key"); PathImpl fooBarNote = new PathImpl().append("foo").appendKey("bar", "note"); assertNotEqual(root, fooBarKey); assertNotEqual(foo, fooBarKey); assertNotEqual(fooBarNote, fooBarKey); PathImpl fooBar1 = new PathImpl().append("foo").appendIndex("bar", 1); PathImpl fooBar2 = new PathImpl().append("foo").appendIndex("bar", 2); assertNotEqual(root, fooBar1); assertNotEqual(foo, fooBar1); assertNotEqual(fooBarKey, fooBar1); assertNotEqual(fooBar2, fooBar1); } protected void assertNotEqual(Object lhs, Object rhs) { assertFalse(lhs + "should not equal " + rhs, lhs.equals(rhs)); } protected void assertEqualsAndHash(Object lhs, Object rhs) { assertEquals(lhs, rhs); assertEquals("hashCode", lhs.hashCode(), rhs.hashCode()); } }