(rename unit folder back as Unit)

This commit is contained in:
Adam Wathan
2017-05-02 15:42:41 -04:00
parent 1d8dfb6cf2
commit 0bcdd67a81
10 changed files with 0 additions and 0 deletions

View File

@@ -0,0 +1,86 @@
<?php
namespace Tests\Unit;
use Mockery;
use App\Ticket;
use App\Concert;
use Tests\TestCase;
use App\Reservation;
use App\Billing\FakePaymentGateway;
use Illuminate\Foundation\Testing\DatabaseMigrations;
class ReservationTest extends TestCase
{
use DatabaseMigrations;
/** @test */
function calculating_the_total_cost()
{
$tickets = collect([
(object) ['price' => 1200],
(object) ['price' => 1200],
(object) ['price' => 1200],
]);
$reservation = new Reservation($tickets, 'john@example.com');
$this->assertEquals(3600, $reservation->totalCost());
}
/** @test */
function retrieving_the_reservations_tickets()
{
$tickets = collect([
(object) ['price' => 1200],
(object) ['price' => 1200],
(object) ['price' => 1200],
]);
$reservation = new Reservation($tickets, 'john@example.com');
$this->assertEquals($tickets, $reservation->tickets());
}
/** @test */
function retrieving_the_customers_email()
{
$reservation = new Reservation(collect(), 'john@example.com');
$this->assertEquals('john@example.com', $reservation->email());
}
/** @test */
function reserved_tickets_are_released_when_a_reservation_is_cancelled()
{
$tickets = collect([
Mockery::spy(Ticket::class),
Mockery::spy(Ticket::class),
Mockery::spy(Ticket::class),
]);
$reservation = new Reservation($tickets, 'john@example.com');
$reservation->cancel();
foreach ($tickets as $ticket) {
$ticket->shouldHaveReceived('release');
}
}
/** @test */
function completing_a_reservation()
{
$concert = factory(Concert::class)->create(['ticket_price' => 1200]);
$tickets = factory(Ticket::class, 3)->create(['concert_id' => $concert->id]);
$reservation = new Reservation($tickets, 'john@example.com');
$paymentGateway = new FakePaymentGateway;
$order = $reservation->complete($paymentGateway, $paymentGateway->getValidTestToken());
$this->assertEquals('john@example.com', $order->email);
$this->assertEquals(3, $order->ticketQuantity());
$this->assertEquals(3600, $order->amount);
$this->assertEquals(3600, $paymentGateway->totalCharges());
}
}