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  }