126 - More Custom Assertion Fun

This commit is contained in:
Adam Wathan
2017-07-10 15:13:06 -04:00
parent df93546ed4
commit 3d50f7cf53
2 changed files with 25 additions and 15 deletions

View File

@@ -10,4 +10,9 @@ class ConcertFactory
$concert->publish(); $concert->publish();
return $concert; return $concert;
} }
public static function createUnpublished($overrides = [])
{
return factory(Concert::class)->states('unpublished')->create($overrides);
}
} }

View File

@@ -28,6 +28,15 @@ class ViewConcertListTest extends TestCase
Collection::macro('assertNotContains', function ($value) { Collection::macro('assertNotContains', function ($value) {
Assert::assertFalse($this->contains($value), "Failed asserting that the collection does not contain the specified value."); Assert::assertFalse($this->contains($value), "Failed asserting that the collection does not contain the specified value.");
}); });
Collection::macro('assertEquals', function ($items) {
Assert::assertEquals(count($this), count($items));
$this->zip($items)->each(function ($pair) {
list($a, $b) = $pair;
Assert::assertTrue($a->is($b));
});
});
} }
/** @test */ /** @test */
@@ -49,26 +58,22 @@ class ViewConcertListTest extends TestCase
$publishedConcertB = ConcertFactory::createPublished(['user_id' => $otherUser->id]); $publishedConcertB = ConcertFactory::createPublished(['user_id' => $otherUser->id]);
$publishedConcertC = ConcertFactory::createPublished(['user_id' => $user->id]); $publishedConcertC = ConcertFactory::createPublished(['user_id' => $user->id]);
$unpublishedConcertA = factory(Concert::class)->states('unpublished')->create(['user_id' => $user->id]); $unpublishedConcertA = ConcertFactory::createUnpublished(['user_id' => $user->id]);
$unpublishedConcertB = factory(Concert::class)->states('unpublished')->create(['user_id' => $otherUser->id]); $unpublishedConcertB = ConcertFactory::createUnpublished(['user_id' => $otherUser->id]);
$unpublishedConcertC = factory(Concert::class)->states('unpublished')->create(['user_id' => $user->id]); $unpublishedConcertC = ConcertFactory::createUnpublished(['user_id' => $user->id]);
$response = $this->actingAs($user)->get('/backstage/concerts'); $response = $this->actingAs($user)->get('/backstage/concerts');
$response->assertStatus(200); $response->assertStatus(200);
$response->data('publishedConcerts')->assertContains($publishedConcertA); $response->data('publishedConcerts')->assertEquals([
$response->data('publishedConcerts')->assertNotContains($publishedConcertB); $publishedConcertA,
$response->data('publishedConcerts')->assertContains($publishedConcertC); $publishedConcertC,
$response->data('publishedConcerts')->assertNotContains($unpublishedConcertA); ]);
$response->data('publishedConcerts')->assertNotContains($unpublishedConcertB);
$response->data('publishedConcerts')->assertNotContains($unpublishedConcertC);
$response->data('unpublishedConcerts')->assertNotContains($publishedConcertA); $response->data('unpublishedConcerts')->assertEquals([
$response->data('unpublishedConcerts')->assertNotContains($publishedConcertB); $unpublishedConcertA,
$response->data('unpublishedConcerts')->assertNotContains($publishedConcertC); $unpublishedConcertC,
$response->data('unpublishedConcerts')->assertContains($unpublishedConcertA); ]);
$response->data('unpublishedConcerts')->assertNotContains($unpublishedConcertB);
$response->data('unpublishedConcerts')->assertContains($unpublishedConcertC);
} }
} }