### Question:
CriteriaTypeFactory { public CriteriaType newCriteriaType(String type) { CriteriaType criteriaType = null; Class<? extends CriteriaType> typeClass = myCriteriaTypes.get(type); if (typeClass != null) { try { Constructor<? extends CriteriaType> constructor = typeClass.getConstructor(); criteriaType = constructor.newInstance(); } catch (NoSuchMethodException | InstantiationException | InvocationTargetException | IllegalAccessException e) { LOGGER.error(e, e); } } return criteriaType; } private  CriteriaTypeFactory(); static CriteriaTypeFactory getInstance(); List<String> getAvailableTypes(); CriteriaType newCriteriaType(String type);  }### Answer:
@Test public void testNewCriteriaType() { CriteriaType criteriaType = CriteriaTypeFactory.getInstance().newCriteriaType(UniqueCriteria.CRITERIA_TYPE); assertTrue(criteriaType instanceof UniqueCriteria); criteriaType = CriteriaTypeFactory.getInstance().newCriteriaType(RangeCriteria.CRITERIA_TYPE); assertTrue(criteriaType instanceof RangeCriteria); criteriaType = CriteriaTypeFactory.getInstance().newCriteriaType("something"); assertNull(criteriaType); }