### Question:
Model extends BaseObject { public static <T extends Model> T first(Object... paramValues) { throw new UnsupportedOperationException(NIE); } Model(); void updateAttributes(Map<String, Object> attributes); abstract Serializable getId(); static T findById(Serializable id); static long count(); static long count(Filter filter); static List<T> all(); static void deleteAll(); static void deleteAll(Filter filter); static boolean exists(Serializable id); static Filter filter(); static List<T> where(Object... paramValues); static List<T> where(Filter filter); static T one(Object... paramValues); static T first(Object... paramValues); static EntityTransaction beginTxn(); void persist(); void delete(); void merge(); void refresh(); EntityCollection<T> collection(String name);  }### Answer:
@Test public void shouldSearchAndReturnFirst() { DummyModel model = createModel("test123", "test125"); createModel("test123", "test125"); assertEquals(DummyModel.first(new Object[]{"column1", "test123", "column2", "test125"}), model); }
@Test public void shouldSearchAndReturnNullForFirstIfResultsAreEmpty() { assertNull(DummyModel.first(new Object[]{"column1", "unknown"})); }