/* * Copyright (c) 2015-present, Parse, LLC. * All rights reserved. * * This source code is licensed under the BSD-style license found in the * LICENSE file in the root directory of this source tree. An additional grant * of patent rights can be found in the PATENTS file in the same directory. */ package com.parse; import org.junit.Rule; import org.junit.Test; import org.junit.rules.TemporaryFolder; import java.io.File; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertNotNull; public class InstallationIdTest { @Rule public TemporaryFolder temporaryFolder = new TemporaryFolder(); @Test public void testGetGeneratesInstallationIdAndFile() throws Exception{ File installationIdFile = new File(temporaryFolder.getRoot(), "installationId"); InstallationId installationId = new InstallationId(installationIdFile); String installationIdString = installationId.get(); assertNotNull(installationIdString); assertEquals(installationIdString, ParseFileUtils.readFileToString(installationIdFile, "UTF-8")); } @Test public void testGetReadsInstallationIdFromFile() throws Exception { File installationIdFile = new File(temporaryFolder.getRoot(), "installationId"); InstallationId installationId = new InstallationId(installationIdFile); ParseFileUtils.writeStringToFile(installationIdFile, "test_installation_id", "UTF-8"); assertEquals("test_installation_id", installationId.get()); } @Test public void testSetWritesInstallationIdToFile() throws Exception { File installationIdFile = new File(temporaryFolder.getRoot(), "installationId"); InstallationId installationId = new InstallationId(installationIdFile); installationId.set("test_installation_id"); assertEquals("test_installation_id", ParseFileUtils.readFileToString(installationIdFile, "UTF-8")); } @Test public void testSetThenGet() { File installationIdFile = new File(temporaryFolder.getRoot(), "installationId"); InstallationId installationId = new InstallationId(installationIdFile); installationId.set("test_installation_id"); assertEquals("test_installation_id", installationId.get()); } @Test public void testInstallationIdIsCachedInMemory() { File installationIdFile = new File(temporaryFolder.getRoot(), "installationId"); InstallationId installationId = new InstallationId(installationIdFile); String installationIdString = installationId.get(); ParseFileUtils.deleteQuietly(installationIdFile); assertEquals(installationIdString, installationId.get()); } @Test public void testInstallationIdIsRandom() { File installationIdFile = new File(temporaryFolder.getRoot(), "installationId"); String installationIdString = new InstallationId(installationIdFile).get(); ParseFileUtils.deleteQuietly(installationIdFile); assertFalse(installationIdString.equals(new InstallationId(installationIdFile).get())); } @Test public void testSetSameDoesNotWriteToDisk() { File installationIdFile = new File(temporaryFolder.getRoot(), "installationId"); InstallationId installationId = new InstallationId(installationIdFile); String installationIdString = installationId.get(); ParseFileUtils.deleteQuietly(installationIdFile); installationId.set(installationIdString); assertFalse(installationIdFile.exists()); } @Test public void testSetNullDoesNotPersist() { File installationIdFile = new File(temporaryFolder.getRoot(), "installationId"); InstallationId installationId = new InstallationId(installationIdFile); String installationIdString = installationId.get(); installationId.set(null); assertEquals(installationIdString, installationId.get()); } @Test public void testSetEmptyStringDoesNotPersist() { File installationIdFile = new File(temporaryFolder.getRoot(), "installationId"); InstallationId installationId = new InstallationId(installationIdFile); String installationIdString = installationId.get(); installationId.set(""); assertEquals(installationIdString, installationId.get()); } }