52 lines
2 KiB
PHP
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);
|
|
}
|
|
|
|
|
|
}
|