faker = Factory::create(); } /** * It test the cases notes creation * * @test */ public function it_test_case_notes_creation() { $application = Application::factory()->create(); $user = User::factory()->create(); $reason = "The case was canceled due to:"; $appNotes = new ModelAppNotes(); $noteContent = addslashes($reason); $appNotes->postNewNote( $application->APP_UID, $user->USR_UID, $noteContent, false ); // Query to get the cases notes $query = AppNotes::query(); $query->select()->where('APP_UID', $application->APP_UID)->where('USR_UID', $user->USR_UID); $result = $query->get()->values()->toArray(); $this->assertNotEmpty($result); } /** * It test the cases notes creation and send a email to specific user * * @test */ public function it_test_case_notes_creation_and_send_email_to_user() { $application = Application::factory()->create(); $user = User::factory()->create(); $reason = "The case was canceled due to:"; $appNotes = new ModelAppNotes(); $noteContent = addslashes($reason); $appNotes->postNewNote( $application->APP_UID, $user->USR_UID, $noteContent, true, 'PUBLIC', $user->USR_UID ); // Query to get the cases notes $query = AppNotes::query(); $query->select()->where('APP_UID', $application->APP_UID)->where('USR_UID', $user->USR_UID); $result = $query->get()->values()->toArray(); $this->assertNotEmpty($result); // Query to get the emails $query = AppMessage::query(); $query->select()->where('APP_UID', $application->APP_UID)->where('APP_MSG_TYPE', 'CASE_NOTE'); $result = $query->get()->values()->toArray(); $this->assertNotEmpty($result); } /** * It test the cases notes creation and send a email to user with participaion in the case * * @test */ public function it_test_case_notes_creation_and_send_email() { $application = Application::factory()->create(); $user = User::factory()->create(); Delegation::factory()->create([ 'APP_UID' => $application->APP_UID, 'USR_UID' => $user->USR_UID ]); $reason = "The case was canceled due to:"; $appNotes = new ModelAppNotes(); $noteContent = addslashes($reason); $appNotes->postNewNote( $application->APP_UID, $user->USR_UID, $noteContent, true, 'PUBLIC' ); // Query to get the cases notes $query = AppNotes::query(); $query->select()->where('APP_UID', $application->APP_UID)->where('USR_UID', $user->USR_UID); $result = $query->get()->values()->toArray(); $this->assertNotEmpty($result); // Query to get the emails $query = AppMessage::query(); $query->select()->where('APP_UID', $application->APP_UID)->where('APP_MSG_TYPE', 'CASE_NOTE'); $result = $query->get()->values()->toArray(); $this->assertNotEmpty($result); } /** * This test verifies the sending of the notification note with Exception. * @test * @covers \AppNotes::sendNoteNotification */ public function it_should_test_send_note_notification_with_exception() { //assert $this->expectException(Exception::class); $appNotes = new ModelAppNotes(); $appNotes->sendNoteNotification(null, null, null, null, null, null); } /** * This test verifies the sending of the notification note. * @test * @covers \AppNotes::sendNoteNotification */ public function it_should_test_send_note_notification_without_user() { $user = User::where('USR_UID', '=', '00000000000000000000000000000001') ->first(); $application = Application::factory()->create(); $delegation = Delegation::factory()->create([ 'APP_UID' => $application->APP_UID, 'USR_UID' => $user->USR_UID ]); $params = [ $application->APP_UID, '', '', $user->USR_UID, $this->faker->email, $delegation->DEL_INDEX ]; $appNotes = new ModelAppNotes(); $appNotes->sendNoteNotification(...$params); //assert $appMessage = AppMessage::where('APP_UID', '=', $application->APP_UID)->first()->toArray(); $this->assertArrayHasKey('APP_UID', $appMessage); $this->assertEquals($appMessage['APP_UID'], $application->APP_UID); } /** * This test verifies the sending of the notification note with attach files. * @test * @covers \AppNotes::sendNoteNotification */ public function it_should_test_send_note_notification_with_attach_files() { $user = User::where('USR_UID', '=', '00000000000000000000000000000001') ->first(); $application = Application::factory()->create(); $delegation = Delegation::factory()->create([ 'APP_UID' => $application->APP_UID, 'USR_UID' => $user->USR_UID ]); $appNote = AppNotes::factory()->create(); $appDocument = Documents::factory()->create([ 'APP_UID' => $application->APP_UID, 'DOC_ID' => $appNote->NOTE_ID ]); EmailServerModel::factory()->create([ 'MESS_DEFAULT' => 1 ]); $params = [ $application->APP_UID, $user->USR_UID, '', $user->USR_UID, $this->faker->email, $delegation->DEL_INDEX ]; $appNotes = new ModelAppNotes(); $appNotes->sendNoteNotification(...$params); //assert $appMessage = AppMessage::where('APP_UID', '=', $application->APP_UID)->first()->toArray(); $this->assertArrayHasKey('APP_UID', $appMessage); $this->assertEquals($appMessage['APP_UID'], $application->APP_UID); } /** * This test verify if exists attachment files. * @test * @covers \AppNotes::getAttachedFilesFromTheCaseNote */ public function it_should_test_get_attached_files_from_the_casenote() { $appNote = AppNotes::factory()->create(); $appDocument = Documents::factory()->create([ 'DOC_ID' => $appNote->NOTE_ID ]); $appUid = $appDocument->APP_UID; $appNotes = new ModelAppNotes(); $result = $appNotes->getAttachedFilesFromTheCaseNote($appNote->NOTE_ID); $this->assertNotEmpty($result); } }