Skip to content

Instantly share code, notes, and snippets.

@jsdmultisys
Created July 23, 2019 04:04
Show Gist options
  • Save jsdmultisys/0fb9fd4c130d1497d6f171abb4e1b0da to your computer and use it in GitHub Desktop.
Save jsdmultisys/0fb9fd4c130d1497d6f171abb4e1b0da to your computer and use it in GitHub Desktop.
Mocking
/** @test */
public function it_should_reject_payment_under_maybank_if_payment_is_rejected()
{
$this->withoutEvents();
factory(InstitutionPaymentCategory::class)->create();
factory(Institution::class)->create();
factory(PaymentChannelCategory::class)->create();
factory(Collection::class)->create(['status' => 'P']);
$cardTransData = factory(TransactionCard::class)->create([
'checkout_token' => 'ZX8EQAKLGB8DQOLQIDGD',
'amount' => '1.00',
'card_provider' => 'MAYBANK'
]);
$mockPaymaya = Mockery::mock(Paymaya::class);
$mockPaymaya
->shouldReceive('retrieve')
->andReturn(self::samplePaymayaSuccessResponse());
$mockPaypal = Mockery::mock(Paypal::class);
$mockPaypal
->shouldReceive('retrieve')
->andReturn([]);
$mockMaybank = Mockery::mock(Maybank::class);
$mockMaybank->shouldReceive('setAmount')->andReturn(self::sampleMaybankFailedResponse()['Amount']);
$mockMaybank->shouldReceive('setPaymentId')->andReturn(self::sampleMaybankFailedResponse()['PaymentID']);
$mockMaybank->shouldReceive('query')->andReturn(self::sampleMaybankFailedResponse());
$cardTransactionService = new CardTransactionService(
$mockPaypal,
$mockPaymaya,
$mockMaybank,
new CollectionRepository(new Collection),
new TransactionCardRejectedRepository(new TransactionCardRejected)
);
$response = $cardTransactionService->process($cardTransData, ['channel' => 'MAYBANK']);
$this->assertDatabaseHas('collections', ['status' => 'P']);
$this->assertDatabaseHas('transactions_card', ['status' => 'FAILED']);
$this->assertDatabaseHas('transactions_card_rejected', ['transaction_card_id' => $cardTransData->id]);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment