getMock('\ZipArchive'); $template = $this->getMock('\ZipArchive'); $bookUtil = $this->createBookUtil(2, ['Sheet1' => 'xl/worksheets/sheet1.xml', 'Sheet2' => 'xl/worksheets/sheet2.xml']); $bookUtil ->expects($this->once()) ->method('makePrintAreaMap') ->with($this->isInstanceOf('\ZipArchive')) ->will($this->returnValue(['Sheet1' => 'Sheet1!$A$18:$A$18', 'Sheet2' => 'Sheet2!$A$18:$A$18'])) ; $sheetUtil = new Sheet(); $output ->expects($this->exactly(2)) ->method('getFromName') ->with($this->logicalOr('xl/worksheets/sheet1.xml', 'xl/worksheets/sheet2.xml')) ->will($this->returnCallback([$this, 'getOutputXml'])) ; $template ->expects($this->exactly(2)) ->method('getFromName') ->with($this->logicalOr('xl/worksheets/sheet1.xml', 'xl/worksheets/sheet2.xml')) ->will($this->returnCallback([$this, 'getTemplateXml'])) ; $output ->expects($this->exactly(2)) ->method('addFromString') ->with($this->logicalOr('xl/worksheets/sheet1.xml', 'xl/worksheets/sheet2.xml'), $this->callback([$this, 'assertXmlHasExpectedContent'])) ; $fixer = new CellStyleFixer($bookUtil, $sheetUtil); $fixer->execute($output, $template); } public function assertXmlHasExpectedContent($xml) { // 行スタイルが修復されている $this->assertContains('', $xml); $this->assertNotContains('', $xml); // セルスタイルが修復されている $this->assertContains('assertNotContains('assertContains('assertNotContains('assertContains('', $xml); $this->assertNotContains('assertNotContains('