/* * cameracontrol * Copyright (C) 2010 Stefano Fornari * * This program is free software; you can redistribute it and/or modify it under * the terms of the GNU Affero General Public License version 3 as published by * the Free Software Foundation with the addition of the following permission * added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED * WORK IN WHICH THE COPYRIGHT IS OWNED BY Stefano Fornari, Stefano Fornari * DISCLAIMS THE WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS. * * 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 Affero General Public License * along with this program; if not, see http://www.gnu.org/licenses or write to * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301 USA. */ package ste.cameracontrol; import ch.ntb.usb.LibusbJava; import ch.ntb.usb.devinf.CanonEOS1000D; import java.io.File; import java.lang.reflect.Field; import junit.framework.TestCase; import ste.cameracontrol.ui.CameraControlWindow; /** * * @author ste */ public class CameraControlMainTest extends TestCase { public CameraControlMainTest(String testName) { super(testName); } @Override protected void setUp() throws Exception { super.setUp(); LibusbJava.init(new CanonEOS1000D(false)); System.setProperty(Configuration.CONFIG_IMAGEDIR, "/tmp/cameracontrol"); } @Override protected void tearDown() throws Exception { super.tearDown(); } private CameraControlWindow getWindow() throws Exception { Field f = CameraControlMain.class.getDeclaredField("window"); f.setAccessible(true); return (CameraControlWindow)f.get(new CameraControlMain()); } public void testControllerConfiguration() throws Exception { CameraControlMain cameraControl = new CameraControlMain(); Configuration c = CameraController.getInstance().getConfiguration(); assertNotNull(c.getImageDir()); assertTrue((new File(c.getImageDir())).exists()); } public void testCameraConnected() throws Exception { LibusbJava.init(new CanonEOS1000D(true)); CameraControlWindow window = getWindow(); System.out.println("/testCameraConnected"); Thread.sleep(100); System.out.println("testCameraConnected/"); assertNotNull(window.status); assertTrue(window.cameraControlsEnabled); } public void testCameraDisconnected() throws Exception { // // we need to simulate a connection otherwise the status will not change // LibusbJava.init(new CanonEOS1000D(true)); CameraControlWindow window = getWindow(); Thread.sleep(100); window.status = null; LibusbJava.init(new CanonEOS1000D(false)); Thread.sleep(100); assertNull(window.status); assertFalse(window.cameraControlsEnabled); } public void testCameraNameDetected() throws Exception { LibusbJava.init(new CanonEOS1000D(true)); CameraControlWindow window = getWindow(); Thread.sleep(100); assertNotNull(window.status); assertTrue("found " + window.status, window.status.indexOf("1000D") >= 0); } }