private function mockExcelInputFile() { $this->inputFile = $this->getMockbuilder('ExcelInputFile')->disableOriginalConstructor()->getMock(); $this->inputFile->expects($this->any())->method('firstRow')->will($this->returnValue(array("Paises", "Origem", 1990, 1991, 1992))); $return = array(array("Brasil", 222, 2432, 453), array("Colombia", 3242, 534, 345, 234)); $this->inputFile->expects($this->any())->method('allTheLinesButTheFirst')->will($this->returnValue($return)); $this->inputFile->expects($this->any())->method('getYears')->will($this->returnValue(array(1990, 1991, 1992))); }
/** * @test */ public function correctFormat() { $file = __DIR__ . "/Teste.xls"; $this->spreadsheetReader = new Spreadsheet_Excel_Reader($file); $this->inputFile = new ExcelInputFile($this->spreadsheetReader); $values = $this->inputFile->getYears(); $this->assertEquals(4, sizeof($values)); $values = $this->inputFile->getValuesFromACountry("Brasil"); $this->assertTrue($this->associativeArrayEquals($this->expectedValuesFromACountry(), $values)); }
/** * @test */ public function doNotInsertWhenValuesAreadyExist() { $countryMap = new CountryMap(); $service = new DatacenterService($this->dao, $countryMap); $service->insertValues($this->inputFile, 1, 1, 1, 1, 1); $dataParam = new DataParam(1, 1, 1, 1, 1, 1); $this->assertEquals(2, $service->getValuesWithSimpleFilter($dataParam)->count()); $this->emptyDatabase(); $file = __DIR__ . "/Teste.xls"; $this->spreadsheetReader = new Spreadsheet_Excel_Reader($file); $this->inputFile->setNewSpreadsheet($this->spreadsheetReader); $service->insertValues($this->inputFile, 1, 1, 1, 1, 1); $dataParam_2 = new DataParam(1, 1, 1, 1, 1, 1); $this->assertEquals(4, $service->getValuesWithSimpleFilter($dataParam_2)->count()); }
public function linesWithValuesAreCorrect() { $allLines = $this->excelInputFile->allTheLinesButTheFirst(); foreach ($allLines as $line) { if (!is_string($line[1])) { return false; } if (!$this->lineNumberPatterns($line)) { return false; } array_shift($line); if (sizeof($line) > sizeof($this->excelInputFile->getYears())) { return false; } } return true; }
private function insertValuesIfACountryDoesNotHaveItStoredYet(ArrayIterator $dataValues, ExcelInputFile $excelInputFile, $country) { $yearsToInsert = new ArrayObject(); $i = 0; foreach ($excelInputFile->getYears() as $year) { if (!$this->thisYearIsAlreadyStored($dataValues, $year)) { $yearsToInsert->append($year); } } return $yearsToInsert; }
public function saveValues(ExcelInputFile $excelInputFile, $subgroup, $font, $origin, $destiny, $coffeType, $variety, $typeCountry = null, $internationalTrade = false) { if (SessionAdmin::isLogged()) { CacheCountry::setCacheBehavior(SessionAdmin::getCacheBehavior()); try { if (!is_null($typeCountry)) { $countries = $excelInputFile->getValuesOfColumn(1); $wrongSelected = $this->countriesSelectedAreCorrect($typeCountry, $countries); if (sizeof($wrongSelected) > 0) { $nameOfWrongCountries = $this->countriesAsString($wrongSelected); $message = "- Os seguintes países presentes na planilha (" . utf8_encode($nameOfWrongCountries) . ") não correspondem ao grupo que você selecionou."; $message .= "\n\n"; $message .= "\t- Confirme se os países existem na lista (origem ou destino) que você selecionou;"; $message .= "\n\n"; $message .= "\t- Verifique se falta acentuação no nome do país da planinha selecionada."; $message .= "\n\n"; $message .= "\t- Também certifique-se de que os nomes dos países estejam em português e sem abreviações"; throw new WrongFormatException($message); } } if ($this->datacenterService->insertValues($excelInputFile, $subgroup, $origin, $destiny, $coffeType, $variety, $font, $typeCountry, $internationalTrade)) { return $this->jsonResponse->response(true, "Dados inseridos com sucesso!")->serialize(); } else { $message = "Dados não inseridos. Verifique a possibilidade de já existirem dados referentes a esta planilha"; return $this->jsonResponse->response(true, $message)->serialize(); } } catch (Exception $e) { return $this->jsonResponse->response(false, $e->getMessage())->serialize(); } } else { throw new LoginException(); } }