package cc.blynk.utils; import cc.blynk.server.core.dao.FileManager; import cc.blynk.server.core.dao.UserKey; import cc.blynk.server.core.model.AppName; import cc.blynk.server.core.model.auth.User; import org.junit.Before; import org.junit.Test; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Map; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; /** * User: ddumanskiy * Date: 09.12.13 * Time: 8:07 */ public class FileManagerIntegrationTest { private final User user1 = new User("name1", "pass1", AppName.BLYNK, "local", false, false); private final User user2 = new User("name2", "pass2", AppName.BLYNK, "local", false, false); private FileManager fileManager; @Before public void cleanup() throws IOException { String dataFolder = Paths.get(System.getProperty("java.io.tmpdir"), "blynk").toString(); org.apache.commons.io.FileUtils.deleteDirectory(Paths.get(dataFolder).toFile()); fileManager = new FileManager(dataFolder); } @Test public void testGenerateFileName() { Path file = fileManager.generateFileName(user1.email, user1.appName); assertEquals("name1.Blynk.user", file.getFileName().toString()); } @Test public void testNotNullTokenManager() throws IOException { fileManager.overrideUserFile(user1); Map<UserKey, User> users = fileManager.deserializeUsers(); assertNotNull(users); assertNotNull(users.get(new UserKey(user1.email, AppName.BLYNK))); } @Test public void testCreationTempFile() throws IOException { fileManager.overrideUserFile(user1); //file existence ignored fileManager.overrideUserFile(user1); } @Test public void testReadListOfFiles() throws IOException { fileManager.overrideUserFile(user1); fileManager.overrideUserFile(user2); Path fakeFile = Paths.get(fileManager.getDataDir().toString(), "123.txt"); Files.deleteIfExists(fakeFile); Files.createFile(fakeFile); Map<UserKey, User> users = fileManager.deserializeUsers(); assertNotNull(users); assertEquals(2, users.size()); assertNotNull(users.get(new UserKey(user1.email, AppName.BLYNK))); assertNotNull(users.get(new UserKey(user2.email, AppName.BLYNK))); } @Test public void testOverrideFiles() throws IOException { fileManager.overrideUserFile(user1); fileManager.overrideUserFile(user1); Map<UserKey, User> users = fileManager.deserializeUsers(); assertNotNull(users); assertNotNull(users.get(new UserKey(user1.email, AppName.BLYNK))); } }