MafOrderTest.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace Tests\Unit\Models;
  3. use App\Models\MafOrder;
  4. use App\Models\Product;
  5. use App\Models\ProductSKU;
  6. use App\Models\User;
  7. use Illuminate\Foundation\Testing\RefreshDatabase;
  8. use Tests\TestCase;
  9. class MafOrderTest extends TestCase
  10. {
  11. use RefreshDatabase;
  12. protected $seed = true;
  13. public function test_belongs_to_user(): void
  14. {
  15. $mafOrder = MafOrder::factory()->create();
  16. $this->assertInstanceOf(User::class, $mafOrder->user);
  17. }
  18. public function test_belongs_to_product(): void
  19. {
  20. $mafOrder = MafOrder::factory()->create();
  21. $this->assertInstanceOf(Product::class, $mafOrder->product);
  22. }
  23. public function test_has_many_products_sku(): void
  24. {
  25. $mafOrder = MafOrder::factory()->create();
  26. ProductSKU::factory()
  27. ->withMafOrder($mafOrder)
  28. ->count(3)
  29. ->create();
  30. $this->assertEquals(3, $mafOrder->products_sku()->withoutGlobalScopes()->count());
  31. }
  32. public function test_soft_deletes(): void
  33. {
  34. $mafOrder = MafOrder::factory()->create();
  35. $mafOrder->delete();
  36. $this->assertTrue($mafOrder->trashed());
  37. }
  38. public function test_year_set_on_create(): void
  39. {
  40. $mafOrder = MafOrder::factory()->create();
  41. $this->assertEquals((int) date('Y'), $mafOrder->year);
  42. }
  43. public function test_fully_in_stock_state(): void
  44. {
  45. $mafOrder = MafOrder::factory()->fullyInStock()->create();
  46. $this->assertEquals($mafOrder->quantity, $mafOrder->in_stock);
  47. }
  48. }