@@ -37,24 +37,6 @@ var _ = Describe("Banner Controller", func() {
3737 }
3838 Expect (k8sClient .Create (ctx , resource )).To (Succeed ())
3939 }
40-
41- By ("Creating the custom resource for the Kind Banner" )
42- banner := & v1alpha1.Banner {}
43- if err := k8sClient .Get (ctx , key , banner ); errors .IsNotFound (err ) {
44- resource := & v1alpha1.Banner {
45- ObjectMeta : metav1.ObjectMeta {
46- Name : name ,
47- Namespace : metav1 .NamespaceDefault ,
48- },
49- Spec : v1alpha1.BannerSpec {
50- DeviceRef : v1alpha1.LocalObjectReference {Name : name },
51- Message : v1alpha1.TemplateSource {
52- Inline : ptr .To ("Test Banner" ),
53- },
54- },
55- }
56- Expect (k8sClient .Create (ctx , resource )).To (Succeed ())
57- }
5840 })
5941
6042 AfterEach (func () {
@@ -74,11 +56,87 @@ var _ = Describe("Banner Controller", func() {
7456
7557 By ("Ensuring the resource is deleted from the provider" )
7658 Eventually (func (g Gomega ) {
77- g .Expect (testProvider .Banner ).To (BeNil (), "Provider Banner should be nil" )
59+ g .Expect (testProvider .PreLoginBanner ).To (BeNil (), "Provider PreLogin Banner should be nil" )
60+ g .Expect (testProvider .PostLoginBanner ).To (BeNil (), "Provider PostLogin Banner should be nil" )
61+ }).Should (Succeed ())
62+ })
63+
64+ It ("Should successfully reconcile a PreLogin Banner" , func () {
65+ By ("Creating a PreLogin Banner" )
66+ banner := & v1alpha1.Banner {
67+ ObjectMeta : metav1.ObjectMeta {
68+ Name : name ,
69+ Namespace : metav1 .NamespaceDefault ,
70+ },
71+ Spec : v1alpha1.BannerSpec {
72+ DeviceRef : v1alpha1.LocalObjectReference {Name : name },
73+ Type : v1alpha1 .BannerTypePreLogin ,
74+ Message : v1alpha1.TemplateSource {
75+ Inline : ptr .To ("Test Banner" ),
76+ },
77+ },
78+ }
79+ Expect (k8sClient .Create (ctx , banner )).To (Succeed ())
80+
81+ By ("Adding a finalizer to the resource" )
82+ Eventually (func (g Gomega ) {
83+ resource := & v1alpha1.Banner {}
84+ g .Expect (k8sClient .Get (ctx , key , resource )).To (Succeed ())
85+ g .Expect (controllerutil .ContainsFinalizer (resource , v1alpha1 .FinalizerName )).To (BeTrue ())
86+ }).Should (Succeed ())
87+
88+ By ("Adding the device label to the resource" )
89+ Eventually (func (g Gomega ) {
90+ resource := & v1alpha1.Banner {}
91+ g .Expect (k8sClient .Get (ctx , key , resource )).To (Succeed ())
92+ g .Expect (resource .Labels ).To (HaveKeyWithValue (v1alpha1 .DeviceLabel , name ))
93+ }).Should (Succeed ())
94+
95+ By ("Adding the device as a owner reference" )
96+ Eventually (func (g Gomega ) {
97+ resource := & v1alpha1.Banner {}
98+ g .Expect (k8sClient .Get (ctx , key , resource )).To (Succeed ())
99+ g .Expect (resource .OwnerReferences ).To (HaveLen (1 ))
100+ g .Expect (resource .OwnerReferences [0 ].Kind ).To (Equal ("Device" ))
101+ g .Expect (resource .OwnerReferences [0 ].Name ).To (Equal (name ))
102+ }).Should (Succeed ())
103+
104+ By ("Updating the resource status" )
105+ Eventually (func (g Gomega ) {
106+ resource := & v1alpha1.Banner {}
107+ g .Expect (k8sClient .Get (ctx , key , resource )).To (Succeed ())
108+ g .Expect (resource .Status .Conditions ).To (HaveLen (1 ))
109+ g .Expect (resource .Status .Conditions [0 ].Type ).To (Equal (v1alpha1 .ReadyCondition ))
110+ g .Expect (resource .Status .Conditions [0 ].Status ).To (Equal (metav1 .ConditionTrue ))
111+ }).Should (Succeed ())
112+
113+ By ("Ensuring the resource is created in the provider" )
114+ Eventually (func (g Gomega ) {
115+ g .Expect (testProvider .PreLoginBanner ).ToNot (BeNil (), "Provider Banner should not be nil" )
116+ g .Expect (testProvider .PostLoginBanner ).To (BeNil (), "Provider PostLogin Banner should be nil" )
117+ if testProvider .PreLoginBanner != nil {
118+ g .Expect (* testProvider .PreLoginBanner ).To (Equal ("Test Banner" ))
119+ }
78120 }).Should (Succeed ())
79121 })
80122
81- It ("Should successfully reconcile the resource" , func () {
123+ It ("Should successfully reconcile a PostLogin Banner" , func () {
124+ By ("Creating a PostLogin Banner" )
125+ banner := & v1alpha1.Banner {
126+ ObjectMeta : metav1.ObjectMeta {
127+ Name : name ,
128+ Namespace : metav1 .NamespaceDefault ,
129+ },
130+ Spec : v1alpha1.BannerSpec {
131+ DeviceRef : v1alpha1.LocalObjectReference {Name : name },
132+ Type : v1alpha1 .BannerTypePostLogin ,
133+ Message : v1alpha1.TemplateSource {
134+ Inline : ptr .To ("Test Banner" ),
135+ },
136+ },
137+ }
138+ Expect (k8sClient .Create (ctx , banner )).To (Succeed ())
139+
82140 By ("Adding a finalizer to the resource" )
83141 Eventually (func (g Gomega ) {
84142 resource := & v1alpha1.Banner {}
@@ -113,9 +171,10 @@ var _ = Describe("Banner Controller", func() {
113171
114172 By ("Ensuring the resource is created in the provider" )
115173 Eventually (func (g Gomega ) {
116- g .Expect (testProvider .Banner ).ToNot (BeNil (), "Provider Banner should not be nil" )
117- if testProvider .Banner != nil {
118- g .Expect (* testProvider .Banner ).To (Equal ("Test Banner" ))
174+ g .Expect (testProvider .PreLoginBanner ).To (BeNil (), "Provider PreLogin Banner should be nil" )
175+ g .Expect (testProvider .PostLoginBanner ).ToNot (BeNil (), "Provider PostLogin Banner should not be nil" )
176+ if testProvider .PostLoginBanner != nil {
177+ g .Expect (* testProvider .PostLoginBanner ).To (Equal ("Test Banner" ))
119178 }
120179 }).Should (Succeed ())
121180 })
0 commit comments