public function testUpdatePropertiesThrowsExceptionWhenObjectIsInInvalidState() { $mock = new MockServer(); $apiObject = new Job(new Jenkins($mock), "blat"); $apiObject->color = "fuschia"; $apiObject->url = ""; $this->assertEquals("fuschia", $apiObject->color); $this->assertEquals("", $apiObject->url); try { $apiObject->updateProperties(new JsonData(array('color' => "blue"))); $this->fail("no InvalidApiObjectException thrown"); } catch (InvalidApiObjectException $e) { $this->assertEquals("API object in invalid state", $e->getMessage()); } }
/** * Constructs a Job from data assumed to have come from a Jenkins API call * * @param Jenkins $conn * @param JsonData $data * @return \mogman1\Jenkins\Job */ public static function factory(Jenkins $conn, JsonData $data) { $name = $data->get("name", ""); if (!$name) { throw new InvalidApiObjectException("'name' is required, but not found in build data"); } $job = new Job($conn, $name); $job->updateProperties($data); return $job; }