SmartCane/laravel_app/tests/Unit/Models/ProjectReportTest.php

106 lines
3.1 KiB
PHP

<?php
namespace Tests\Unit\Models;
use App\Jobs\ProjectDownloadTiffJob;
use App\Models\Project;
use App\Models\ProjectReport;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Illuminate\Support\Carbon;
use Illuminate\Support\Collection;
use Mockery;
use Tests\TestCase;
class ProjectReportTest extends TestCase
{
use RefreshDatabase;
protected function setUp(): void
{
parent::setUp(); // TODO: Change the autogenerated stub
}
// /**
// * @test
// * @dataProvider weeksAgoProvider
// */
// public function it_can_calculatore_weeksAgo($endDate, $offset, $expected)
// {
// Carbon::setTestNow(Carbon::now()->setISODate('2021', '41'));
// $projectReport = ProjectReport::make([
// 'end_date' => $endDate,
// 'offset' => $offset,
// ]);
// $this->assertEquals($expected, $projectReport->weeksAgo());
// }
//
// public static function weeksAgoProvider()
// {
// return [
// '1 week ago' => [2021, 40, 1],
// '2 weeks ago' => [2021, 39, 2],
// '3 weeks ago' => [2021, 38, 3],
// ];
// }
/**
* @test
*/
public function it_can_get_the_full_path_name()
{
$project = Project::create([
'name' => 'project_name',
'download_path' => 'project_download_path',
]);
$projectReport = $project->reports()->create([
'name' => 'name',
'end_date' => new Carbon('2021-01-01'),
'offset' => 10,
'path' => 'path/doc.pdf',
]);
$projectReport->setStatusSuccess();
$this->assertEquals(storage_path('app/project_download_path/path/doc.pdf'), $projectReport->getFullPathName());
}
/**
* @test
* @dataProvider reportDateProvider
*/
public function it_can_return_the_reportDate($expected, $mail_day, $endDate, $offset)
{
$project = Project::create([
'name' => 'project_name',
'download_path' => 'project_download_path',
'mail_day' => $mail_day,
]);
$projectReport = $project->reports()->create([
'name' => 'name',
'end_date' => $endDate,
'offset' => $offset,
'path' => 'path/doc.pdf',
]);
$projectReport->setStatusSuccess();
$this->assertEquals($expected, $projectReport->getReportDate());
}
public static function reportDateProvider()
{
return [
'monday' => ['2023-12-10', 'monday',new Carbon('2023-12-10'),10 ],
'tuesday' => ['2023-12-11', 'tuesday',new Carbon('2023-12-11'),10 ],
'wednesday' => ['2023-12-12', 'wednesday',new Carbon('2023-12-12'),10 ],
'thursday' => ['2023-12-13', 'thursday',new Carbon('2023-12-13'),10 ],
'friday' => ['2023-12-14', 'friday',new Carbon('2023-12-14'),10 ],
'saturday' => ['2023-12-15', 'saturday',new Carbon('2023-12-15'),10 ],
'sunday' => ['2023-12-16', 'sunday',new Carbon('2023-12-16'),10 ],
];
}
}