gobot.io/x/gobot@v1.16.0/platforms/parrot/minidrone/minidrone_driver_test.go (about) 1 package minidrone 2 3 import ( 4 "strings" 5 "testing" 6 7 "gobot.io/x/gobot" 8 "gobot.io/x/gobot/gobottest" 9 ) 10 11 var _ gobot.Driver = (*Driver)(nil) 12 13 func initTestMinidroneDriver() *Driver { 14 d := NewDriver(NewBleTestAdaptor()) 15 return d 16 } 17 18 func TestMinidroneDriver(t *testing.T) { 19 d := initTestMinidroneDriver() 20 gobottest.Assert(t, strings.HasPrefix(d.Name(), "Minidrone"), true) 21 d.SetName("NewName") 22 gobottest.Assert(t, d.Name(), "NewName") 23 } 24 25 func TestMinidroneDriverStartAndHalt(t *testing.T) { 26 d := initTestMinidroneDriver() 27 gobottest.Assert(t, d.Start(), nil) 28 gobottest.Assert(t, d.Halt(), nil) 29 } 30 31 func TestMinidroneTakeoff(t *testing.T) { 32 d := initTestMinidroneDriver() 33 gobottest.Assert(t, d.Start(), nil) 34 gobottest.Assert(t, d.TakeOff(), nil) 35 } 36 37 func TestMinidroneEmergency(t *testing.T) { 38 d := initTestMinidroneDriver() 39 gobottest.Assert(t, d.Start(), nil) 40 gobottest.Assert(t, d.Emergency(), nil) 41 } 42 43 func TestMinidroneTakePicture(t *testing.T) { 44 d := initTestMinidroneDriver() 45 gobottest.Assert(t, d.Start(), nil) 46 gobottest.Assert(t, d.TakePicture(), nil) 47 } 48 49 func TestMinidroneUp(t *testing.T) { 50 d := initTestMinidroneDriver() 51 gobottest.Assert(t, d.Start(), nil) 52 gobottest.Assert(t, d.Up(25), nil) 53 } 54 55 func TestMinidroneUpTooFar(t *testing.T) { 56 d := initTestMinidroneDriver() 57 gobottest.Assert(t, d.Start(), nil) 58 gobottest.Assert(t, d.Up(125), nil) 59 gobottest.Assert(t, d.Up(-50), nil) 60 } 61 62 func TestMinidroneDown(t *testing.T) { 63 d := initTestMinidroneDriver() 64 gobottest.Assert(t, d.Start(), nil) 65 gobottest.Assert(t, d.Down(25), nil) 66 } 67 68 func TestMinidroneForward(t *testing.T) { 69 d := initTestMinidroneDriver() 70 gobottest.Assert(t, d.Start(), nil) 71 gobottest.Assert(t, d.Forward(25), nil) 72 } 73 74 func TestMinidroneBackward(t *testing.T) { 75 d := initTestMinidroneDriver() 76 gobottest.Assert(t, d.Start(), nil) 77 gobottest.Assert(t, d.Backward(25), nil) 78 } 79 80 func TestMinidroneRight(t *testing.T) { 81 d := initTestMinidroneDriver() 82 gobottest.Assert(t, d.Start(), nil) 83 gobottest.Assert(t, d.Right(25), nil) 84 } 85 86 func TestMinidroneLeft(t *testing.T) { 87 d := initTestMinidroneDriver() 88 gobottest.Assert(t, d.Start(), nil) 89 gobottest.Assert(t, d.Left(25), nil) 90 } 91 92 func TestMinidroneClockwise(t *testing.T) { 93 d := initTestMinidroneDriver() 94 gobottest.Assert(t, d.Start(), nil) 95 gobottest.Assert(t, d.Clockwise(25), nil) 96 } 97 98 func TestMinidroneCounterClockwise(t *testing.T) { 99 d := initTestMinidroneDriver() 100 gobottest.Assert(t, d.Start(), nil) 101 gobottest.Assert(t, d.CounterClockwise(25), nil) 102 } 103 104 func TestMinidroneStop(t *testing.T) { 105 d := initTestMinidroneDriver() 106 gobottest.Assert(t, d.Start(), nil) 107 gobottest.Assert(t, d.Stop(), nil) 108 } 109 110 func TestMinidroneStartStopRecording(t *testing.T) { 111 d := initTestMinidroneDriver() 112 gobottest.Assert(t, d.Start(), nil) 113 gobottest.Assert(t, d.StartRecording(), nil) 114 gobottest.Assert(t, d.StopRecording(), nil) 115 } 116 117 func TestMinidroneHullProtectionOutdoor(t *testing.T) { 118 d := initTestMinidroneDriver() 119 gobottest.Assert(t, d.Start(), nil) 120 gobottest.Assert(t, d.HullProtection(true), nil) 121 gobottest.Assert(t, d.Outdoor(true), nil) 122 } 123 124 func TestMinidroneHullFlips(t *testing.T) { 125 d := initTestMinidroneDriver() 126 gobottest.Assert(t, d.Start(), nil) 127 gobottest.Assert(t, d.FrontFlip(), nil) 128 gobottest.Assert(t, d.BackFlip(), nil) 129 gobottest.Assert(t, d.RightFlip(), nil) 130 gobottest.Assert(t, d.LeftFlip(), nil) 131 } 132 133 func TestMinidroneLightControl(t *testing.T) { 134 d := initTestMinidroneDriver() 135 gobottest.Assert(t, d.Start(), nil) 136 gobottest.Assert(t, d.LightControl(0, LightBlinked, 25), nil) 137 } 138 139 func TestMinidroneClawControl(t *testing.T) { 140 d := initTestMinidroneDriver() 141 gobottest.Assert(t, d.Start(), nil) 142 gobottest.Assert(t, d.ClawControl(0, ClawOpen), nil) 143 } 144 145 func TestMinidroneGunControl(t *testing.T) { 146 d := initTestMinidroneDriver() 147 gobottest.Assert(t, d.Start(), nil) 148 gobottest.Assert(t, d.GunControl(0), nil) 149 } 150 151 func TestMinidroneProcessFlightData(t *testing.T) { 152 d := initTestMinidroneDriver() 153 gobottest.Assert(t, d.Start(), nil) 154 155 d.processFlightStatus([]byte{0x00, 0x00, 0x00}) 156 d.processFlightStatus([]byte{0x00, 0x00, 0x00, 0x00, 0x00}) 157 d.processFlightStatus([]byte{0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00}) 158 gobottest.Assert(t, d.flying, false) 159 d.processFlightStatus([]byte{0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01}) 160 gobottest.Assert(t, d.flying, false) 161 d.processFlightStatus([]byte{0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02}) 162 gobottest.Assert(t, d.flying, true) 163 d.processFlightStatus([]byte{0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x03}) 164 gobottest.Assert(t, d.flying, true) 165 d.processFlightStatus([]byte{0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x04}) 166 d.processFlightStatus([]byte{0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x05}) 167 d.processFlightStatus([]byte{0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x06}) 168 169 gobottest.Assert(t, d.Stop(), nil) 170 }