forked from claranet/go-zabbix-api
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathapi_object_test.go
53 lines (47 loc) · 1.25 KB
/
api_object_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
package zabbix_test
import (
zapi "github.com/atypon/go-zabbix-api"
"reflect"
"testing"
)
func testCRUDAPIObjectOperations(t *testing.T, object zapi.APIObject) {
testCreateAPIObject(t, object)
defer testDeleteAPIObject(t, object)
reflectType := reflect.ValueOf(object).Elem().Type()
emptyObject := reflect.New(reflectType).Interface().(zapi.APIObject)
emptyObject.SetID(object.GetID())
testReadAPIObject(t, emptyObject)
testUpdateAPIObject(t, object)
}
func testCreateAPIObject(t *testing.T, object zapi.APIObject) {
err := _api.CreateAPIObject(object)
if err != nil {
t.Fatal(err)
}
t.Logf("Created API object: %+v", object)
}
func testReadAPIObject(t *testing.T, object zapi.APIObject) {
err := _api.ReadAPIObject(object)
if err != nil {
t.Fatal(err)
}
t.Logf("Read API object: %+v", object)
}
func testUpdateAPIObject(t *testing.T, object zapi.APIObject) {
err := _api.UpdateAPIObject(object)
if err != nil {
t.Fatal(err)
}
t.Logf("Updated API object: %+v", object)
}
func testDeleteAPIObject(t *testing.T, object zapi.APIObject) {
err := _api.DeleteAPIObject(object)
if err != nil {
t.Fatal(err)
}
err = _api.ReadAPIObject(object)
if err == nil {
t.Fatal("Could not delete object")
}
t.Logf("Deleted API object: %+v", object)
}