@@ -109,4 +109,76 @@ public function testUnknownFunctionFailure()
109109 );
110110 ParseCloud::run ('unknown_function ' , $ params );
111111 }
112+
113+ /**
114+ * @group cloud-code-jobs
115+ */
116+ public function testGetJobsData ()
117+ {
118+ $ jobsData = ParseCloud::getJobsData ();
119+ $ this ->assertNotNull ($ jobsData ['jobs ' ]);
120+ $ this ->assertNotNull ($ jobsData ['in_use ' ]);
121+ $ this ->assertEquals (0 , count ($ jobsData ['in_use ' ]));
122+ $ this ->assertEquals (3 , count ($ jobsData ['jobs ' ]));
123+ }
124+
125+ /**
126+ * @group cloud-code-jobs
127+ */
128+ public function testRunJob ()
129+ {
130+ $ jobStatusId = ParseCloud::startJob ('CloudJob1 ' , [
131+ 'startedBy ' => 'Monty Python '
132+ ]);
133+ $ this ->assertNotNull ($ jobStatusId );
134+
135+ $ jobStatus = ParseCloud::getJobStatus ($ jobStatusId );
136+ $ this ->assertNotNull ($ jobStatus );
137+ $ this ->assertEquals ('succeeded ' , $ jobStatus ->get ('status ' ));
138+ $ this ->assertEquals ('Monty Python ' , $ jobStatus ->get ('params ' )['startedBy ' ]);
139+ }
140+
141+ /**
142+ * @group cloud-code-jobs
143+ */
144+ public function testLongJob ()
145+ {
146+ $ jobStatusId = ParseCloud::startJob ('CloudJob2 ' );
147+ $ jobStatus = ParseCloud::getJobStatus ($ jobStatusId );
148+ $ this ->assertNotNull ($ jobStatus );
149+ $ this ->assertEquals ('running ' , $ jobStatus ->get ('status ' ));
150+ }
151+
152+ /**
153+ * @group cloud-code-jobs
154+ */
155+ public function testBadJob ()
156+ {
157+ $ this ->setExpectedException ('Parse\ParseException ' , 'Invalid job. ' );
158+ ParseCloud::startJob ('bad_job ' );
159+ }
160+
161+ /**
162+ * @group cloud-code-jobs
163+ */
164+ public function testFailingJob ()
165+ {
166+ $ jobStatusId = ParseCloud::startJob ('CloudJobFailing ' );
167+ $ this ->assertNotNull ($ jobStatusId );
168+
169+ $ jobStatus = ParseCloud::getJobStatus ($ jobStatusId );
170+ $ this ->assertNotNull ($ jobStatus );
171+ $ this ->assertEquals ('failed ' , $ jobStatus ->get ('status ' ));
172+ $ this ->assertEquals ('cloud job failed ' , $ jobStatus ->get ('message ' ));
173+ }
174+
175+ /**
176+ * @group cloud-code-jobs
177+ */
178+ public function testGettingNotARealJobStatus ()
179+ {
180+ $ this ->setExpectedException ('Parse\ParseException ' , 'Object not found. ' );
181+ $ jobStatus = ParseCloud::getJobStatus ('not-a-real-job-status ' );
182+ $ this ->assertNull ($ jobStatus );
183+ }
112184}
0 commit comments