File: /home/imensosw/.trash/tests.1/Unit/Translator/UserSubjectExpertiseTest.php
<?php
// Skill -> Expertise UserSubjectExpertiseTest
namespace Tests\Unit\Translator;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Foundation\Testing\WithFaker;
use Tests\TestCase;
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Support\Str;
use App\Models\UserSubjectExpertise;
use App\Models\Expertise;
use App\Models\Subject;
class UserSubjectExpertiseTest extends TestCase
{
protected $users, $clientData, $subject, $expertise;
protected function setUp(): void
{
parent::setUp();
$this->expertise = Expertise::inRandomOrder()->first();
// $this->subject = Subject::inRandomOrder()->first();
// $this->translator_status = TranslatorStatus::where('id',2)->first();
}
public function test_to_create_user_subject_expertise()
{
$user = factory(\App\User::class)->create(['role'=>2]);
$profile = factory(\App\Models\Profile::class)->create(['user_id'=>$user->id]);
$subject = factory(\App\Models\Subject::class)->create();
$this->withoutMiddleware();
$this->withoutExceptionHandling();
$this->actingAs($user)->json('GET','/getUserSubjectExpertise');
$data = [
"user_id" => $user->id,
"subject_id" => $subject->id,
"expertise_id" => $this->expertise->id,
];
$response = $this->json('POST', 'api/insertUserSubjectExpertise', $data,
[
'Accept' => 'application/json',
'HTTP_Authorization' => 'Bearer' . $user->remember_token
])
->assertStatus(200);
$response->assertOk();
\App\Models\UserSubjectExpertise::where('user_id',$user->id)->delete();
\App\Models\Subject::where('id',$subject->id)->delete();
\App\Models\Profile::where('user_id',$user->id)->delete();
\App\User::where('id',$user->id)->delete();
}
public function test_to_update_user_subject_expertise()
{
$getUser = factory(\App\User::class)->create(['role'=>2]);
$profile = factory(\App\Models\Profile::class)->create(['user_id'=>$getUser->id]);
$subject = factory(\App\Models\Subject::class)->create();
$UserSubjectExpertise = factory(\App\Models\UserSubjectExpertise::class)->create([
"user_id" => $getUser->id,
"subject_id" => $subject->id,
"expertise_id" => $this->expertise->id,
]);
$this->withoutMiddleware();
$this->withoutExceptionHandling();
$this->actingAs($getUser)->json('GET','/getUserSubjectExpertise');
$data = [
"user_id" => $getUser->id,
// "subject_id" => $this->subject->id,
"expertise_id" => $this->expertise->id,
];
$response = $this->json('POST', 'api/updateUserSubjectExpertise', $data,
[
'Accept' => 'application/json',
'HTTP_Authorization' => 'Bearer' . $getUser->remember_token
])
->assertStatus(200);
$response->assertOk();
UserSubjectExpertise::where('user_id', $getUser->id)->delete();
\App\Models\Subject::where('id',$subject->id)->delete();
\App\Models\Profile::where('user_id',$getUser->id)->delete();
\App\User::where('id', $getUser->id)->delete();
}
public function tearDown(): void
{
$maxId = \DB::table('user_subject_expertises')->max('id');
\DB::statement('ALTER TABLE user_subject_expertises AUTO_INCREMENT=' . intval($maxId + 1) . ';');
$maxId = \DB::table('subjects')->max('id');
\DB::statement('ALTER TABLE subjects AUTO_INCREMENT=' . intval($maxId + 1) . ';');
$maxId = \DB::table('profiles')->max('id');
\DB::statement('ALTER TABLE profiles AUTO_INCREMENT=' . intval($maxId + 1) . ';');
$maxId = \DB::table('users')->max('id');
\DB::statement('ALTER TABLE users AUTO_INCREMENT=' . intval($maxId + 1) . ';');
parent::tearDown();
}
}