Select Git revision
database.go
audit_test.go 1.41 KiB
package audit
import (
"encoding/json"
"fmt"
"gitlab.bob.co.za/bob-public-utils/bobgroup-go-utils/utils"
"testing"
"time"
)
type StringType *string
type Tag struct {
Name string
Value *string
StrType *StringType
}
type MockObject struct {
Name *string `json:"name"`
Strings []*string `json:"strings"`
Tags []Tag `json:"tag"`
TimeCreated *time.Time `json:"time_created"`
SingleTagPtr *Tag `json:"single_tag_ptr"`
SingleTag Tag `json:"single_tag"`
StrType *StringType `json:"str_type"`
}
func TestGetChanges(t *testing.T) {
object1 := MockObject{
Strings: []*string{nil},
}
object2 := MockObject{
Name: utils.ValueToPointer("NewName"),
Strings: []*string{utils.ValueToPointer("NewStr1"), utils.ValueToPointer("NewStr2")},
Tags: []Tag{{"NewTag", utils.ValueToPointer("NewValue"), utils.ValueToPointer(StringType(utils.ValueToPointer("NewStrType")))}},
TimeCreated: utils.ValueToPointer(time.Now()),
SingleTagPtr: &Tag{"NewSingleTagPtr", utils.ValueToPointer("NewSingleValuePtr"), nil},
SingleTag: Tag{"NewSingleTag", utils.ValueToPointer("NewSingleValue"), nil},
StrType: utils.ValueToPointer(StringType(utils.ValueToPointer("NewStrType"))),
}
changes, err := GetChanges(object1, object2)
if err != nil {
panic(err)
}
result, _ := json.MarshalIndent(changes, "", " ")
fmt.Println(string(result))
}