github.com/amimof/huego@v1.2.1/sensor_test.go (about) 1 package huego 2 3 import ( 4 "github.com/stretchr/testify/assert" 5 "testing" 6 ) 7 8 func TestGetSensors(t *testing.T) { 9 b := New(hostname, username) 10 sensors, err := b.GetSensors() 11 if err != nil { 12 t.Fatal(err) 13 } 14 t.Logf("Found %d sensors", len(sensors)) 15 for _, sensor := range sensors { 16 t.Logf("State:") 17 t.Logf(" Interface: %+v", sensor.State) 18 t.Logf("Config:") 19 t.Logf(" On: %+v", sensor.Config) 20 t.Logf("Name: %s", sensor.Name) 21 t.Logf("Type: %s", sensor.Type) 22 t.Logf("ModelID: %s", sensor.ModelID) 23 t.Logf("ManufacturerName: %s", sensor.ManufacturerName) 24 t.Logf("UniqueID: %s", sensor.UniqueID) 25 t.Logf("SwVersion: %s", sensor.SwVersion) 26 t.Logf("ID: %d", sensor.ID) 27 } 28 contains := func(name string, ss []Sensor) bool { 29 for _, s := range ss { 30 if s.Name == name { 31 return true 32 } 33 } 34 return false 35 } 36 37 assert.True(t, contains("Daylight", sensors)) 38 assert.True(t, contains("Tap Switch 2", sensors)) 39 40 b.Host = badHostname 41 _, err = b.GetSensors() 42 assert.NotNil(t, err) 43 } 44 45 func TestGetSensor(t *testing.T) { 46 b := New(hostname, username) 47 sensor, err := b.GetSensor(1) 48 if err != nil { 49 t.Fatal(err) 50 } 51 t.Logf("State:") 52 t.Logf(" Interface: %+v", sensor.State) 53 t.Logf("Config:") 54 t.Logf(" On: %+v", sensor.Config) 55 t.Logf("Name: %s", sensor.Name) 56 t.Logf("Type: %s", sensor.Type) 57 t.Logf("ModelID: %s", sensor.ModelID) 58 t.Logf("ManufacturerName: %s", sensor.ManufacturerName) 59 t.Logf("UniqueID: %s", sensor.UniqueID) 60 t.Logf("SwVersion: %s", sensor.SwVersion) 61 t.Logf("ID: %d", sensor.ID) 62 63 b.Host = badHostname 64 _, err = b.GetSensor(1) 65 assert.NotNil(t, err) 66 } 67 68 func TestCreateSensor(t *testing.T) { 69 b := New(hostname, username) 70 sensor := &Sensor{ 71 Name: "New Sensor", 72 } 73 resp, err := b.CreateSensor(sensor) 74 if err != nil { 75 t.Fatal(err) 76 } 77 t.Logf("Sensor created") 78 for k, v := range resp.Success { 79 t.Logf("%v: %s", k, v) 80 } 81 82 b.Host = badHostname 83 _, err = b.CreateSensor(sensor) 84 assert.NotNil(t, err) 85 } 86 87 func TestFindSensors(t *testing.T) { 88 b := New(hostname, username) 89 resp, err := b.FindSensors() 90 if err != nil { 91 t.Fatal(err) 92 } 93 for k, v := range resp.Success { 94 t.Logf("%v: %s", k, v) 95 } 96 97 b.Host = badHostname 98 _, err = b.FindSensors() 99 assert.NotNil(t, err) 100 } 101 102 func TestGetNewSensors(t *testing.T) { 103 b := New(hostname, username) 104 newSensors, err := b.GetNewSensors() 105 if err != nil { 106 t.Fatal(err) 107 } 108 t.Logf("Sensors:") 109 for _, sensor := range newSensors.Sensors { 110 t.Logf("State:") 111 t.Logf(" Interface: %+v", sensor.State) 112 t.Logf("Config:") 113 t.Logf(" On: %+v", sensor.Config) 114 t.Logf("Name: %s", sensor.Name) 115 t.Logf("Type: %s", sensor.Type) 116 t.Logf("ModelID: %s", sensor.ModelID) 117 t.Logf("ManufacturerName: %s", sensor.ManufacturerName) 118 t.Logf("UniqueID: %s", sensor.UniqueID) 119 t.Logf("SwVersion: %s", sensor.SwVersion) 120 t.Logf("ID: %d", sensor.ID) 121 } 122 123 contains := func(name string, ss []*Sensor) bool { 124 for _, s := range ss { 125 if s.Name == name { 126 return true 127 } 128 } 129 return false 130 } 131 132 assert.True(t, contains("Hue Tap 1", newSensors.Sensors)) 133 assert.True(t, contains("Button 3", newSensors.Sensors)) 134 } 135 136 func TestUpdateSensor(t *testing.T) { 137 b := New(hostname, username) 138 id := 1 139 sensor := &Sensor{ 140 Name: "New Sensor", 141 } 142 resp, err := b.UpdateSensor(id, sensor) 143 if err != nil { 144 t.Fatal(err) 145 } 146 for k, v := range resp.Success { 147 t.Logf("%v: %s", k, v) 148 } 149 150 b.Host = badHostname 151 _, err = b.UpdateSensor(id, sensor) 152 assert.NotNil(t, err) 153 } 154 155 func TestUpdateSensorConfig(t *testing.T) { 156 b := New(hostname, username) 157 id := 1 158 resp, err := b.UpdateSensorConfig(id, "test") 159 if err != nil { 160 t.Fatal(err) 161 } 162 for k, v := range resp.Success { 163 t.Logf("%v: %s", k, v) 164 } 165 166 b.Host = badHostname 167 _, err = b.UpdateSensorConfig(id, "test") 168 assert.NotNil(t, err) 169 } 170 171 func TestDeleteSensor(t *testing.T) { 172 b := New(hostname, username) 173 id := 1 174 err := b.DeleteSensor(id) 175 if err != nil { 176 t.Fatal(err) 177 } 178 t.Logf("Sensor %d deleted", id) 179 }