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  }