mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-10-19 05:39:51 +00:00
31 lines
769 B
Go
31 lines
769 B
Go
package json
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestLookupPtrToStruct(t *testing.T) {
|
|
type Elem struct {
|
|
Key string
|
|
Value string
|
|
}
|
|
type Outer struct {
|
|
Inner []Elem `json:"inner" patchStrategy:"merge" patchMergeKey:"key"`
|
|
}
|
|
outer := &Outer{}
|
|
elemType, patchStrategies, patchMergeKey, err := LookupPatchMetadataForStruct(reflect.TypeOf(outer), "inner")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if elemType != reflect.TypeOf([]Elem{}) {
|
|
t.Errorf("elemType = %v, want: %v", elemType, reflect.TypeOf([]Elem{}))
|
|
}
|
|
if !reflect.DeepEqual(patchStrategies, []string{"merge"}) {
|
|
t.Errorf("patchStrategies = %v, want: %v", patchStrategies, []string{"merge"})
|
|
}
|
|
if patchMergeKey != "key" {
|
|
t.Errorf("patchMergeKey = %v, want: %v", patchMergeKey, "key")
|
|
}
|
|
}
|