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  }