public void TestMetadata() { // test getters on null metadata var pod = new V1Pod(); Assert.Null(pod.Annotations()); Assert.Null(pod.ApiGroup()); var(g, v) = pod.ApiGroupAndVersion(); Assert.Null(g); Assert.Null(v); Assert.Null(pod.ApiGroupVersion()); Assert.Null(pod.CreationTimestamp()); Assert.Null(pod.DeletionTimestamp()); Assert.Null(pod.Finalizers()); Assert.Equal(-1, pod.FindOwnerReference(r => true)); Assert.Null(pod.Generation()); Assert.Null(pod.GetAnnotation("x")); Assert.Null(pod.GetController()); Assert.Null(pod.GetLabel("x")); Assert.Null(pod.GetOwnerReference(r => true)); Assert.False(pod.HasFinalizer("x")); Assert.Null(pod.Labels()); Assert.Null(pod.Name()); Assert.Null(pod.Namespace()); Assert.Null(pod.OwnerReferences()); Assert.Null(pod.ResourceVersion()); Assert.Null(pod.Uid()); Assert.Null(pod.Metadata); // test API version stuff pod = new V1Pod() { ApiVersion = "v1" }; Assert.Equal("", pod.ApiGroup()); (g, v) = pod.ApiGroupAndVersion(); Assert.Equal("", g); Assert.Equal("v1", v); Assert.Equal("v1", pod.ApiGroupVersion()); pod.ApiVersion = "abc/v2"; Assert.Equal("abc", pod.ApiGroup()); (g, v) = pod.ApiGroupAndVersion(); Assert.Equal("abc", g); Assert.Equal("v2", v); Assert.Equal("v2", pod.ApiGroupVersion()); // test the Ensure*() functions Assert.NotNull(pod.EnsureMetadata()); Assert.NotNull(pod.Metadata); Assert.NotNull(pod.Metadata.EnsureAnnotations()); Assert.NotNull(pod.Metadata.Annotations); Assert.NotNull(pod.Metadata.EnsureFinalizers()); Assert.NotNull(pod.Metadata.Finalizers); Assert.NotNull(pod.Metadata.EnsureLabels()); Assert.NotNull(pod.Metadata.Labels); // test getters with non-null values DateTime ts = DateTime.UtcNow, ts2 = DateTime.Now; pod.Metadata = new V1ObjectMeta() { CreationTimestamp = ts, DeletionTimestamp = ts2, Generation = 1, Name = "name", NamespaceProperty = "ns", ResourceVersion = "42", Uid = "id" }; Assert.Equal(ts, pod.CreationTimestamp().Value); Assert.Equal(ts2, pod.DeletionTimestamp().Value); Assert.Equal(1, pod.Generation().Value); Assert.Equal("name", pod.Name()); Assert.Equal("ns", pod.Namespace()); Assert.Equal("42", pod.ResourceVersion()); Assert.Equal("id", pod.Uid()); // test annotations and labels pod.SetAnnotation("x", "y"); pod.SetLabel("a", "b"); Assert.Equal(1, pod.Annotations().Count); Assert.Equal(1, pod.Labels().Count); Assert.Equal("y", pod.GetAnnotation("x")); Assert.Equal("y", pod.Metadata.Annotations["x"]); Assert.Null(pod.GetAnnotation("a")); Assert.Equal("b", pod.GetLabel("a")); Assert.Equal("b", pod.Metadata.Labels["a"]); Assert.Null(pod.GetLabel("x")); pod.SetAnnotation("x", null); Assert.Equal(0, pod.Annotations().Count); pod.SetLabel("a", null); Assert.Equal(0, pod.Labels().Count); // test finalizers Assert.False(pod.HasFinalizer("abc")); Assert.True(pod.AddFinalizer("abc")); Assert.True(pod.HasFinalizer("abc")); Assert.False(pod.AddFinalizer("abc")); Assert.False(pod.HasFinalizer("xyz")); Assert.False(pod.RemoveFinalizer("xyz")); Assert.True(pod.RemoveFinalizer("abc")); Assert.False(pod.HasFinalizer("abc")); Assert.False(pod.RemoveFinalizer("abc")); }
public void TestReferences() { // test object references var pod = new V1Pod() { ApiVersion = "v1", Kind = "Pod" }; pod.Metadata = new V1ObjectMeta() { Name = "name", NamespaceProperty = "ns", ResourceVersion = "ver", Uid = "id" }; var objr = new V1ObjectReference() { ApiVersion = pod.ApiVersion, Kind = pod.Kind, Name = pod.Name(), NamespaceProperty = pod.Namespace(), Uid = pod.Uid() }; Assert.True(objr.Matches(pod)); (pod.ApiVersion, pod.Kind) = (null, null); Assert.False(objr.Matches(pod)); (pod.ApiVersion, pod.Kind) = ("v1", "Pod"); Assert.True(objr.Matches(pod)); pod.Metadata.Name = "nome"; Assert.False(objr.Matches(pod)); // test owner references (pod.ApiVersion, pod.Kind) = ("abc/xyz", "sometimes"); var ownr = new V1OwnerReference() { ApiVersion = "abc/xyz", Kind = "sometimes", Name = pod.Name(), Uid = pod.Uid() }; Assert.True(ownr.Matches(pod)); (pod.ApiVersion, pod.Kind) = (null, null); Assert.False(ownr.Matches(pod)); (ownr.ApiVersion, ownr.Kind) = ("v1", "Pod"); Assert.False(ownr.Matches(pod)); (pod.ApiVersion, pod.Kind) = (ownr.ApiVersion, ownr.Kind); Assert.True(ownr.Matches(pod)); ownr.Name = "nim"; Assert.False(ownr.Matches(pod)); ownr.Name = pod.Name(); var svc = new V1Service(); svc.AddOwnerReference(ownr); Assert.Equal(0, svc.FindOwnerReference(pod)); Assert.Equal(-1, svc.FindOwnerReference(svc)); Assert.Same(ownr, svc.GetOwnerReference(pod)); Assert.Null(svc.GetOwnerReference(svc)); Assert.Null(svc.GetController()); svc.OwnerReferences()[0].Controller = true; Assert.Same(ownr, svc.GetController()); Assert.Same(ownr, svc.RemoveOwnerReference(pod)); Assert.Equal(0, svc.OwnerReferences().Count); svc.AddOwnerReference(new V1OwnerReference() { ApiVersion = pod.ApiVersion, Kind = pod.Kind, Name = pod.Name(), Uid = pod.Uid(), Controller = true }); svc.AddOwnerReference(new V1OwnerReference() { ApiVersion = pod.ApiVersion, Kind = pod.Kind, Name = pod.Name(), Uid = pod.Uid(), Controller = false }); svc.AddOwnerReference(new V1OwnerReference() { ApiVersion = pod.ApiVersion, Kind = pod.Kind, Name = pod.Name(), Uid = pod.Uid() }); Assert.Equal(3, svc.OwnerReferences().Count); Assert.NotNull(svc.RemoveOwnerReference(pod)); Assert.Equal(2, svc.OwnerReferences().Count); Assert.True(svc.RemoveOwnerReferences(pod)); Assert.Equal(0, svc.OwnerReferences().Count); }