package fi.arcusys.koku.common.service;
import static junit.framework.Assert.assertFalse;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNull;
import static junit.framework.Assert.assertTrue;
import java.util.List;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import fi.arcusys.koku.common.service.MessageDAO;
import fi.arcusys.koku.common.service.MessageFolderDAO;
import fi.arcusys.koku.common.service.datamodel.Folder;
import fi.arcusys.koku.common.service.datamodel.FolderType;
import fi.arcusys.koku.common.service.datamodel.Message;
import fi.arcusys.koku.common.service.datamodel.MessageRef;
import fi.arcusys.koku.common.service.datamodel.User;
import fi.arcusys.koku.common.service.impl.MessageDAOImpl;
import fi.arcusys.koku.common.service.impl.MessageFolderDAOImpl;
/**
* @author Dmitry Kudinov (dmitry.kudinov@arcusys.fi)
* May 18, 2011
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"/test-common-context.xml"})
public class MessageFolderDAOTest {
@Autowired
private MessageFolderDAO folderDao;
@Autowired
private MessageDAO messageDao;
@Autowired
private CommonTestUtil testUtil;
private User testUser;
@Before
public void setUp() {
testUser = testUtil.getUserByUid("testUser123");
}
@After
public void tearDown() {
testUser = null;
}
@Test
public void testFolderCRUD() {
Folder folder = folderDao.getFolderByUserAndType(testUser, FolderType.Outbox);
if (folder != null) {
folderDao.delete(folder);
}
folder = folderDao.getFolderByUserAndType(testUser, FolderType.Outbox);
assertNull("New folder: ", folder);
folderDao.createNewFolderByUserAndType(testUser, FolderType.Outbox);
folder = folderDao.getFolderByUserAndType(testUser, FolderType.Outbox);
assertNotNull("New folder exists: ", folder);
folderDao.delete(folder);
folder = folderDao.getFolderByUserAndType(testUser, FolderType.Outbox);
assertNull("Folder deleted: ", folder);
}
@Test
public void testStoreMessageInFolder() {
final Message message = new Message();
message.setFrom(testUser);
message.setText("sample text");
final MessageRef storedMessage = folderDao.storeMessage(testUser, FolderType.Outbox, messageDao.create(message));
assertNotNull("Message stored: ", storedMessage);
List<MessageRef> messages = folderDao.getMessagesByUserAndFolderType(testUser, FolderType.Outbox);
assertFalse("Messages exists in user's Sent folder: ", messages.isEmpty());
assertTrue("Message found in user's Sent folder: ", messages.contains(storedMessage));
}
}