@@ -195,6 +195,51 @@ var _ = Describe("Controllerutil", func() {
195195 Expect (controllerutil .RemoveOwnerReference (dep2 , rs , scheme .Scheme )).To (HaveOccurred ())
196196 Expect (rs .GetOwnerReferences ()).To (HaveLen (1 ))
197197 })
198+
199+ It ("should return true when HasControllerReference evaluates owner reference set by SetControllerReference" , func () {
200+ rs := & appsv1.ReplicaSet {
201+ ObjectMeta : metav1.ObjectMeta {},
202+ }
203+ dep := & extensionsv1beta1.Deployment {
204+ ObjectMeta : metav1.ObjectMeta {Name : "foo" , UID : "foo-uid-2" },
205+ }
206+ Expect (controllerutil .SetControllerReference (dep , rs , scheme .Scheme )).ToNot (HaveOccurred ())
207+ Expect (controllerutil .HasControllerReference (rs )).To (BeTrue ())
208+ })
209+
210+ It ("should return false when HasControllerReference evaluates owner reference set by SetOwnerReference" , func () {
211+ rs := & appsv1.ReplicaSet {
212+ ObjectMeta : metav1.ObjectMeta {},
213+ }
214+ dep := & extensionsv1beta1.Deployment {
215+ ObjectMeta : metav1.ObjectMeta {Name : "foo" , UID : "foo-uid-2" },
216+ }
217+ Expect (controllerutil .SetOwnerReference (dep , rs , scheme .Scheme )).ToNot (HaveOccurred ())
218+ Expect (controllerutil .HasControllerReference (rs )).To (BeFalse ())
219+ })
220+
221+ It ("should error when RemoveControllerReference owner's controller is set to false" , func () {
222+ rs := & appsv1.ReplicaSet {
223+ ObjectMeta : metav1.ObjectMeta {},
224+ }
225+ dep := & extensionsv1beta1.Deployment {
226+ ObjectMeta : metav1.ObjectMeta {Name : "foo" , UID : "foo-uid-2" },
227+ }
228+ Expect (controllerutil .SetOwnerReference (dep , rs , scheme .Scheme )).ToNot (HaveOccurred ())
229+ Expect (controllerutil .RemoveControllerReference (dep , rs , scheme .Scheme )).To (HaveOccurred ())
230+ })
231+
232+ It ("should not error when RemoveControllerReference owner's controller is set to true" , func () {
233+ rs := & appsv1.ReplicaSet {
234+ ObjectMeta : metav1.ObjectMeta {},
235+ }
236+ dep := & extensionsv1beta1.Deployment {
237+ ObjectMeta : metav1.ObjectMeta {Name : "foo" , UID : "foo-uid-2" },
238+ }
239+ Expect (controllerutil .SetControllerReference (dep , rs , scheme .Scheme )).ToNot (HaveOccurred ())
240+ Expect (controllerutil .RemoveControllerReference (dep , rs , scheme .Scheme )).ToNot (HaveOccurred ())
241+ Expect (rs .GetOwnerReferences ()).To (BeEmpty ())
242+ })
198243 })
199244
200245 Describe ("SetControllerReference" , func () {
0 commit comments