blob: cba153b14e30faa29297e206261bb1c4c41d184d [file] [log] [blame]
/*
* Copyright 2009 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.dev.util;
import junit.framework.TestCase;
/**
* Tests the StringKey utility type.
*/
public class StringKeyTest extends TestCase {
static final class KeyA extends StringKey {
public KeyA(String value) {
super(value);
}
};
static final class KeyB extends StringKey {
public KeyB(String value) {
super(value);
}
};
/**
* Assert that <code>a > b</code>.
*/
private static <T extends Comparable<T>> void assertGT(T a, T b) {
assertTrue(a.compareTo(b) > 0);
}
/**
* Assert that <code>a < b</code>.
*/
private static <T extends Comparable<T>> void assertLT(T a, T b) {
assertTrue(a.compareTo(b) < 0);
}
public void test() {
StringKey a = new KeyA("hello");
StringKey b = new KeyB("world");
assertEquals(a, a);
assertEquals(a, new KeyA("hello"));
assertLT(a, new KeyA("helloLater"));
assertGT(a, new KeyA("h"));
assertLT(a, b);
assertEquals(b, new KeyB("world"));
assertLT(b, new KeyB("worldLater"));
assertGT(b, new KeyB("w"));
assertGT(b, a);
}
public void testNull() {
StringKey a = new KeyA(null);
StringKey b = new KeyB(null);
assertEquals(a, a);
assertEquals(a, new KeyA(null));
assertLT(a, new KeyA(""));
assertLT(a, b);
assertEquals(new KeyA(null), a);
assertGT(new KeyA(""), a);
assertGT(b, a);
}
}