ReportWriteManagerTest::testSimpleReport()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 9
rs 9.9666
c 0
b 0
f 0
cc 1
nc 1
nop 0
1
<?php
2
namespace Mathielen\ReportWriteEngine;
3
4
use Mathielen\ReportWriteEngine\Output\Excel\Persistence\ExcelFileRepository;
5
use Mathielen\ReportWriteEngine\Engine\Renderer\HorizontalRenderer;
6
use Mathielen\ReportWriteEngine\Engine\Renderer\RendererInterface;
7
use Mathielen\ReportWriteEngine\Engine\Renderer\VerticalRenderer;
8
use Mathielen\ReportWriteEngine\Engine\RendererRepository;
9
use Mathielen\ReportWriteEngine\Engine\ReportConfig;
10
use Mathielen\ReportWriteEngine\Output\Excel\Writer\ExcelReportWriter;
11
use Monolog\Handler\StreamHandler;
12
use Monolog\Logger;
13
14
class ReportWriteManagerTest extends \PHPUnit_Framework_TestCase
15
{
16
17
    /**
18
     * @var ReportWriteManager
19
     */
20
    private $sut;
21
22
    private $templateRepo;
23
24
    protected function setUp()
25
    {
26
        $logger = null;
27
        //$logger = new Logger('rendertest');
28
        //$logger->pushHandler(new StreamHandler('php://stdout', Logger::DEBUG));
29
30
        $rendererRepository = new RendererRepository();
31
        $rendererRepository->add(
32
            RendererInterface::ORIENTATION_VERTICAL,
33
            new VerticalRenderer()
34
        );
35
        $rendererRepository->add(
36
            RendererInterface::ORIENTATION_HORIZONTAL,
37
            new HorizontalRenderer()
38
        );
39
40
        $targetRepo = new ExcelFileRepository('tests/metadata/output');
41
        $this->templateRepo = new ExcelFileRepository('tests/metadata/template');
42
        $excelWriter = new ExcelReportWriter($targetRepo, $this->templateRepo, $rendererRepository, $logger);
43
44
        $this->sut = new ReportWriteManager([
45
            'excel' => $excelWriter
46
        ]);
47
    }
48
49
    public function testSimpleReport()
50
    {
51
        $reportData = json_decode(file_get_contents('tests/metadata/data/testSimpleReport.json'), true);
52
53
        $reportConfig = new ReportConfig('simple.xlsx', 'simple-output.xlsx');
54
55
        $actual = $this->sut->write('excel', $reportData, $reportConfig);
56
        $this->assertEquals('tests/metadata/output/simple-output.xlsx', $actual);
57
    }
58
59
}
60