github.com/amimof/huego@v1.2.1/resourcelink_test.go (about)

     1  package huego
     2  
     3  import (
     4  	"github.com/stretchr/testify/assert"
     5  	"testing"
     6  )
     7  
     8  func TestGetResourcelinks(t *testing.T) {
     9  	b := New(hostname, username)
    10  	resourcelinks, err := b.GetResourcelinks()
    11  	if err != nil {
    12  		t.Fatal(err)
    13  	}
    14  	t.Logf("Found %d resourcelinks", len(resourcelinks))
    15  	for i, resourcelink := range resourcelinks {
    16  		t.Logf("%d", i)
    17  		t.Logf("  Name: %s", resourcelink.Name)
    18  		t.Logf("  Description: %s", resourcelink.Description)
    19  		t.Logf("  Type: %s", resourcelink.Type)
    20  		t.Logf("  ClassID: %d", resourcelink.ClassID)
    21  		t.Logf("  Owner: %s", resourcelink.Owner)
    22  		t.Logf("  Links: %s", resourcelink.Links)
    23  		t.Logf("  ID: %d", resourcelink.ID)
    24  	}
    25  
    26  	contains := func(name string, ss []*Resourcelink) bool {
    27  		for _, s := range ss {
    28  			if s.Name == name {
    29  				return true
    30  			}
    31  		}
    32  		return false
    33  	}
    34  
    35  	assert.True(t, contains("Sunrise", resourcelinks))
    36  	assert.True(t, contains("Sunrise 2", resourcelinks))
    37  
    38  	b.Host = badHostname
    39  	_, err = b.GetResourcelinks()
    40  	assert.NotNil(t, err)
    41  }
    42  
    43  func TestGetResourcelink(t *testing.T) {
    44  	b := New(hostname, username)
    45  	l, err := b.GetResourcelink(1)
    46  	if err != nil {
    47  		t.Fatal(err)
    48  	}
    49  	t.Logf("Name: %s", l.Name)
    50  	t.Logf("Description: %s", l.Description)
    51  	t.Logf("Type: %s", l.Type)
    52  	t.Logf("ClassID: %d", l.ClassID)
    53  	t.Logf("Owner: %s", l.Owner)
    54  	t.Logf("Links: %s", l.Links)
    55  	t.Logf("ID: %d", l.ID)
    56  
    57  	b.Host = badHostname
    58  	_, err = b.GetResourcelink(1)
    59  	assert.NotNil(t, err)
    60  }
    61  
    62  func TestCreateResourcelink(t *testing.T) {
    63  	b := New(hostname, username)
    64  	resourcelink := &Resourcelink{
    65  		Name:        "Huego Test Resourcelink",
    66  		Description: "Amir's wakeup experience",
    67  		Type:        "Link",
    68  		ClassID:     1,
    69  		Owner:       "78H56B12BAABCDEF",
    70  		Links:       []string{"/schedules/2", "/schedules/3", "/scenes/ABCD"},
    71  	}
    72  	resp, err := b.CreateResourcelink(resourcelink)
    73  	if err != nil {
    74  		t.Fatal(err)
    75  	}
    76  	t.Logf("Resourcelink created")
    77  	for k, v := range resp.Success {
    78  		t.Logf("%v: %s", k, v)
    79  	}
    80  
    81  	b.Host = badHostname
    82  	_, err = b.CreateResourcelink(resourcelink)
    83  	assert.NotNil(t, err)
    84  }
    85  
    86  func TestUpdateResourcelink(t *testing.T) {
    87  	b := New(hostname, username)
    88  	id := 1
    89  	rl := &Resourcelink{
    90  		Name:        "New Resourcelink",
    91  		Description: "Updated Attribute",
    92  	}
    93  	resp, err := b.UpdateResourcelink(id, rl)
    94  	if err != nil {
    95  		t.Fatal(err)
    96  	}
    97  	t.Logf("Resourcelink %d updated", id)
    98  	for k, v := range resp.Success {
    99  		t.Logf("%v: %s", k, v)
   100  	}
   101  
   102  	b.Host = badHostname
   103  	_, err = b.UpdateResourcelink(id, rl)
   104  	assert.NotNil(t, err)
   105  }
   106  
   107  func TestDeleteResourcelink(t *testing.T) {
   108  	b := New(hostname, username)
   109  	id := 1
   110  	err := b.DeleteResourcelink(1)
   111  	if err != nil {
   112  		t.Fatal(err)
   113  	}
   114  	t.Logf("Resourcelink %d deleted", id)
   115  }