SmartCane/laravel_app/tests/Unit/Imports/HarvestDataImportTest.php
2024-06-25 13:38:57 +02:00

52 lines
2 KiB
PHP

<?php
namespace Tests\Unit\Imports;
use Carbon\Carbon;
use Illuminate\Support\Facades\Storage;
use Maatwebsite\Excel\Facades\Excel;
use PhpOffice\PhpSpreadsheet\Shared\Date as SharedDate;
use Tests\TestCase;
use function PHPUnit\Framework\assertEquals;
class HarvestDataImportTest extends TestCase
{
public function test_it_gets_data_from_excel_file()
{
$value = Storage::disk('local')->path('Chemba/Data/harvest.xlsx');
$data = Excel::toCollection(new \App\Imports\ExcelFileImport(),$value);
$season_start_index = $data->first()->first()->search('season_start');
$min = now();
collect($data->first()->slice(1))->each(function($value) use (&$min,$season_start_index){
$min = min($min,Carbon::instance(SharedDate::excelToDateTimeObject($value[$season_start_index])));
});
}
public function test_it_gets_the_min_value()
{
$value = Storage::disk('local')->path('Chemba/Data/harvest.xlsx');
$data = Excel::toCollection(new \App\Imports\ExcelFileImport(),$value);
$season_start_index = $data->first()->first()->search('season_start');
$min = now();
collect($data->first()->slice(1))->each(function($value) use (&$min,$season_start_index){
$min = min($min,Carbon::instance(SharedDate::excelToDateTimeObject($value[$season_start_index])));
});
assertEquals(Carbon::parse('2023-01-12'),$min);
}
public function test_it_gets_the_min_value_using_reduce()
{
$value = Storage::disk('local')->path('chemba/Data/harvest.xlsx');
$data = Excel::toCollection(new \App\Imports\ExcelFileImport(),$value);
$season_start_index = $data->first()->first()->search('season_start');
$min = collect($data->first()->slice(1))->reduce(function($carry,$value,$key) use ($season_start_index){
return min($carry,Carbon::instance(SharedDate::excelToDateTimeObject($value[$season_start_index])));
},now());
assertEquals(Carbon::parse('2023-01-12'),$min);
}
}