Skip to content

Commit

Permalink
Add assertNoContent to TestResponse
Browse files Browse the repository at this point in the history
  • Loading branch information
jasonmccreary committed Sep 27, 2019
1 parent 156a7c5 commit 448157d
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 0 deletions.
14 changes: 14 additions & 0 deletions src/Illuminate/Foundation/Testing/TestResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,20 @@ public function assertUnauthorized()
return $this;
}

/**
* Assert that the response has the given status code and no content.
*
* @param int $status
* @return $this
*/
public function assertNoContent($status = 204)
{
$this->assertStatus($status);
PHPUnit::assertEmpty($this->getContent(), 'Response content is not empty.');

return $this;
}

/**
* Assert that the response has the given status code.
*
Expand Down
48 changes: 48 additions & 0 deletions tests/Foundation/FoundationTestResponseTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,54 @@ public function testAssertUnauthorized()
$response->assertUnauthorized();
}

public function testAssertNoContentAsserts204StatusCodeByDefault()
{
$statusCode = 500;

$this->expectException(AssertionFailedError::class);

$this->expectExceptionMessage("Expected status code 204 but received {$statusCode}");

$baseResponse = tap(new Response, function ($response) use ($statusCode) {
$response->setStatusCode($statusCode);
});

$response = TestResponse::fromBaseResponse($baseResponse);
$response->assertNoContent();
}

public function testAssertNoContentAssertsExpectedStatusCode()
{
$statusCode = 500;
$expectedStatusCode = 418;

$this->expectException(AssertionFailedError::class);

$this->expectExceptionMessage("Expected status code {$expectedStatusCode} but received {$statusCode}");

$baseResponse = tap(new Response, function ($response) use ($statusCode) {
$response->setStatusCode($statusCode);
});

$response = TestResponse::fromBaseResponse($baseResponse);
$response->assertNoContent($expectedStatusCode);
}

public function testAssertNoContentAssertsEmptyContent()
{
$this->expectException(AssertionFailedError::class);

$this->expectExceptionMessage('Response content is not empty');

$baseResponse = tap(new Response, function ($response) {
$response->setStatusCode(204);
$response->setContent('non-empty-response-content');
});

$response = TestResponse::fromBaseResponse($baseResponse);
$response->assertNoContent();
}

public function testAssertStatus()
{
$statusCode = 500;
Expand Down

0 comments on commit 448157d

Please sign in to comment.