87 lines
3.5 KiB
PHP
87 lines
3.5 KiB
PHP
<?php
|
|
|
|
namespace Tests\Feature\Receipt;
|
|
|
|
use App\Facades\Sms\Sms;
|
|
use App\Models\Accident;
|
|
use App\Models\LogList;
|
|
use App\Models\User;
|
|
use App\Services\PaymentService;
|
|
use Illuminate\Foundation\Testing\RefreshDatabase;
|
|
use Illuminate\Foundation\Testing\WithFaker;
|
|
use Mockery\MockInterface;
|
|
use Tests\TestCase;
|
|
|
|
class InvoiceBillTest extends TestCase
|
|
{
|
|
use RefreshDatabase;
|
|
/**
|
|
* A basic feature test example.
|
|
*/
|
|
public function test_invoice_bill_calls_the_service_and_return_data(): void
|
|
{
|
|
$user = User::factory()->create();
|
|
|
|
LogList::factory()->create(['log_unique_code' => 1129]);
|
|
|
|
$accident = Accident::factory()->create([
|
|
'sum' => $this->faker->numberBetween(21, 100),
|
|
'deposit_insurance_amount' => $this->faker->numberBetween(1, 10),
|
|
'deposit_daghi_amount' => $this->faker->numberBetween(1, 10),
|
|
]);
|
|
|
|
$final_amount = $accident->sum - ($accident->deposit_insurance_amount + $accident->deposit_daghi_amount);
|
|
|
|
$this->mock(PaymentService::class, function (MockInterface $mock) {
|
|
$mock->shouldReceive('invoiceBillApi')->andReturn(0);
|
|
});
|
|
|
|
Sms::shouldReceive('sendSms');
|
|
|
|
$response = $this->actingAs($user)->postJson("/v2/receipt/invoice-bill/{$accident->id}");
|
|
|
|
$response->assertStatus(200)
|
|
->assertExactJson([
|
|
"accident_date" => $accident->accident_date,
|
|
"accident_time" => $accident->accident_time,
|
|
"accident_type" => $accident->accident_type,
|
|
"accident_type_fa" => $accident->accident_type_fa,
|
|
"axis_name" => $accident->axis_name,
|
|
"bill_code" => 0,
|
|
"city_fa" => $accident->city_fa,
|
|
"city_id" => $accident->city_id,
|
|
"created_at" => $accident->created_at,
|
|
"damage_picture1" => $accident->damage_picture1,
|
|
"damage_picture2" => $accident->damage_picture2,
|
|
"deposit_daghi_amount" => $accident->deposit_daghi_amount,
|
|
"deposit_daghi_image" => $accident->deposit_daghi_image,
|
|
"deposit_date" => $accident->deposit_date,
|
|
"deposit_insurance_amount" => $accident->deposit_insurance_amount,
|
|
"deposit_insurance_image" => $accident->deposit_insurance_image,
|
|
"driver_name" => $accident->driver_name,
|
|
"driver_national_code" => $accident->driver_national_code,
|
|
"driver_phone_number" => $accident->driver_phone_number,
|
|
"final_amount" => $final_amount,
|
|
"id" => $accident->id,
|
|
"lat" => $accident->lat,
|
|
"lng" => $accident->lng,
|
|
"ojrate_nasb" => $accident->ojrate_nasb,
|
|
"plaque" => $accident->plaque,
|
|
"police_file" => $accident->police_file,
|
|
"police_file_date" => $accident->police_file_date,
|
|
"police_serial" => $accident->police_serial,
|
|
"province_fa" => $accident->province_fa,
|
|
"province_id" => $accident->province_id,
|
|
"report_base" => $accident->report_base,
|
|
"status" => 0,
|
|
"status_fa" => $accident->status_fa,
|
|
"status_history" => '0',
|
|
"sum" => $accident->sum,
|
|
"support_description" => $accident->support_description,
|
|
"updated_at" => $accident->updated_at,
|
|
"user_id" => $accident->user_id,
|
|
"way_id" => $accident->way_id
|
|
]);
|
|
}
|
|
}
|