From bf0cba1f773b2cfddbc9914915e303ee6704ee1e Mon Sep 17 00:00:00 2001 From: Adam Wathan Date: Mon, 13 Mar 2017 12:31:53 -0400 Subject: [PATCH] 77 - Stubbing the Interface --- app/Order.php | 1 + app/OrderConfirmationNumberGenerator.php | 8 ++++++++ tests/features/PurchaseTicketsTest.php | 9 ++++++--- 3 files changed, 15 insertions(+), 3 deletions(-) create mode 100644 app/OrderConfirmationNumberGenerator.php diff --git a/app/Order.php b/app/Order.php index c35f997..d4b598c 100644 --- a/app/Order.php +++ b/app/Order.php @@ -11,6 +11,7 @@ class Order extends Model public static function forTickets($tickets, $email, $amount) { $order = self::create([ + 'confirmation_number' => app(OrderConfirmationNumberGenerator::class)->generate(), 'email' => $email, 'amount' => $amount, ]); diff --git a/app/OrderConfirmationNumberGenerator.php b/app/OrderConfirmationNumberGenerator.php new file mode 100644 index 0000000..444a971 --- /dev/null +++ b/app/OrderConfirmationNumberGenerator.php @@ -0,0 +1,8 @@ +disableExceptionHandling(); - // The API we need in our app to be able to use a different generation strategy in our tests... - // $orderConfirmationNumberGenerator->generate(); // 'ORDERCONFIRMATION1234' + $orderConfirmationNumberGenerator = Mockery::mock(OrderConfirmationNumberGenerator::class, [ + 'generate' => 'ORDERCONFIRMATION1234', + ]); + $this->app->instance(OrderConfirmationNumberGenerator::class, $orderConfirmationNumberGenerator); $concert = factory(Concert::class)->states('published')->create(['ticket_price' => 3250])->addTickets(3); @@ -65,7 +68,7 @@ class PurchaseTicketsTest extends TestCase $this->assertResponseStatus(201); $this->seeJsonSubset([ - // 'confirmation_number' => 'ORDERCONFIRMATION1234', + 'confirmation_number' => 'ORDERCONFIRMATION1234', 'email' => 'john@example.com', 'ticket_quantity' => 3, 'amount' => 9750,