@@ -150,3 +150,83 @@ pub async fn get_trusted_execution_cluster(client: Client) -> Result<TrustedExec
150150 ) ;
151151 cluster. and_then ( |c| c. ok_or ( err) )
152152}
153+
154+ #[ cfg( test) ]
155+ mod tests {
156+ use super :: * ;
157+ use http:: StatusCode ;
158+ use kube:: api:: ObjectList ;
159+ use trusted_cluster_operator_test_utils:: mock_client:: * ;
160+
161+ #[ tokio:: test]
162+ async fn test_get_some_trusted_execution_cluster ( ) {
163+ let clos = async |_, _| {
164+ let object_list = ObjectList {
165+ items : vec ! [ dummy_cluster( ) ] ,
166+ types : Default :: default ( ) ,
167+ metadata : Default :: default ( ) ,
168+ } ;
169+ Ok ( serde_json:: to_string ( & object_list) . unwrap ( ) )
170+ } ;
171+ count_check ! ( 1 , clos, |client| {
172+ let res = get_opt_trusted_execution_cluster( client) . await ;
173+ assert!( res. unwrap( ) . is_some( ) ) ;
174+ } ) ;
175+ }
176+
177+ #[ tokio:: test]
178+ async fn test_get_none_trusted_execution_cluster ( ) {
179+ let clos = async |_, _| {
180+ let object_list = ObjectList :: < TrustedExecutionCluster > {
181+ items : vec ! [ ] ,
182+ types : Default :: default ( ) ,
183+ metadata : Default :: default ( ) ,
184+ } ;
185+ Ok ( serde_json:: to_string ( & object_list) . unwrap ( ) )
186+ } ;
187+ count_check ! ( 1 , clos, |client| {
188+ let res = get_opt_trusted_execution_cluster( client) . await ;
189+ assert!( res. unwrap( ) . is_none( ) ) ;
190+ } ) ;
191+ }
192+
193+ #[ tokio:: test]
194+ async fn test_non_unique_trusted_execution_cluster ( ) {
195+ let clos = async |_, _| {
196+ let object_list = ObjectList {
197+ items : vec ! [ dummy_cluster( ) , dummy_cluster( ) ] ,
198+ types : Default :: default ( ) ,
199+ metadata : Default :: default ( ) ,
200+ } ;
201+ Ok ( serde_json:: to_string ( & object_list) . unwrap ( ) )
202+ } ;
203+ count_check ! ( 1 , clos, |client| {
204+ let err = get_opt_trusted_execution_cluster( client) . await . unwrap_err( ) ;
205+ assert!( err. to_string( ) . contains( "More than one" ) ) ;
206+ } ) ;
207+ }
208+
209+ #[ tokio:: test]
210+ async fn test_get_opt_trusted_execution_cluster_error ( ) {
211+ let clos = async |_, _| Err ( StatusCode :: INTERNAL_SERVER_ERROR ) ;
212+ count_check ! ( 1 , clos, |client| {
213+ assert!( get_opt_trusted_execution_cluster( client) . await . is_err( ) ) ;
214+ } ) ;
215+ }
216+
217+ #[ tokio:: test]
218+ async fn test_get_no_trusted_execution_cluster ( ) {
219+ let clos = async |_, _| {
220+ let object_list = ObjectList :: < TrustedExecutionCluster > {
221+ items : vec ! [ ] ,
222+ types : Default :: default ( ) ,
223+ metadata : Default :: default ( ) ,
224+ } ;
225+ Ok ( serde_json:: to_string ( & object_list) . unwrap ( ) )
226+ } ;
227+ count_check ! ( 1 , clos, |client| {
228+ let err = get_trusted_execution_cluster( client) . await . unwrap_err( ) ;
229+ assert!( err. to_string( ) . contains( "No TrustedExecutionCluster found" ) ) ;
230+ } ) ;
231+ }
232+ }
0 commit comments