/* * Jajuk * Copyright (C) The Jajuk Team * http://jajuk.info * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ package org.jajuk.base; import org.jajuk.ConstTest; import org.jajuk.JajukTestCase; import org.jajuk.TestHelpers; import org.jajuk.services.startup.StartupCollectionService; import org.jajuk.util.Conf; import org.jajuk.util.Const; /** * . */ public class TestDeviceManager extends JajukTestCase { @Override protected void specificSetUp() throws Exception { // avoid UI: Conf.setProperty(Const.CONF_CONFIRMATIONS_REMOVE_DEVICE, "false"); } /** * Test method for {@link org.jajuk.base.DeviceManager#getXMLTag()}. */ public final void testGetLabel() { assertEquals(Const.XML_DEVICES, DeviceManager.getInstance().getXMLTag()); } /** * Test method for. * * {@link org.jajuk.base.DeviceManager#startAutoRefreshThread()}. */ public final void testStartAutoRefreshThread() { DeviceManager.getInstance().startAutoRefreshThread(); // what happens if done twice? DeviceManager.getInstance().startAutoRefreshThread(); } /** * Test method for {@link org.jajuk.base.DeviceManager#getInstance()}. */ public final void testGetInstance() { assertNotNull(DeviceManager.getInstance()); } /** * Test method for. * * {@link org.jajuk.base.DeviceManager#registerDevice(java.lang.String, long, java.lang.String)} * . */ public final void testRegisterDeviceStringLongString() { assertNotNull(TestHelpers.getDevice()); assertNotNull(DeviceManager.getInstance().getDeviceByName("sample_device")); } /** * Test register device twice. * */ public final void testRegisterDeviceTwice() { assertNotNull(DeviceManager.getInstance().registerDevice("device", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev")); assertNotNull(DeviceManager.getInstance().registerDevice("device", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev")); assertNotNull(DeviceManager.getInstance().getDeviceByName("device")); } /** * Test method for. * * {@link org.jajuk.base.DeviceManager#createID(java.lang.String)}. */ public final void testCreateID() { assertNotNull(ItemManager.createID("device123")); } /** * Test method for. * * {@link org.jajuk.base.DeviceManager#checkDeviceAvailablity(java.lang.String, int, java.lang.String, boolean)} * . */ public final void testCheckDeviceAvailablityCD() { assertEquals( 0, DeviceManager.getInstance().checkDeviceAvailablity("device3", Device.Type.FILES_CD, ConstTest.DEVICES_BASE_PATH + "/dev", true)); } /** * Test check device availablity existing name. * */ public final void testCheckDeviceAvailablityExistingName() { assertNotNull(DeviceManager.getInstance().registerDevice("device4", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev")); // error, name already exists assertEquals( 19, DeviceManager.getInstance().checkDeviceAvailablity("device4", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev", true)); } /** * Test check device availability existing name not new. **/ public final void testCheckDeviceAvailablityExistingNameNotNew() { assertNotNull(TestHelpers.getDevice("device4", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev")); // error, name already exists assertEquals( 0, DeviceManager.getInstance().checkDeviceAvailablity("device4", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev", false)); } /** * Test check device availability parent or descendant. * */ public final void testCheckDeviceAvailablityParentOrDescendant() { assertNotNull(TestHelpers.getDevice("device5", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev")); // error, same url assertEquals( 29, DeviceManager.getInstance().checkDeviceAvailablity("device3", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev", true)); // error, descendant url assertEquals( 29, DeviceManager.getInstance().checkDeviceAvailablity("device3", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev/subdir", true)); // error, parent url assertEquals( 29, DeviceManager.getInstance().checkDeviceAvailablity("device3", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH, true)); } /** * Test check device availability not exists. * */ public final void testCheckDeviceAvailablityNotExists() { assertEquals( 143, DeviceManager.getInstance().checkDeviceAvailablity("device3", Device.Type.DIRECTORY, "notexistingpath", true)); } /** * Test check device availability exists. * */ public final void testCheckDeviceAvailablityExists() { assertEquals( 0, DeviceManager.getInstance().checkDeviceAvailablity("device3", Device.Type.DIRECTORY, ConstTest.TEMP_PATH, true)); } /** * Test method for {@link org.jajuk.base.DeviceManager#getDeviceTypes()}. */ public final void testGetDeviceTypes() { // tested above } /** * Test method for {@link org.jajuk.base.DeviceManager#getDeviceType(long)}. */ public final void testGetDeviceType() { // tested above } /** * Test method for. * * {@link org.jajuk.base.DeviceManager#removeDevice(org.jajuk.base.Device)}. */ public final void testRemoveDevice() { assertNotNull(DeviceManager.getInstance().registerDevice("5", "device5", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev")); assertNotNull(DeviceManager.getInstance().getDeviceByID("5")); DeviceManager.getInstance().removeDevice(DeviceManager.getInstance().getDeviceByID("5")); assertNull(DeviceManager.getInstance().getDeviceByID("5")); } /** * Test remove device mounted. * * * @throws Exception the exception */ public final void testRemoveDeviceMounted() throws Exception { TestHelpers.getDevice(); String id = DeviceManager.createID("sample_device"); assertNotNull(DeviceManager.getInstance().getDeviceByID(id)); DeviceManager.getInstance().removeDevice(DeviceManager.getInstance().getDeviceByID(id)); assertNull(DeviceManager.getInstance().getDeviceByID(id)); } /** * Test method for. * * {@link org.jajuk.base.DeviceManager#isAnyDeviceRefreshing()}. */ public final void testIsAnyDeviceRefreshing() { assertNotNull(DeviceManager.getInstance().registerDevice("device8", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev8")); assertNotNull(DeviceManager.getInstance().registerDevice("device9", Device.Type.FILES_CD, ConstTest.DEVICES_BASE_PATH + "/dev9")); assertFalse(DeviceManager.getInstance().isAnyDeviceRefreshing()); } /** * Test method for {@link org.jajuk.base.DeviceManager#cleanAllDevices()}. */ public final void testCleanAllDevices() { DeviceManager.getInstance().registerDevice("device6", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev6"); DeviceManager.getInstance().registerDevice("device7", Device.Type.FILES_CD, ConstTest.DEVICES_BASE_PATH + "/dev7"); TestHelpers.cleanAllDevices(); } /** * Test method for. * * {@link org.jajuk.base.DeviceManager#getDateLastGlobalRefresh()}. */ public final void testGetDateLastGlobalRefresh() { StartupCollectionService.registerItemManagers(); DeviceManager.getInstance().registerDevice("device6", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev6"); DeviceManager.getInstance().registerDevice("device7", Device.Type.FILES_CD, ConstTest.DEVICES_BASE_PATH + "/dev7"); // first do a refresh DeviceManager.getInstance().refreshAllDevices(); // then the timestamp should be non-zero assertTrue(0 != DeviceManager.getInstance().getDateLastGlobalRefresh()); } /** * Test method for {@link org.jajuk.base.DeviceManager#refreshAllDevices()}. */ public final void testRefreshAllDevices() { StartupCollectionService.registerItemManagers(); DeviceManager.getInstance().registerDevice("device6", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev6"); DeviceManager.getInstance().registerDevice("device7", Device.Type.FILES_CD, ConstTest.DEVICES_BASE_PATH + "/dev7"); DeviceManager.getInstance().refreshAllDevices(); } /** * Test method for. * * {@link org.jajuk.base.DeviceManager#getDeviceByID(java.lang.String)}. */ public final void testGetDeviceByID() { // tested above } /** * Test method for. * * {@link org.jajuk.base.DeviceManager#getDeviceByName(java.lang.String)}. */ public final void testGetDeviceByName() { DeviceManager.getInstance().registerDevice("device10", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev10"); DeviceManager.getInstance().registerDevice("device11", Device.Type.FILES_CD, ConstTest.DEVICES_BASE_PATH + "/dev11"); assertNotNull(DeviceManager.getInstance().getDeviceByName("device10")); assertNull(DeviceManager.getInstance().getDeviceByName("notexistingdevice")); } /** * Test method for {@link org.jajuk.base.DeviceManager#getDevices()}. */ public final void testGetDevices() { assertEquals(0, DeviceManager.getInstance().getDevices().size()); DeviceManager.getInstance().registerDevice("device12", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev12"); DeviceManager.getInstance().registerDevice("device13", Device.Type.FILES_CD, ConstTest.DEVICES_BASE_PATH + "/dev13"); assertEquals(2, DeviceManager.getInstance().getDevices().size()); } /** * Test method for {@link org.jajuk.base.DeviceManager#getDevicesIterator()}. */ public final void testGetDevicesIterator() { assertFalse(DeviceManager.getInstance().getDevicesIterator().hasNext()); DeviceManager.getInstance().registerDevice("device12", Device.Type.DIRECTORY, ConstTest.DEVICES_BASE_PATH + "/dev12"); DeviceManager.getInstance().registerDevice("device13", Device.Type.FILES_CD, ConstTest.DEVICES_BASE_PATH + "/dev13"); assertTrue(DeviceManager.getInstance().getDevicesIterator().hasNext()); } }