@Test public void testName() throws Exception { @SuppressWarnings("unchecked") Getter<Object, Object> getter = mock(Getter.class); EnumUnspecifiedTypeGetter<Object, ENUM> eGetter = new EnumUnspecifiedTypeGetter<Object, ENUM>(getter, ENUM.class); when(getter.get(any())).thenReturn("ZERO", "ONE", "TWO", "THREE"); assertEquals(ENUM.ZERO, eGetter.get(null)); assertEquals(ENUM.ONE, eGetter.get(null)); assertEquals(ENUM.TWO, eGetter.get(null)); assertEquals(ENUM.THREE, eGetter.get(null)); eGetter.toString(); }
@Test public void testOrdinal() throws Exception { @SuppressWarnings("unchecked") Getter<Object, Object> getter = mock(Getter.class); EnumUnspecifiedTypeGetter<Object, ENUM> eGetter = new EnumUnspecifiedTypeGetter<Object, ENUM>(getter, ENUM.class); when(getter.get(any())).thenReturn(0, 1, 2, 3); assertEquals(ENUM.ZERO, eGetter.get(null)); assertEquals(ENUM.ONE, eGetter.get(null)); assertEquals(ENUM.TWO, eGetter.get(null)); assertEquals(ENUM.THREE, eGetter.get(null)); } }
@SuppressWarnings("unchecked") public <E extends Enum<E>> Getter<GettableByIndexData, E> enumGetter(DatastaxColumnKey key, Class<?> enumClass) { if (key.getDataType() != null) { final Class<?> javaClass = key.getDataType() != null ? DataTypeHelper.asJavaClass(key.getDataType()) : null; if (Number.class.isAssignableFrom(javaClass)) { return new OrdinalEnumGetter<GettableByIndexData, E>(new DatastaxIntegerGetter(key.getIndex()), (Class<E>)enumClass); } else if (String.class.equals(javaClass)) { return new StringEnumGetter<GettableByIndexData, E>(new DatastaxStringGetter(key.getIndex()), (Class<E>)enumClass); } } else { return new EnumUnspecifiedTypeGetter<GettableByIndexData, E>(new DatastaxObjectGetter(key.getIndex()), (Class<E>)enumClass); } return null; } }