/** * Test setIssueStatus() * * @covers ::setIssueStatus * @test * * @return void */ public function testSetIssueStatus() { // Test values $getResponse = 'API Response'; // Create the used mock objects $issueStatusApi = $this->getMockBuilder('Redmine\\Api\\Project')->disableOriginalConstructor()->getMock(); $issueStatusApi->expects($this->once())->method('getIdByName')->willReturn(123); $client = $this->getMockBuilder('Redmine\\Client')->disableOriginalConstructor()->getMock(); $client->expects($this->once())->method('api')->with('issue_status')->willReturn($issueStatusApi); $client->expects($this->once())->method('put')->with('/issues/5.xml', $this->logicalAnd($this->stringStartsWith('<?xml version="1.0"?>' . "\n" . '<issue>'), $this->stringEndsWith('</issue>' . "\n"), $this->stringContains('<id>5</id>'), $this->stringContains('<status_id>123</status_id>')))->willReturn($getResponse); // Create the object under test $api = new Issue($client); // Perform the tests $this->assertSame($getResponse, $api->setIssueStatus(5, 'Status Name')); }