gobot.io/x/gobot/v2@v2.1.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/v2"
     8  	"gobot.io/x/gobot/v2/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  }