package at.tugraz.ist.droned.test; import static org.junit.Assert.*; import junit.framework.Assert; import org.junit.Test; import at.tugraz.ist.droned.Drone; import at.tugraz.ist.droned.DroneConsts; import at.tugraz.ist.droned.dcf.*; import at.tugraz.ist.droned.dcf.navdata.*; import at.tugraz.ist.droned.dcf.command.*; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4.PowerMockRunner; import org.powermock.reflect.Whitebox; import static org.easymock.EasyMock.expect; import static org.junit.Assert.assertEquals; import static org.powermock.api.easymock.PowerMock.*; import java.util.Vector; import java.util.List; import org.junit.Test; @RunWith(PowerMockRunner.class) @PrepareForTest(Drone.class) public class MoveCommandTest { @SuppressWarnings("deprecation") @Test public void threadCmdWifiLossTest() throws Exception { WiFiConnection wifi = createMock(WiFiConnection.class); Drone drone = Drone.getInstance(); Whitebox.setInternalState(drone,"wifi",wifi); ThreadCmd tc = new ThreadCmd(drone); expect(wifi.isRunning()).andReturn(true).times(3); expect(wifi.isRunning()).andReturn(false); replayAll(); tc.run(); verifyAll(); } @Test public void singleMoveCommandTestMultipleWifiSends() throws Exception { WiFiConnection wifi = createMock(WiFiConnection.class); NavData navData = new NavData(); PacketDemo packetDemo = new PacketDemo(); Drone drone = Drone.getInstance(); Whitebox.setInternalState(drone,"wifi",wifi); Whitebox.setInternalState(packetDemo, "flying_state", DroneConsts.FlyingState.FLYING); Whitebox.setInternalState(navData, "packetDemo", packetDemo); Whitebox.setInternalState(drone, "navData", navData); ThreadCmd tc = new ThreadCmd(drone); Whitebox.setInternalState(drone, "threadCmd",tc); expect(wifi.isRunning()).andReturn(true).times(3); wifi.sendAtCommand("AT*PCMD=#SEQ#,1," + Float.floatToIntBits(0.5f) + "," + Float.floatToIntBits(0.5f) + "," + Float.floatToIntBits(0.5f) + "," + Float.floatToIntBits(0.5f)); expectLastCall().times(3); expect(wifi.isRunning()).andReturn(false); replayAll(); drone.move(0.5f, 0.5f, 0.5f, 0.5f); List<Command> list = Whitebox.getInternalState(tc, "cmdList"); assertEquals("move", list.get(0).getName()); tc.run(); verifyAll(); } }