<?php namespace Tests\Http\Controllers\CsvController\CsvCostCalc; use App\Http\Controllers\CsvController\CsvCostCalc\CsvMinuteCostCalc; use App\Http\Controllers\CsvController\CsvCostCalc\CsvTotalCostCalc; use PHPUnit\Framework\TestCase; class CsvTotalCostCalcTest extends TestCase { protected function setUp(): void { $this->CsvTotalCostCalc = new CsvTotalCostCalc(); $this->mockCsvMinuteCostCalc = $this->createMock(CsvMinuteCostCalc::class); $this->CsvTotalCostCalc->CsvMinuteCostCalc = $this->mockCsvMinuteCostCalc; } public function testSum_costs() { $array = [ 'Request By'=>'RequestBy/Client', 'Priority'=>'Priority/High', ]; $total_time = 3600; //Valori presi dalla classe di test di CsvMinuteCostCalcTest $this->mockCsvMinuteCostCalc ->expects($this->once()) ->method('select_correct_cost') ->with('RequestBy/Client', 'Priority/High') ->willReturn(1.26); // Mocked return value $expected = [ 'Request By'=>'RequestBy/Client', 'Priority'=>'Priority/High', 'Tempo totale'=>'01:00:00', 'Costo totale'=>75.61, ]; $result = $this->CsvTotalCostCalc->total_time_cost($array, $total_time); $this->assertEquals($expected, $result); } }