| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- namespace Tests\Unit\Models;
- use App\Models\File;
- use App\Models\MafOrder;
- use App\Models\Product;
- use Illuminate\Database\Eloquent\Relations\BelongsTo;
- use Illuminate\Database\Eloquent\Relations\BelongsToMany;
- use Illuminate\Database\Eloquent\Relations\HasMany;
- use Illuminate\Foundation\Testing\RefreshDatabase;
- use Tests\TestCase;
- class ProductTest extends TestCase
- {
- use RefreshDatabase;
- protected $seed = true;
- public function test_product_price_stored_as_kopeks_returned_as_rubles(): void
- {
- $product = Product::factory()->create([
- 'product_price' => 150.50,
- ]);
- $product->refresh();
- $this->assertEquals(150.50, $product->product_price);
- }
- public function test_installation_price_accessor(): void
- {
- $product = Product::factory()->create([
- 'installation_price' => 200.00,
- ]);
- $product->refresh();
- $this->assertEquals(200.00, $product->installation_price);
- }
- public function test_total_price_accessor(): void
- {
- $product = Product::factory()->create([
- 'total_price' => 300.00,
- ]);
- $product->refresh();
- $this->assertEquals(300.00, $product->total_price);
- }
- public function test_price_txt_contains_ruble_sign(): void
- {
- $product = Product::factory()->create([
- 'product_price' => 500.00,
- ]);
- $product->refresh();
- $this->assertStringContainsString('₽', $product->product_price_txt);
- }
- public function test_soft_deletes(): void
- {
- $product = Product::factory()->create();
- $product->delete();
- $this->assertTrue($product->trashed());
- }
- public function test_has_relations_false_when_no_relations(): void
- {
- $product = Product::factory()->create();
- $this->assertFalse($product->hasRelations());
- }
- public function test_has_many_maf_orders(): void
- {
- $product = Product::factory()->create();
- MafOrder::factory()->forProduct($product)->create();
- $this->assertGreaterThan(0, $product->maf_orders()->withoutGlobalScopes()->count());
- }
- public function test_relations_exist(): void
- {
- $product = Product::factory()->create();
- $this->assertInstanceOf(BelongsToMany::class, $product->orders());
- $this->assertInstanceOf(BelongsTo::class, $product->certificate());
- $this->assertInstanceOf(HasMany::class, $product->maf_orders());
- }
- }
|