blob: e8a1fd77b809caade135109f8f899343b911eed5 [file] [log] [blame]
/*
* 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());
}
}