mirror of https://github.com/k3s-io/k3s
parent
a18c902085
commit
66013660fa
|
@ -310,6 +310,65 @@ func testSimpleCRUD(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestInvalidCRUD(t *testing.T) {
|
||||||
|
tearDown, apiExtensionClient, dynamicClient, err := fixtures.StartDefaultServerWithClients(t)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer tearDown()
|
||||||
|
|
||||||
|
noxuDefinition := fixtures.NewNoxuCustomResourceDefinition(apiextensionsv1beta1.ClusterScoped)
|
||||||
|
noxuDefinition, err = fixtures.CreateNewCustomResourceDefinition(noxuDefinition, apiExtensionClient, dynamicClient)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
noxuResourceClients := map[string]dynamic.ResourceInterface{}
|
||||||
|
noxuWatchs := map[string]watch.Interface{}
|
||||||
|
disabledVersions := map[string]bool{}
|
||||||
|
for _, v := range noxuDefinition.Spec.Versions {
|
||||||
|
disabledVersions[v.Name] = !v.Served
|
||||||
|
}
|
||||||
|
for _, v := range noxuDefinition.Spec.Versions {
|
||||||
|
noxuResourceClients[v.Name] = newNamespacedCustomResourceVersionedClient("", dynamicClient, noxuDefinition, v.Name)
|
||||||
|
|
||||||
|
noxuWatch, err := noxuResourceClients[v.Name].Watch(metav1.ListOptions{})
|
||||||
|
if disabledVersions[v.Name] {
|
||||||
|
if !errors.IsNotFound(err) {
|
||||||
|
t.Errorf("expected the watch operation fail with NotFound for disabled version %s, got error: %v", v.Name, err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
noxuWatchs[v.Name] = noxuWatch
|
||||||
|
}
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
for _, w := range noxuWatchs {
|
||||||
|
w.Stop()
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
for version, noxuResourceClient := range noxuResourceClients {
|
||||||
|
// Case when typeless Unstructured object is passed
|
||||||
|
typelessInstance := &unstructured.Unstructured{}
|
||||||
|
if _, err := noxuResourceClient.Create(typelessInstance, metav1.CreateOptions{}); !errors.IsBadRequest(err) {
|
||||||
|
t.Errorf("expected badrequest for submitting empty object, got %#v", err)
|
||||||
|
}
|
||||||
|
// Case when apiVersion and Kind would be set up from GVK, but no other objects are present
|
||||||
|
typedNoBodyInstance := &unstructured.Unstructured{
|
||||||
|
Object: map[string]interface{}{
|
||||||
|
"apiVersion": "mygroup.example.com/" + version,
|
||||||
|
"kind": "WishIHadChosenNoxu",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
if _, err := noxuResourceClient.Create(typedNoBodyInstance, metav1.CreateOptions{}); !errors.IsInvalid(err) {
|
||||||
|
t.Errorf("expected invalid request for submitting malformed object, got %#v", err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func testFieldSelector(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta1.CustomResourceDefinition, dynamicClient dynamic.Interface) {
|
func testFieldSelector(t *testing.T, ns string, noxuDefinition *apiextensionsv1beta1.CustomResourceDefinition, dynamicClient dynamic.Interface) {
|
||||||
noxuResourceClient := newNamespacedCustomResourceClient(ns, dynamicClient, noxuDefinition)
|
noxuResourceClient := newNamespacedCustomResourceClient(ns, dynamicClient, noxuDefinition)
|
||||||
initialList, err := noxuResourceClient.List(metav1.ListOptions{})
|
initialList, err := noxuResourceClient.List(metav1.ListOptions{})
|
||||||
|
|
Loading…
Reference in New Issue