package models.dao;
import static org.fest.assertions.Assertions.assertThat;
import java.util.Map;
import java.util.Set;
import models.Category;
import models.Post;
import org.junit.Test;
import test.IntegrationTest;
public class CategoryDAOTest extends IntegrationTest {
@Test
public void testOptions() {
Map<String, String> options = getInstance(CategoryDAO.class).options();
assertThat(options).isNotNull();
assertThat(options.size()).isGreaterThan(1);
}
@Test
public void testUpdate() {
CategoryDAO categoryDAO = getInstance(CategoryDAO.class);
Category oldCat = categoryDAO.get("category1");
Set<Post> posts = oldCat.getPosts();
int count = posts.size();
Category newCat = new Category();
newCat.setName("testCategory");
// perform operation
categoryDAO.update("category1", newCat);
// verify
Category newCat2 = categoryDAO.get("testCategory");
assertThat(newCat2).isNotNull();
assertThat(newCat2.getPosts()).isNotNull();
assertThat(newCat2.getPosts().size()).isEqualTo(count);
// clean cache and re-verify
categoryDAO.cacheClean("testCategory");
Category newCat3 = categoryDAO.get("testCategory");
assertThat(newCat3).isNotNull();
assertThat(newCat3.getPosts()).isNotNull();
assertThat(newCat3.getPosts().size()).isEqualTo(count);
}
}