| /* |
| * 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); |
| } |
| } |