@@ -181,6 +181,7 @@ var _ = Describe("Controllerutil", func() {
181181 Expect (controllerutil .RemoveOwnerReference (obj , rs , scheme .Scheme )).To (HaveOccurred ())
182182 Expect (rs .GetOwnerReferences ()).To (HaveLen (1 ))
183183 })
184+
184185 It ("should error when trying to remove an owner that doesn't exist" , func () {
185186 rs := & appsv1.ReplicaSet {
186187 ObjectMeta : metav1.ObjectMeta {},
@@ -229,6 +230,22 @@ var _ = Describe("Controllerutil", func() {
229230 Expect (controllerutil .RemoveControllerReference (dep , rs , scheme .Scheme )).To (HaveOccurred ())
230231 })
231232
233+ It ("should error when RemoveControllerReference passed in owner is not the owner" , func () {
234+ rs := & appsv1.ReplicaSet {
235+ ObjectMeta : metav1.ObjectMeta {},
236+ }
237+ dep := & extensionsv1beta1.Deployment {
238+ ObjectMeta : metav1.ObjectMeta {Name : "foo" , UID : "foo-uid-2" },
239+ }
240+ dep2 := & extensionsv1beta1.Deployment {
241+ ObjectMeta : metav1.ObjectMeta {Name : "foo-2" , UID : "foo-uid-42" },
242+ }
243+ Expect (controllerutil .SetControllerReference (dep , rs , scheme .Scheme )).ToNot (HaveOccurred ())
244+ Expect (controllerutil .SetOwnerReference (dep2 , rs , scheme .Scheme )).ToNot (HaveOccurred ())
245+ Expect (controllerutil .RemoveControllerReference (dep2 , rs , scheme .Scheme )).To (HaveOccurred ())
246+ Expect (rs .GetOwnerReferences ()).To (HaveLen (2 ))
247+ })
248+
232249 It ("should not error when RemoveControllerReference owner's controller is set to true" , func () {
233250 rs := & appsv1.ReplicaSet {
234251 ObjectMeta : metav1.ObjectMeta {},
0 commit comments