mirror of https://github.com/grafana/grafana.git
73 lines
2.9 KiB
Go
73 lines
2.9 KiB
Go
package rest
|
|
|
|
// import (
|
|
// "context"
|
|
// "testing"
|
|
|
|
// "github.com/stretchr/testify/assert"
|
|
// metainternalversion "k8s.io/apimachinery/pkg/apis/meta/internalversion"
|
|
// metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
|
// "k8s.io/apimachinery/pkg/runtime"
|
|
// "k8s.io/apiserver/pkg/apis/example"
|
|
// )
|
|
|
|
// func TestMode4(t *testing.T) {
|
|
// var ls = (LegacyStorage)(nil)
|
|
// var s = (Storage)(nil)
|
|
// lsSpy := NewLegacyStorageSpyClient(ls)
|
|
// sSpy := NewStorageSpyClient(s)
|
|
|
|
// dw := NewDualWriterMode4(lsSpy, sSpy)
|
|
|
|
// // Create: it should use the Legacy Create implementation
|
|
// _, err := dw.Create(context.Background(), &dummyObject{}, func(context.Context, runtime.Object) error { return nil }, &metav1.CreateOptions{})
|
|
// assert.NoError(t, err)
|
|
// assert.Equal(t, 0, lsSpy.Counts("LegacyStorage.Create"))
|
|
// assert.Equal(t, 1, sSpy.Counts("Storage.Create"))
|
|
|
|
// // Get: it should use the Storage Get implementation
|
|
// _, err = dw.Get(context.Background(), kind, &metav1.GetOptions{})
|
|
// assert.NoError(t, err)
|
|
// assert.Equal(t, 0, lsSpy.Counts("LegacyStorage.Get"))
|
|
// assert.Equal(t, 1, sSpy.Counts("Storage.Get"))
|
|
|
|
// // List: it should use the Storage Get implementation
|
|
// _, err = dw.List(context.Background(), &metainternalversion.ListOptions{})
|
|
// assert.NoError(t, err)
|
|
// assert.Equal(t, 0, lsSpy.Counts("LegacyStorage.List"))
|
|
// assert.Equal(t, 1, sSpy.Counts("Storage.List"))
|
|
|
|
// // Delete: it should use call Storage Delete method
|
|
// var deleteValidation = func(ctx context.Context, obj runtime.Object) error { return nil }
|
|
// _, _, err = dw.Delete(context.Background(), kind, deleteValidation, &metav1.DeleteOptions{})
|
|
// assert.NoError(t, err)
|
|
// assert.Equal(t, 0, lsSpy.Counts("LegacyStorage.Delete"))
|
|
// assert.Equal(t, 1, sSpy.Counts("Storage.Delete"))
|
|
|
|
// // DeleteCollection: it should use the Storage DeleteCollection implementation
|
|
// _, err = dw.DeleteCollection(
|
|
// context.Background(),
|
|
// func(context.Context, runtime.Object) error { return nil },
|
|
// &metav1.DeleteOptions{},
|
|
// &metainternalversion.ListOptions{},
|
|
// )
|
|
// assert.NoError(t, err)
|
|
// assert.Equal(t, 0, lsSpy.Counts("LegacyStorage.DeleteCollection"))
|
|
// assert.Equal(t, 1, sSpy.Counts("Storage.DeleteCollection"))
|
|
|
|
// // Update: it should update only in Storage
|
|
// dummy := &example.Pod{}
|
|
// uoi := UpdatedObjInfoObj{}
|
|
// _, err = uoi.UpdatedObject(context.Background(), dummy)
|
|
// assert.NoError(t, err)
|
|
|
|
// var validateObjFn = func(ctx context.Context, obj runtime.Object) error { return nil }
|
|
// var validateObjUpdateFn = func(ctx context.Context, obj, old runtime.Object) error { return nil }
|
|
|
|
// _, _, err = dw.Update(context.Background(), kind, uoi, validateObjFn, validateObjUpdateFn, false, &metav1.UpdateOptions{})
|
|
// assert.NoError(t, err)
|
|
// assert.Equal(t, 0, lsSpy.Counts("LegacyStorage.Update"))
|
|
// assert.Equal(t, 1, sSpy.Counts("Storage.Update"))
|
|
// assert.NoError(t, err)
|
|
// }
|