github.com/1and1/oneandone-cloudserver-sdk-go@v1.4.1/usages_test.go (about) 1 package oneandone 2 3 import ( 4 "fmt" 5 "testing" 6 "time" 7 ) 8 9 // /usages tests 10 11 func TestListUsages(t *testing.T) { 12 fmt.Println("Listing all usages...") 13 14 usages, err := api.ListUsages("LAST_7D", nil, nil) 15 if err != nil { 16 t.Errorf("ListUsages failed. Error: " + err.Error()) 17 return 18 } 19 if len(usages.Servers) == 0 && len(usages.Images) == 0 && len(usages.LoadBalancers) == 0 && 20 len(usages.PublicIPs) == 0 && len(usages.SharedStorages) == 0 { 21 t.Errorf("No usage found.") 22 } 23 24 usages, err = api.ListUsages("LAST_24H", nil, nil, 0, 0, "", "", "SERVERS.id,SERVERS.name") 25 26 if err != nil { 27 t.Errorf("ListUsages with parameter options failed. Error: " + err.Error()) 28 return 29 } 30 if len(usages.Servers) == 0 { 31 t.Errorf("No usage found.") 32 } 33 if len(usages.Images) != 0 { 34 t.Errorf("Filtering a list of usages failed.") 35 } 36 if len(usages.LoadBalancers) != 0 { 37 t.Errorf("Filtering a list of usages failed.") 38 } 39 if len(usages.SharedStorages) != 0 { 40 t.Errorf("Filtering a list of usages failed.") 41 } 42 if len(usages.PublicIPs) != 0 { 43 t.Errorf("Filtering a list of usages failed.") 44 } 45 46 n := time.Now() 47 ed := time.Date(n.Year(), n.Month(), n.Day(), n.Hour(), n.Minute(), n.Second(), 0, time.UTC) 48 sd := ed.Add(-(time.Hour * 5)) 49 50 usages, err = api.ListUsages("CUSTOM", &sd, &ed) 51 52 if err != nil { 53 t.Errorf("Getting usages in custom date range failed. Error: " + err.Error()) 54 return 55 } 56 if len(usages.Servers) > 0 { 57 sd1, _ := time.Parse(time.RFC3339, usages.Servers[0].Services[0].Details[0].StartDate) 58 ed1, _ := time.Parse(time.RFC3339, usages.Servers[0].Services[0].Details[0].EndDate) 59 if sd1.Unix() > sd.Unix() || ed1.Unix() > ed.Unix() { 60 t.Errorf("Getting usages in custom date range failed.") 61 } 62 } 63 // Tests for error response 64 usages, err = api.ListUsages("LAST_24H", nil, nil, true) 65 if usages != nil || err == nil { 66 t.Errorf("ListUsages failed to handle incorrect argument type.") 67 } 68 usages, err = api.ListUsages("LAST_24H", &ed, &sd) 69 if usages != nil || err == nil { 70 t.Errorf("ListUsages failed to handle 'start_date > end_date' case.") 71 } 72 }