10
10
use RenokiCo \PhpK8s \Kinds \K8sJob ;
11
11
use RenokiCo \PhpK8s \ResourcesList ;
12
12
13
- class CronCronJobTest extends TestCase
13
+ class CronJobTest extends TestCase
14
14
{
15
15
public function test_cronjob_build ()
16
16
{
@@ -87,28 +87,28 @@ public function test_cronjob_api_interaction()
87
87
88
88
public function runCreationTests ()
89
89
{
90
- $ pi = K8s::container ()
91
- ->setName ('pi ' )
92
- ->setImage ('public.ecr.aws/docker/library/perl ' , ' 5.36.0 ' )
93
- ->setCommand (['perl ' , ' -Mbignum=bpi ' , '-wle ' , ' print bpi(200) ' ]);
90
+ $ busybox = K8s::container ()
91
+ ->setName ('busybox-exec ' )
92
+ ->setImage ('public.ecr.aws/docker/library/busybox ' )
93
+ ->setCommand (['/bin/sh ' , ' -c ' , 'sleep 30 ' ]);
94
94
95
95
$ pod = $ this ->cluster ->pod ()
96
- ->setName ('perl ' )
97
- ->setContainers ([$ pi ])
96
+ ->setName ('sleep ' )
97
+ ->setContainers ([$ busybox ])
98
98
->restartOnFailure ()
99
99
->neverRestart ();
100
100
101
101
$ job = $ this ->cluster ->job ()
102
- ->setName ('pi ' )
103
- ->setLabels (['tier ' => 'backend ' ])
104
- ->setAnnotations (['perl/annotation ' => 'yes ' ])
102
+ ->setName ('sleeper ' )
103
+ ->setLabels (['tier ' => 'useless ' ])
104
+ ->setAnnotations (['perl/annotation ' => 'no ' ])
105
105
->setTTL (3600 )
106
106
->setTemplate ($ pod );
107
107
108
108
$ cronjob = $ this ->cluster ->cronjob ()
109
- ->setName ('pi ' )
110
- ->setLabels (['tier ' => 'backend ' ])
111
- ->setAnnotations (['perl/annotation ' => 'yes ' ])
109
+ ->setName ('periodic-sleep ' )
110
+ ->setLabels (['tier ' => 'useless ' ])
111
+ ->setAnnotations (['perl/annotation ' => 'no ' ])
112
112
->setJobTemplate ($ job )
113
113
->setSchedule (CronExpression::factory ('* * * * * ' ));
114
114
@@ -123,9 +123,9 @@ public function runCreationTests()
123
123
$ this ->assertInstanceOf (K8sCronJob::class, $ cronjob );
124
124
125
125
$ this ->assertEquals ('batch/v1 ' , $ cronjob ->getApiVersion ());
126
- $ this ->assertEquals ('pi ' , $ cronjob ->getName ());
127
- $ this ->assertEquals (['tier ' => 'backend ' ], $ cronjob ->getLabels ());
128
- $ this ->assertEquals (['perl/annotation ' => 'yes ' ], $ cronjob ->getAnnotations ());
126
+ $ this ->assertEquals ('periodic-sleep ' , $ cronjob ->getName ());
127
+ $ this ->assertEquals (['tier ' => 'useless ' ], $ cronjob ->getLabels ());
128
+ $ this ->assertEquals (['perl/annotation ' => 'no ' ], $ cronjob ->getAnnotations ());
129
129
$ this ->assertEquals ('Never ' , $ pod ->getRestartPolicy ());
130
130
131
131
$ this ->assertInstanceOf (K8sJob::class, $ cronjob ->getJobTemplate ());
@@ -135,6 +135,7 @@ public function runCreationTests()
135
135
136
136
$ activeJobs = $ cronjob ->getActiveJobs ();
137
137
138
+ // This check is sensitive to ensuring the jobs take some time to complete.
138
139
while ($ cronjob ->getActiveJobs ()->count () === 0 ) {
139
140
dump ("Waiting for the cronjob {$ cronjob ->getName ()} to have active jobs... " );
140
141
sleep (1 );
@@ -169,23 +170,23 @@ public function runGetAllTests()
169
170
170
171
public function runGetTests ()
171
172
{
172
- $ cronjob = $ this ->cluster ->getCronJobByName ('pi ' );
173
+ $ cronjob = $ this ->cluster ->getCronJobByName ('periodic-sleep ' );
173
174
174
175
$ this ->assertInstanceOf (K8sCronJob::class, $ cronjob );
175
176
176
177
$ this ->assertTrue ($ cronjob ->isSynced ());
177
178
178
179
$ this ->assertEquals ('batch/v1 ' , $ cronjob ->getApiVersion ());
179
- $ this ->assertEquals ('pi ' , $ cronjob ->getName ());
180
- $ this ->assertEquals (['tier ' => 'backend ' ], $ cronjob ->getLabels ());
181
- $ this ->assertEquals (['perl/annotation ' => 'yes ' ], $ cronjob ->getAnnotations ());
180
+ $ this ->assertEquals ('periodic-sleep ' , $ cronjob ->getName ());
181
+ $ this ->assertEquals (['tier ' => 'useless ' ], $ cronjob ->getLabels ());
182
+ $ this ->assertEquals (['perl/annotation ' => 'no ' ], $ cronjob ->getAnnotations ());
182
183
183
184
$ this ->assertInstanceOf (K8sJob::class, $ cronjob ->getJobTemplate ());
184
185
}
185
186
186
187
public function runUpdateTests ()
187
188
{
188
- $ cronjob = $ this ->cluster ->getCronJobByName ('pi ' );
189
+ $ cronjob = $ this ->cluster ->getCronJobByName ('periodic-sleep ' );
189
190
190
191
$ this ->assertTrue ($ cronjob ->isSynced ());
191
192
@@ -196,16 +197,16 @@ public function runUpdateTests()
196
197
$ this ->assertTrue ($ cronjob ->isSynced ());
197
198
198
199
$ this ->assertEquals ('batch/v1 ' , $ cronjob ->getApiVersion ());
199
- $ this ->assertEquals ('pi ' , $ cronjob ->getName ());
200
- $ this ->assertEquals (['tier ' => 'backend ' ], $ cronjob ->getLabels ());
200
+ $ this ->assertEquals ('periodic-sleep ' , $ cronjob ->getName ());
201
+ $ this ->assertEquals (['tier ' => 'useless ' ], $ cronjob ->getLabels ());
201
202
$ this ->assertEquals ([], $ cronjob ->getAnnotations ());
202
203
203
204
$ this ->assertInstanceOf (K8sJob::class, $ cronjob ->getJobTemplate ());
204
205
}
205
206
206
207
public function runDeletionTests ()
207
208
{
208
- $ cronjob = $ this ->cluster ->getCronJobByName ('pi ' );
209
+ $ cronjob = $ this ->cluster ->getCronJobByName ('periodic-sleep ' );
209
210
210
211
$ this ->assertTrue ($ cronjob ->delete ());
211
212
@@ -216,13 +217,13 @@ public function runDeletionTests()
216
217
217
218
$ this ->expectException (KubernetesAPIException::class);
218
219
219
- $ this ->cluster ->getCronJobByName ('pi ' );
220
+ $ this ->cluster ->getCronJobByName ('periodic-sleep ' );
220
221
}
221
222
222
223
public function runWatchAllTests ()
223
224
{
224
225
$ watch = $ this ->cluster ->cronjob ()->watchAll (function ($ type , $ cronjob ) {
225
- if ($ cronjob ->getName () === 'pi ' ) {
226
+ if ($ cronjob ->getName () === 'periodic-sleep ' ) {
226
227
return true ;
227
228
}
228
229
}, ['timeoutSeconds ' => 10 ]);
@@ -232,8 +233,8 @@ public function runWatchAllTests()
232
233
233
234
public function runWatchTests ()
234
235
{
235
- $ watch = $ this ->cluster ->cronjob ()->watchByName ('pi ' , function ($ type , $ cronjob ) {
236
- return $ cronjob ->getName () === 'pi ' ;
236
+ $ watch = $ this ->cluster ->cronjob ()->watchByName ('periodic-sleep ' , function ($ type , $ cronjob ) {
237
+ return $ cronjob ->getName () === 'periodic-sleep ' ;
237
238
}, ['timeoutSeconds ' => 10 ]);
238
239
239
240
$ this ->assertTrue ($ watch );
0 commit comments