ProductSKUTest.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. <?php
  2. namespace Tests\Unit\Models;
  3. use App\Models\File;
  4. use App\Models\MafOrder;
  5. use App\Models\Order;
  6. use App\Models\Product;
  7. use App\Models\ProductSKU;
  8. use Illuminate\Database\Eloquent\Relations\BelongsTo;
  9. use Illuminate\Foundation\Testing\RefreshDatabase;
  10. use Tests\TestCase;
  11. class ProductSKUTest extends TestCase
  12. {
  13. use RefreshDatabase;
  14. protected $seed = true;
  15. public function test_belongs_to_product(): void
  16. {
  17. $sku = ProductSKU::factory()->create();
  18. $this->assertInstanceOf(Product::class, $sku->product);
  19. }
  20. public function test_belongs_to_order(): void
  21. {
  22. $order = Order::factory()->create();
  23. $sku = ProductSKU::factory()->forOrder($order)->create();
  24. $this->assertNotNull($sku->order_id);
  25. $this->assertInstanceOf(Order::class, $sku->order);
  26. }
  27. public function test_belongs_to_maf_order(): void
  28. {
  29. $mafOrder = MafOrder::factory()->create();
  30. $sku = ProductSKU::factory()->withMafOrder($mafOrder)->create();
  31. $this->assertNotNull($sku->maf_order_id);
  32. $this->assertInstanceOf(MafOrder::class, $sku->maf_order);
  33. }
  34. public function test_soft_deletes(): void
  35. {
  36. $sku = ProductSKU::factory()->create();
  37. $sku->delete();
  38. $this->assertTrue($sku->trashed());
  39. }
  40. public function test_year_set_on_create(): void
  41. {
  42. $sku = ProductSKU::factory()->create();
  43. $this->assertEquals((int) date('Y'), $sku->year);
  44. }
  45. public function test_relations_exist(): void
  46. {
  47. $sku = ProductSKU::factory()->create();
  48. $this->assertInstanceOf(BelongsTo::class, $sku->product());
  49. $this->assertInstanceOf(BelongsTo::class, $sku->order());
  50. $this->assertInstanceOf(BelongsTo::class, $sku->passport());
  51. $this->assertInstanceOf(BelongsTo::class, $sku->maf_order());
  52. }
  53. }