import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
-
import org.junit.Test;
public class MultiRegistryTest {
@Test
public void testMultiRegistry() {
- MultiRegistry<Object, Integer> registry = new MultiRegistry<>();
- String first = "first";
- String second = "second";
- String third = "third";
+ final MultiRegistry<Object, Integer> registry = new MultiRegistry<>();
+ final String first = "first";
+ final String second = "second";
+ final String third = "third";
- AbstractRegistration a = registry.register(first, 1);
+ final AbstractRegistration a = registry.register(first, 1);
registry.register(second, 2);
registry.register(third, 3);
assertNull(registry.get("first"));
}
+
+ @Test
+ public void testDifferentNumbers() {
+ final MultiRegistry<Object, Number> registry = new MultiRegistry<>();
+ final String first = "first";
+
+ registry.register(first, new Integer(1));
+ assertEquals(Integer.valueOf(1), registry.get("first"));
+
+ registry.register(first, new Short((short) 1));
+ assertEquals(Integer.valueOf(1), registry.get("first"));
+
+ registry.register(first, new Short((short) 2));
+ assertEquals(Integer.valueOf(1), registry.get("first"));
+ }
+
+ @Test
+ public void testDifferentClasses() {
+ final MultiRegistry<Object, Object> registry = new MultiRegistry<>();
+ final String first = "first";
+ final String second = "second";
+
+ registry.register(first, new Integer(1));
+ assertEquals(Integer.valueOf(1), registry.get("first"));
+
+ registry.register(first, new Character('1'));
+ assertEquals(Integer.valueOf(1), registry.get("first"));
+
+ registry.register(second, new Character('2'));
+ assertEquals(Character.valueOf('2'), registry.get("second"));
+
+ registry.register(second, new Integer(2));
+ assertEquals(Character.valueOf('2'), registry.get("second"));
+
+ registry.register(second, new Object());
+ assertEquals(Character.valueOf('2'), registry.get("second"));
+ }
+
}