github.com/1and1/oneandone-cloudserver-sdk-go@v1.4.1/monitoringcenter_test.go (about) 1 package oneandone 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 ) 8 9 // /monitoring_center tests 10 11 func TestListMonitoringServersUsages(t *testing.T) { 12 sync_server.Do(func() { deploy_test_server(false) }) 13 fmt.Println("Listing all server usages...") 14 15 res, err := api.ListMonitoringServersUsages() 16 if err != nil { 17 t.Errorf("ListMonitoringServersUsages failed. Error: " + err.Error()) 18 } 19 if len(res) == 0 { 20 t.Errorf("No server usage found.") 21 } 22 23 res, err = api.ListMonitoringServersUsages(1, 2, "name", "", "id,name") 24 25 if err != nil { 26 t.Errorf("ListMonitoringServersUsages with parameter options failed. Error: " + err.Error()) 27 return 28 } 29 if len(res) == 0 { 30 t.Errorf("No server usage found.") 31 } 32 if len(res) > 2 { 33 t.Errorf("Wrong number of objects per page.") 34 } 35 if len(res) == 2 { 36 if res[0].Name > res[1].Name { 37 t.Errorf("Sorting a list of server usages failed.") 38 } 39 } 40 for index := 0; index < len(res); index += 1 { 41 if res[index].Agent != nil { 42 t.Errorf("Filtering a list of server usages failed.") 43 } 44 if res[index].Alerts != nil { 45 t.Errorf("Filtering a list of server usages failed.") 46 } 47 if res[index].Status != nil { 48 t.Errorf("Filtering a list of server usages failed.") 49 } 50 } 51 52 res, err = api.ListMonitoringServersUsages(0, 0, "", test_server.Name, "") 53 54 if err != nil { 55 t.Errorf("ListMonitoringServersUsages with parameter options failed. Error: " + err.Error()) 56 } 57 if len(res) != 1 { 58 t.Errorf("Wrong number of objects found.") 59 } 60 } 61 62 func TestGetMonitoringServerUsage(t *testing.T) { 63 sync_server.Do(func() { deploy_test_server(false) }) 64 fmt.Printf("Getting server usage '%s'...\n", test_server.Name) 65 msu, err := api.GetMonitoringServerUsage(test_server.Id, "LAST_HOUR") 66 67 if err != nil { 68 t.Errorf("GetMonitoringServerUsage failed. Error: " + err.Error()) 69 return 70 } 71 if msu.Id != test_server.Id { 72 t.Errorf("Wrong server ID.") 73 } 74 if msu.Name != test_server.Name { 75 t.Errorf("Wrong server name.") 76 } 77 78 if msu.TransferStatus != nil && len(msu.TransferStatus.Data) > 0 { 79 date, _ := time.Parse(time.RFC3339, msu.TransferStatus.Data[0].Date) 80 msu, err = api.GetMonitoringServerUsage(test_server.Id, "CUSTOM", date, date) 81 82 if err != nil { 83 t.Errorf("GetMonitoringServerUsage failed. Error: " + err.Error()) 84 return 85 } 86 if len(msu.TransferStatus.Data) != 1 { 87 t.Errorf("Getting server usage in custom date range failed.") 88 } 89 } 90 // Test error response 91 msu, err = api.GetMonitoringServerUsage(test_server.Id, "") 92 if msu != nil || err == nil { 93 t.Errorf("GetMonitoringServerUsage failed to handle empty date period.") 94 } 95 msu, err = api.GetMonitoringServerUsage(test_server.Id, "CUSTOM", time.Now(), time.Now().Add(-time.Hour*25)) 96 if msu != nil || err == nil { 97 t.Errorf("GetMonitoringServerUsage failed to handle 'start_date > end_date' case.") 98 } 99 msu, err = api.GetMonitoringServerUsage(test_server.Id, "CUSTOM", time.Now()) 100 if msu != nil || err == nil { 101 t.Errorf("GetMonitoringServerUsage failed to handle invalid number of date period parameters.") 102 } 103 }