[export] adding spreadsheet formatter

This commit is contained in:
2017-02-19 21:40:55 +01:00
parent 5c0ca70ebf
commit d5c26c6d47
11 changed files with 726 additions and 52 deletions

View File

@@ -579,6 +579,8 @@ class ExportManagerTest extends KernelTestCase
case 0:
case 1:
return $value;
case '_header':
return 'export';
default: throw new \RuntimeException(sprintf("The value %s is not valid", $value));
}
});
@@ -612,8 +614,9 @@ class ExportManagerTest extends KernelTestCase
)
->willReturn(function($value) {
switch ($value) {
case 'cat a' : return 'label cat a';
case 'cat b' : return 'label cat b';
case '_header': return 'foo_header';
case 'cat a' : return 'label cat a';
case 'cat b' : return 'label cat b';
default:
throw new \RuntimeException(sprintf("This value (%s) is not valid", $value));
}
@@ -622,12 +625,12 @@ class ExportManagerTest extends KernelTestCase
//$aggregator->addRole()->shouldBeCalled();
$exportManager->addAggregator($aggregator->reveal(), 'aggregator_foo');
//add csv formatter
$formatter = new \Chill\MainBundle\Export\Formatter\CSVFormatter(
//add formatter interface
$formatter = new \Chill\MainBundle\Export\Formatter\SpreadSheetFormatter(
$this->container->get('translator'), $exportManager);
$exportManager->addFormatter($formatter, 'csv');
$exportManager->addFormatter($formatter, 'spreadsheet');
ob_start();
//ob_start();
$response = $exportManager->generate('dummy',
array(PickCenterType::CENTERS_IDENTIFIERS => array($center)),
array(
@@ -644,31 +647,32 @@ class ExportManagerTest extends KernelTestCase
)
),
ExportType::PICK_FORMATTER_KEY => array(
'alias' => 'csv'
'alias' => 'spreadsheet'
),
ExportType::EXPORT_KEY => array(
'a' => 'b'
)
),
array(
'format' => 'csv',
'aggregator_foo' => array(
'order' => 1, 'position' => 'r'
'order' => 1
)
)
);
$content = ob_get_clean();
//$content = ob_get_clean();
$this->assertInstanceOf(Response::class, $response);
$expected = <<<EOT
"dummy title"
"filtered string"
,
"label cat a",0
"label cat b",1
"dummy title",""
"",""
"filtered string",""
"foo_header","_header"
"label cat a",""
"label cat b","1"
EOT;
$this->assertEquals($expected, $content);
$this->assertEquals($expected, $response->getContent());
}
}