github.com/amimof/huego@v1.2.1/schedule_test.go (about) 1 package huego 2 3 import ( 4 "github.com/stretchr/testify/assert" 5 "testing" 6 ) 7 8 func TestGetSchedules(t *testing.T) { 9 b := New(hostname, username) 10 schedules, err := b.GetSchedules() 11 if err != nil { 12 t.Fatal(err) 13 } 14 t.Logf("Found %d schedules", len(schedules)) 15 for i, schedule := range schedules { 16 t.Logf("%d:", i) 17 t.Logf(" Name: %s", schedule.Name) 18 t.Logf(" Description: %s", schedule.Description) 19 t.Logf(" Command:") 20 t.Logf(" Address: %s", schedule.Command.Address) 21 t.Logf(" Method: %s", schedule.Command.Method) 22 t.Logf(" Body: %s", schedule.Command.Body) 23 t.Logf(" Time: %s", schedule.Time) 24 t.Logf(" LocalTime: %s", schedule.LocalTime) 25 t.Logf(" StartTime: %s", schedule.StartTime) 26 t.Logf(" Status: %s", schedule.Status) 27 t.Logf(" AutoDelete: %t", schedule.AutoDelete) 28 t.Logf(" ID: %d", schedule.ID) 29 } 30 31 contains := func(name string, ss []*Schedule) bool { 32 for _, s := range ss { 33 if s.Name == name { 34 return true 35 } 36 } 37 return false 38 } 39 40 assert.True(t, contains("Timer", schedules)) 41 assert.True(t, contains("Alarm", schedules)) 42 43 b.Host = badHostname 44 _, err = b.GetSchedules() 45 assert.NotNil(t, err) 46 } 47 48 func TestGetSchedule(t *testing.T) { 49 b := New(hostname, username) 50 s, err := b.GetSchedule(1) 51 if err != nil { 52 t.Fatal(err) 53 } 54 t.Logf("Time: %s", s.Time) 55 t.Logf("LocalTime: %s", s.LocalTime) 56 t.Logf("StartTime: %s", s.StartTime) 57 t.Logf("Status: %s", s.Status) 58 t.Logf("AutoDelete: %t", s.AutoDelete) 59 t.Logf("ID: %d", s.ID) 60 61 b.Host = badHostname 62 _, err = b.GetSchedule(1) 63 assert.NotNil(t, err) 64 } 65 66 func TestCreateSchedule(t *testing.T) { 67 b := New(hostname, username) 68 command := &Command{ 69 Address: "/api/" + username + "/lights/0", 70 Body: &struct { 71 on bool 72 }{ 73 false, 74 }, 75 Method: "PUT", 76 } 77 schedule := &Schedule{ 78 Name: "TestSchedule", 79 Description: "Huego test schedule", 80 Command: command, 81 LocalTime: "2019-09-22T13:37:00", 82 } 83 resp, err := b.CreateSchedule(schedule) 84 if err != nil { 85 t.Fatal(err) 86 } else { 87 t.Logf("Schedule created") 88 for k, v := range resp.Success { 89 t.Logf("%v: %s", k, v) 90 } 91 } 92 93 b.Host = badHostname 94 _, err = b.CreateSchedule(schedule) 95 assert.NotNil(t, err) 96 } 97 98 func TestUpdateSchedule(t *testing.T) { 99 b := New(hostname, username) 100 id := 1 101 schedule := &Schedule{ 102 Name: "New Scehdule", 103 Description: "Updated parameter", 104 } 105 resp, err := b.UpdateSchedule(id, schedule) 106 if err != nil { 107 t.Fatal(err) 108 } else { 109 t.Logf("Schedule %d updated", id) 110 for k, v := range resp.Success { 111 t.Logf("%v: %s", k, v) 112 } 113 } 114 115 b.Host = badHostname 116 _, err = b.UpdateSchedule(id, schedule) 117 assert.NotNil(t, err) 118 } 119 120 func TestDeleteSchedule(t *testing.T) { 121 b := New(hostname, username) 122 id := 1 123 err := b.DeleteSchedule(id) 124 if err != nil { 125 t.Fatal(err) 126 } else { 127 t.Logf("Schedule %d deleted", id) 128 } 129 }