/** * @dataProvider getTaxCodesAndExpectedResults * @param array $taxCodes */ public function testTaxCodeParser(array $taxCodes) { $taxCodeParser = new TaxCodeParser(); foreach ($taxCodes as $taxCodeString => $expectedResults) { $taxCode = new TaxCodeEntity(); $taxCode->setDescriptionEnglish($taxCodeString); $results = $taxCodeParser->parseTaxCode($taxCode); $this->assertCount(count($expectedResults), $results); if (count($expectedResults)) { foreach ($expectedResults as $key => $expectedResult) { /** @var TaxEntity $result */ $result = $results[$key]; $this->assertEquals($expectedResult[0], $result->getName()); $this->assertEquals($expectedResult[1], $result->getRate()); if (isset($expectedResult[2])) { $this->assertEquals($expectedResult[2], $result->isCompound()); } else { $this->assertFalse($result->isCompound()); } } } } }