/**
*
*/
package fr.cedrik.email;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertSame;
import static org.junit.Assert.assertTrue;
import java.util.List;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import fr.cedrik.email.FoldersList;
import fr.cedrik.inotes.Folder;
/**
* @author Cédrik LIME
*/
public class FoldersListTest {
private FoldersList folders;
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Before
public void setUp() throws Exception {
folders = new FoldersList();
folders.add(newFolder(Folder.INBOX, "Courrier en arrivée", 0, "5"));
folders.add(newFolder(Folder.DRAFTS, "Brouillons", 0, "7"));
folders.add(newFolder(Folder.SENT, "Envoyés", 0, "8"));
folders.add(newFolder(Folder.FOLLOW_UP, "Suivi", 0, "9"));
folders.add(newFolder(Folder.ALL, "Tous documents", 0, "10"));
folders.add(newFolder("d8d6cf6690ebd104c12579a30031a548", "Archives", 1, "15.2"));
folders.add(newFolder("ffd17d9ac6bd6562c12579a30031a954", "2011", 2, "15.2.1"));
folders.add(newFolder("ab71fccc3fc4ea89c12579a3004a28de", "2012", 2, "15.2.2"));
folders.add(newFolder("836830748714d965c12579a30031c830", "Clients", 1, "15.3"));
folders.add(newFolder("49ea3e6e51c0069bc1257a390049dd75", "B", 2, "15.3.1"));
folders.add(newFolder("91039e5369936aa2c12579a30031cfb6", "N", 2, "15.3.2"));
folders.add(newFolder("521eda9bfc78277bc12579e900366124", "BC", 3, "15.3.2.1"));
folders.add(newFolder("1d21da66bd0819ddc12579a5004abc64", "H", 3, "15.3.2.2"));
folders.add(newFolder("d5ab55f603d96fabc12579ad003275f6", "B", 4, "15.3.2.2.1"));
folders.add(newFolder("a6b8339296d84966c12579b80046db07", "C", 4, "15.3.2.2.2"));
folders.add(newFolder("3ebf09e0ed2d77acc12579b80046e72c", "L", 4, "15.3.2.2.3"));
folders.add(newFolder("2d88f69c6b89b047c12579a5004ac10c", "P", 4, "15.3.2.2.4"));
folders.add(newFolder("036a2778207837cfc12579bb00344fe3", "T", 3, "15.3.2.3"));
folders.add(newFolder("9d02b28ebc2d741bc12579c3006981c6", "UC", 3, "15.3.2.4"));
folders.add(newFolder("ee09276d35e84952c12579a400363f42", "YP", 3, "15.3.2.5"));
}
@After
public void tearDown() throws Exception {
folders = null;
}
protected Folder newFolder(String id, String name, int levelNumber, String levelTree) {
Folder folder = new Folder();
folder.id = id;
folder.name = name;
folder.levelNumber = levelNumber;
folder.levelTree = levelTree;
return folder;
}
/**
* Test method for {@link fr.cedrik.inotes.FoldersList#getInbox()}.
*/
@Test
public void testGetInbox() {
Folder folder = folders.getInbox();
assertNotNull("getInbox()", folder);
assertSame(folder, folders.getInbox());
assertSame(folder, folders.getFolderById(Folder.INBOX));
}
/**
* Test method for {@link fr.cedrik.inotes.FoldersList#getFolderById(java.lang.String)}.
*/
@Test
public void testGetFolderById() {
assertSame(folders.getInbox(), folders.getFolderById(Folder.INBOX));
}
/**
* Test method for {@link fr.cedrik.inotes.FoldersList#getFolderByLevelTree(java.lang.String)}.
*/
@Test
public void testGetFolderByLevelTree() {
//folders.add(newFolder("521eda9bfc78277bc12579e900366124", "BC", 3, "15.3.2.1"));
Folder folder = folders.getFolderByLevelTree("15.3.2.1");
assertEquals("id", "521eda9bfc78277bc12579e900366124", folder.getId());
assertEquals("name", "BC", folder.getName());
assertEquals("levelNumber", 3, folder.levelNumber);
assertEquals("levelTree", "15.3.2.1", folder.levelTree);
}
/**
* Test method for {@link fr.cedrik.inotes.FoldersList#getParent(fr.cedrik.inotes.Folder)}.
*/
@Test
public void testGetParent() {
Folder child = folders.getFolderById("91039e5369936aa2c12579a30031cfb6");
Folder parent = folders.getFolderById("836830748714d965c12579a30031c830");
assertSame(parent, folders.getParent(child));
Folder root = folders.getInbox();
assertNull("Inbox", folders.getParent(root));
root = folders.getFolderById("d8d6cf6690ebd104c12579a30031a548");
assertNull("Archives", folders.getParent(root));
}
/**
* Test method for {@link fr.cedrik.inotes.FoldersList#getFoldersChain(fr.cedrik.inotes.Folder)}.
*/
@Test
public void testGetFoldersChain() {
Folder folder;
List<Folder> chain;
folder = folders.getInbox();
chain = folders.getFoldersChain(folder);
assertNotNull("Inbox", chain);
assertTrue("Inbox.size", chain.size() == 1);
folder = folders.getFolderById("d8d6cf6690ebd104c12579a30031a548");
chain = folders.getFoldersChain(folder);
assertNotNull("Archives", chain);
assertTrue("Archives.size", chain.size() == 1);
folder = folders.getFolderById("ab71fccc3fc4ea89c12579a3004a28de");
chain = folders.getFoldersChain(folder);
assertNotNull("2012", chain);
assertTrue("2012.size", chain.size() == 2);
}
}