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 }