package managers;
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.junit.Before;
import org.junit.Test;
import dao.Dao;
import exceptions.NotFoundException;
import models.IdModel;
public class CrudManagerTest extends Setup {
CrudManager<TestObject> crudManager;
TestObject testObject;
@SuppressWarnings("unchecked")
@Before
public void setup() {
Dao<TestObject> testObjectDaoMock = mock(Dao.class);
crudManager = new CrudManager<TestObject>(TestObject.class, testObjectDaoMock);
testObject = new TestObject();
testObject.id = new Long(1);
List<TestObject> testObjects = new ArrayList<TestObject>();
testObjects.add(testObject);
when(testObjectDaoMock.filter(any(Map.class))).thenReturn(testObjects);
when(testObjectDaoMock.read(testObject.id)).thenReturn(testObject);
when(testObjectDaoMock.create(testObject)).thenReturn(testObject);
when(testObjectDaoMock.update(testObject)).thenReturn(testObject);
}
@Test
public void testLis() {
List<TestObject> testObjects = crudManager.list();
assertEquals(1, testObjects.size());
}
@Test
public void testRead() {
TestObject daoTestObject = crudManager.read(testObject.id);
assertEquals(this.testObject.id, daoTestObject.id);
}
@Test(expected = NotFoundException.class)
public void testBadRead() {
crudManager.read(new Long(44444444));
}
@Test
public void testCreate() {
TestObject newTestObject = new TestObject();
newTestObject.id = new Long(2);
TestObject daoTestObject = crudManager.create(newTestObject);
assertEquals(daoTestObject.id, newTestObject.id);
}
@Test
public void testUpdate() {
testObject.isActive = false;
TestObject daoTestObject = crudManager.update(testObject);
assertEquals(false, daoTestObject.isActive);
}
@Test
public void testDelete() {
crudManager.delete(testObject.id);
assertEquals(false, testObject.isActive);
}
private class TestObject extends IdModel {
}
}