/** * @covers Artist::populate * @depends testUpdate */ public function testPopulate(Artist $updatedArtistDummy) { $artistDummy = $this->dummyArtistProvider(); //populate by name, expected no match $this->assertFalse($this->object->populate(['name' => 'nameValue']), 'Populate should not find any artist with name nameValue'); //populate by name, expected match $this->assertTrue($this->object->populate(['name' => 'artistName']), 'Populate should find the created artist with name ' . $artistDummy->name); //populate by mbid, expected match $this->assertTrue($this->object->populate(['mbid' => $artistDummy->mbid]), 'Populate should find the created artist with mbid ' . $artistDummy->mbid); //populate by id, expected match $this->assertTrue($this->object->populate(['id' => 2]), 'Populate should find the created artist with id 2 (previously created)'); //populate by all criteria, expected match $this->assertTrue($this->object->populate(['id' => 2, 'mbid' => $updatedArtistDummy->mbid, 'name' => $updatedArtistDummy->name]), 'Populate should find the created artist with id 2 (previously created)'); //check populate return all attributes $this->assertEquals($updatedArtistDummy->name, $this->object->name, 'Artist name should have been set during populate'); $this->assertEquals($updatedArtistDummy->country, $this->object->country, 'Artist country should have been set during populate'); $this->assertEquals($updatedArtistDummy->summary, $this->object->summary, 'Artist summary should have been set during populate'); $this->assertEquals($updatedArtistDummy->mbid, $this->object->mbid, 'Artist mbid should have been set during populate'); }
if (!$api->checkAuth()) { //User not authentified/authorized return; } if (!$api->checkScope('admin')) { $api->output(403, 'Admin scope is required for editing artist'); //indicate the requester do not have the required scope for updating artist return; } if (!$api->checkParameterExists('id', $id)) { $api->output(400, 'Artist identifier must be provided'); //artist was not provided, return an error return; } $artist = new Artist($id); if (!$artist->populate(['id' => $id])) { $api->output(404, 'Artist not found'); //indicate the artist was not found return; } //adapt and validate object received $updatedArtist = $api->query['body']; if (!$artist->validateModel($updatedArtist, $errorMessage)) { $api->output(400, 'Artist is not valid: ' . $errorMessage); //provided user is not valid return; } if (!$artist->update($errorMessage)) { $api->output(500, 'Error during artist update' . $errorMessage); //something gone wrong :( return;