Skip to content

Commit

Permalink
Reformat TransactionEventModelTest
Browse files Browse the repository at this point in the history
  • Loading branch information
r-kujawa committed Jun 9, 2024
1 parent 8edcc1d commit 9c99728
Show file tree
Hide file tree
Showing 4 changed files with 80 additions and 40 deletions.
13 changes: 13 additions & 0 deletions tests/Unit/Config/TransactionEventModelTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace Payavel\Checkout\Tests\Unit\Config;

use Payavel\Checkout\Tests\Unit\TestTransactionEventModel;
use Payavel\Orchestration\Tests\Traits\CreatesConfigServiceables;
use Payavel\Orchestration\Tests\Traits\SetsConfigDriver;

class TransactionEventModelTest extends TestTransactionEventModel
{
use CreatesConfigServiceables;
use SetsConfigDriver;
}
13 changes: 13 additions & 0 deletions tests/Unit/Database/TransactionEventModelTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

namespace Payavel\Checkout\Tests\Unit\Database;

use Payavel\Checkout\Tests\Unit\TestTransactionEventModel;
use Payavel\Orchestration\Tests\Traits\CreatesDatabaseServiceables;
use Payavel\Orchestration\Tests\Traits\SetsDatabaseDriver;

class TransactionEventModelTest extends TestTransactionEventModel
{
use CreatesDatabaseServiceables;
use SetsDatabaseDriver;
}
54 changes: 54 additions & 0 deletions tests/Unit/TestTransactionEventModel.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
<?php

namespace Payavel\Checkout\Tests\Unit;

use Payavel\Checkout\CheckoutStatus;
use Payavel\Checkout\Models\Dispute;
use Payavel\Checkout\Models\Payment;
use Payavel\Checkout\Models\Refund;
use Payavel\Checkout\Models\TransactionEvent;
use Payavel\Checkout\Tests\Models\TestDispute;
use Payavel\Checkout\Tests\Models\TestPayment;
use Payavel\Checkout\Tests\TestCase;
use Payavel\Orchestration\Support\ServiceConfig;
use Payavel\Orchestration\Tests\Contracts\CreatesServiceables;
use PHPUnit\Framework\Attributes\Test;

abstract class TestTransactionEventModel extends TestCase implements CreatesServiceables
{
#[Test]
public function retrieve_transaction_event_payment()
{
$usingServiceables = [
'provider_id' => $this->createProvider($this->checkoutService)->getId(),
'account_id' => $this->createAccount($this->checkoutService)->getId(),
];

$transactionEventWithPayment = TransactionEvent::factory()->for(Payment::factory()->create($usingServiceables))->create(['status_code' => CheckoutStatus::AUTHORIZED]);
$this->assertInstanceOf(Payment::class, $transactionEventWithPayment->payment);

ServiceConfig::set('checkout', 'models.' . Payment::class, TestPayment::class);
$transactionEventWithOverriddenPayment = TransactionEvent::factory()->for(Payment::factory()->create($usingServiceables))->create(['status_code' => CheckoutStatus::AUTHORIZED]);
$this->assertInstanceOf(TestPayment::class, $transactionEventWithOverriddenPayment->payment);
}

#[Test]
public function retrieve_transaction_event_transactionable()
{
$usingServiceables = [
'provider_id' => $this->createProvider($this->checkoutService)->getId(),
'account_id' => $this->createAccount($this->checkoutService)->getId(),
];

$transactionEvent = TransactionEvent::factory()->for(Payment::factory()->create($usingServiceables))->create(['status_code' => CheckoutStatus::AUTHORIZED]);
$this->assertNull($transactionEvent->transactionable);

$transactionEventWithTransactionable = TransactionEvent::factory()->for($paymentForTransactionEventWithTransactionable = Payment::factory()->create($usingServiceables))->for(Refund::factory()->for($paymentForTransactionEventWithTransactionable)->create(), 'transactionable')->create(['status_code' => CheckoutStatus::AUTHORIZED]);
$this->assertInstanceOf(Refund::class, $transactionEventWithTransactionable->transactionable);

ServiceConfig::set('checkout', 'models.' . Dispute::class, TestDispute::class);
$transactionEventWithOverriddenTransactionable = TransactionEvent::factory()->for($paymentForTransactionEventWithOverriddenTransactionable = Payment::factory()->create($usingServiceables))->create(['status_code' => CheckoutStatus::AUTHORIZED]);
$transactionEventWithOverriddenTransactionable->transactionable()->associate(transform(Dispute::factory()->for($paymentForTransactionEventWithOverriddenTransactionable)->create(), fn ($dispute) => TestDispute::find($dispute->id)));
$this->assertInstanceOf(TestDispute::class, $transactionEventWithOverriddenTransactionable->transactionable);
}
}
40 changes: 0 additions & 40 deletions tests/Unit/TransactionEventModelTest.php

This file was deleted.

0 comments on commit 9c99728

Please sign in to comment.