Witajcie,
Ciąg dalszy mojej przygody z testowaniem. Zrobiłem trochę refactoringów w moim projekcie i powstała klasa taka jak poniżej.
public class ItemLevelRepositoryImpl extends AbstractRepository<ItemLevel> implements ItemLevelRepository {
public ItemLevelRepositoryImpl(DatabaseHelper databaseHelper) {
super(databaseHelper);
}
@Override
public List<ItemLevel> findByItemName(String name) {
return getDatabaseHelper().select("SELECT id, itemName, level, damage FROM ItemLevel WHERE itemName = ?",
new ItemLevelRowMapper(), name);
}
@Override
public ItemLevel findById(Integer id) {
return getDatabaseHelper().selectSingle("SELECT id, itemName, level, damage FROM ItemLevel WHERE id = ?",
new ItemLevelRowMapper(), id);
}
@Override
public void delete(ItemLevel itemLevel) {
getDatabaseHelper().update("DELETE FROM ItemLevel WHERE id = ?", itemLevel.getId());
}
@Override
public void persist(ItemLevel entity) {
getDatabaseHelper().update("INSERT INTO ItemLevel (itemName, level, damage) VALUES (?, ?, ?)",
entity.getItemName(), entity.getLevel(), entity.getDamage());
entity.setId(selectLastInsertId());
}
@Override
public void update(ItemLevel entity) {
getDatabaseHelper().update("UPDATE ItemLevel SET itemName = ?, level = ?, damage = ? WHERE id = ?",
entity.getItemName(), entity.getLevel(), entity.getDamage(), entity.getId());
}
protected static class ItemLevelRowMapper implements DatabaseHelper.RowMapper<ItemLevel> {
@Override
public ItemLevel map(ResultSet resultSet) throws SQLException {
ItemLevel itemLevel = new ItemLevel();
itemLevel.setId(resultSet.getInt("id"));
itemLevel.setItemName(resultSet.getString("itemName"));
itemLevel.setLevel(resultSet.getInt("level"));
itemLevel.setDamage(resultSet.getFloat("damage"));
return itemLevel;
}
}
}
Jak widać w klasie nie ma żadnej logiki.
Powinienem do niej pisać unit testy?
Jak tak to jakie?
Sprawdzające kolejność parametrów?
Pozdrawiam