github.com/amimof/huego@v1.2.1/bridge_test.go (about) 1 package huego 2 3 import ( 4 "context" 5 "fmt" 6 "strings" 7 "testing" 8 9 "github.com/jarcoal/httpmock" 10 "github.com/stretchr/testify/assert" 11 ) 12 13 func ExampleBridge_CreateUser() { 14 bridge, _ := Discover() 15 user, err := bridge.CreateUser("my awesome hue app") // Link button needs to be pressed 16 if err != nil { 17 fmt.Printf("Error creating user: %s", err.Error()) 18 } 19 bridge = bridge.Login(user) 20 light, _ := bridge.GetLight(1) 21 light.Off() 22 } 23 24 func TestLogin(t *testing.T) { 25 b := New(hostname, username) 26 c, err := b.GetConfig() 27 if err != nil { 28 t.Fatal(err) 29 } 30 t.Logf("Logged in and got config which means that we are authorized") 31 t.Logf("Name: %s, SwVersion: %s", c.Name, c.SwVersion) 32 } 33 34 func TestLoginUnauthorized(t *testing.T) { 35 b := New(hostname, "") 36 b = b.Login("invalid_password") 37 _, err := b.GetLights() 38 if err != nil { 39 if strings.Contains(err.Error(), "unauthorized user") == false { 40 t.Fatal(err) 41 } 42 } 43 t.Logf("Bridge: %s, Username: %s", b.Host, b.User) 44 t.Log("User logged in and authenticated which isn't what we want") 45 } 46 47 func TestUpdateBridgeConfig(t *testing.T) { 48 b := New(hostname, username) 49 c, err := b.GetConfig() 50 if err != nil { 51 t.Fatal(err) 52 } 53 _, err = b.UpdateConfig(c) 54 if err != nil { 55 t.Fatal(err) 56 } 57 } 58 59 func TestUpdateBridgeConfigError(t *testing.T) { 60 b := New(badHostname, username) 61 _, err := b.GetConfig() 62 if err == nil { 63 t.Fatal("Expected error not to be nil") 64 } 65 } 66 67 func TestBridge_getAPIPathError(t *testing.T) { 68 b := New("invalid hostname", "") 69 _, err := b.getAPIPath("/") 70 assert.NotNil(t, err) 71 } 72 73 func TestBridge_getError(t *testing.T) { 74 httpmock.Deactivate() 75 defer httpmock.Activate() 76 _, err := get(context.Background(), "invalid hostname") 77 assert.NotNil(t, err) 78 } 79 80 func TestBridge_putError(t *testing.T) { 81 httpmock.Deactivate() 82 defer httpmock.Activate() 83 _, err := put(context.Background(), "invalid hostname", []byte("huego")) 84 assert.NotNil(t, err) 85 } 86 87 func TestBridge_postError(t *testing.T) { 88 httpmock.Deactivate() 89 defer httpmock.Activate() 90 _, err := post(context.Background(), "invalid hostname", []byte("huego")) 91 assert.NotNil(t, err) 92 } 93 94 func TestBridge_deleteError(t *testing.T) { 95 httpmock.Deactivate() 96 defer httpmock.Activate() 97 _, err := delete(context.Background(), "invalid hostname") 98 assert.NotNil(t, err) 99 }