Skip to content

Commit 1973079

Browse files
committed
feature: tests 修复
1 parent 737c55a commit 1973079

12 files changed

Lines changed: 61 additions & 23 deletions

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
},
2525
"require-dev": {
2626
"friendsofphp/php-cs-fixer": "^3.0",
27-
"kriss/spout": "v3.3.0.6",
27+
"kriss/spout": ">=3.3.0.6",
2828
"pestphp/pest": "^1.20",
2929
"phpoffice/phpspreadsheet": "^1.22"
3030
},

src/DataExporter.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,12 @@ public static function __callStatic($name, $arguments)
5353
]);
5454
}
5555

56+
public static function clean(): void
57+
{
58+
static::$container = null;
59+
static::$setContainer = null;
60+
}
61+
5662
/**
5763
* @return ContainerContract
5864
*/

src/DataExporter/Builder.php

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,17 @@ class Builder
2121

2222
public const EVENT_AFTER_OPEN = 'afterOpen';
2323
public const EVENT_BEFORE_CLOSE = 'beforeClose';
24-
public const EVENT_BEFORE_ECHO_ROW_WRITE = 'beforeEchoRowWrite';
25-
public const EVENT_AFTER_ECHO_ROW_WRITE = 'afterEchoRowWrite';
24+
public const EVENT_BEFORE_EACH_ROW_WRITE = 'beforeEchoRowWrite';
25+
public const EVENT_AFTER_EACH_ROW_WRITE = 'afterEachRowWrite';
26+
27+
/**
28+
* @deprecated replace with EVENT_BEFORE_ECHO_ROW_WRITE
29+
*/
30+
public const EVENT_BEFORE_ECHO_ROW_WRITE = self::EVENT_BEFORE_EACH_ROW_WRITE;
31+
/**
32+
* @deprecated replace with EVENT_AFTER_ECHO_ROW_WRITE
33+
*/
34+
public const EVENT_AFTER_ECHO_ROW_WRITE = self::EVENT_AFTER_EACH_ROW_WRITE;
2635

2736
/**
2837
* @var WriterInterface
@@ -97,10 +106,10 @@ public function export(): void
97106
$lastSheet = $key; // 相同 sheet 名不重复设置
98107
}
99108
foreach ($source as $data) {
100-
$this->handleEvent(self::EVENT_BEFORE_ECHO_ROW_WRITE, $data, $index, $this);
109+
$this->handleEvent(self::EVENT_BEFORE_EACH_ROW_WRITE, $data, $index, $this);
101110
$data = $this->prepareData($this->writer, $data);
102111
$this->writer->write($data);
103-
$this->handleEvent(self::EVENT_AFTER_ECHO_ROW_WRITE, $data, $index, $this);
112+
$this->handleEvent(self::EVENT_AFTER_EACH_ROW_WRITE, $data, $index, $this);
104113
$index++;
105114
}
106115
}
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
use Kriss\DataExporter\DataExporter;
77
use Kriss\DataExporter\Exceptions\FileAlreadyExistException;
88

9-
class MyDataExport extends \Kriss\DataExporter\DataExporter
9+
class DontDeleteDataExport extends \Kriss\DataExporter\DataExporter
1010
{
1111
/**
1212
* @inheritDoc
@@ -26,9 +26,10 @@ protected static function customConfig(): array
2626
}
2727

2828
try {
29-
MyDataExport::csv([['a']])->saveAs($filename);
29+
DontDeleteDataExport::csv([['a']])->saveAs($filename);
30+
throw new \InvalidArgumentException();
3031
} catch (FileAlreadyExistException $e) {
31-
expect($e->filename)->toBe($filename);
32+
expect(true)->toBeTrue();
3233
}
3334
});
3435

@@ -48,8 +49,9 @@ protected static function customConfig(): array
4849
DataExporter::setContainer($container);
4950

5051
try {
51-
MyDataExport::csv([['a']])->saveAs($filename);
52+
DataExporter::csv([['a']])->saveAs($filename);
53+
throw new \InvalidArgumentException();
5254
} catch (FileAlreadyExistException $e) {
53-
expect($e->filename)->toBe($filename);
55+
expect(true)->toBeTrue();
5456
}
5557
});

tests/Feature/EventTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
$count = 0;
1414
DataExporter::csv($source)
1515
->withEvents([
16-
DataExporter\Builder::EVENT_AFTER_ECHO_ROW_WRITE => function ($data, $index) use ($source, &$count) {
16+
DataExporter\Builder::EVENT_AFTER_EACH_ROW_WRITE => function ($data, $index) use ($source, &$count) {
1717
expect($data)->toBe($source[$count]);
1818
expect($index)->toBe($count);
1919
$count += 1;
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
];
1313
$builder = DataExporter::csv($source)
1414
->withEvents([
15-
DataExporter\Builder::EVENT_AFTER_ECHO_ROW_WRITE => function ($data, $index) {
15+
DataExporter\Builder::EVENT_AFTER_EACH_ROW_WRITE => function ($data, $index) {
1616
if ($index === 3) {
1717
throw new Exception('Error');
1818
}

tests/Feature/ExtensionSpoutTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
use Kriss\DataExporter\DataExporter;
99
use Kriss\DataExporter\Writer\Extension\NullSpoutExtend;
1010

11-
class DefaultStyleExtend extends NullSpoutExtend
11+
class ExtensionSpoutDefaultStyleExtend extends NullSpoutExtend
1212
{
1313
/**
1414
* @inheritDoc
@@ -24,7 +24,7 @@ public function beforeOpen(WriterInterface $writer)
2424
}
2525
}
2626

27-
class RowCellStyleExtend extends NullSpoutExtend
27+
class ExtensionSpoutRowCellStyleExtend extends NullSpoutExtend
2828
{
2929
/**
3030
* @inheritDoc
@@ -74,7 +74,7 @@ public function buildRowStyle($rowIndex): ?Style
7474

7575
it("Extension Spout: set default style", function () {
7676
DataExporter::xlsxSpout($this->source, [
77-
'extend' => new DefaultStyleExtend(),
77+
'extend' => new ExtensionSpoutDefaultStyleExtend(),
7878
])->saveAs($this->filename);
7979

8080
// check by person
@@ -84,7 +84,7 @@ public function buildRowStyle($rowIndex): ?Style
8484
it("Extension Spout: set cell or row style", function () {
8585
DataExporter::xlsxSpout($this->source, [
8686
'showHeaders' => false,
87-
'extend' => new RowCellStyleExtend(),
87+
'extend' => new ExtensionSpoutRowCellStyleExtend(),
8888
])->saveAs($this->filename);
8989

9090
// check by person

tests/Feature/ExtensionSpreadsheetTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
use PhpOffice\PhpSpreadsheet\Spreadsheet;
66
use PhpOffice\PhpSpreadsheet\Writer\IWriter;
77

8-
class MyExtend extends NullSpreadsheetExtend
8+
class ExtensionSpreadsheetMyExtend extends NullSpreadsheetExtend
99
{
1010
/**
1111
* @inheritDoc
@@ -37,7 +37,7 @@ public function beforeWrite(Spreadsheet $spreadsheet, IWriter $writer): void
3737

3838
it("Extension Spreadsheet: set style", function () {
3939
DataExporter::xlsxSpreadsheet($this->source, [
40-
'extend' => new MyExtend(),
40+
'extend' => new ExtensionSpreadsheetMyExtend(),
4141
])->saveAs($this->filename);
4242

4343
// check by person
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@
88
/**
99
* @method static Handler json($source, array $options = [])
1010
*/
11-
class MyDataExport extends \Kriss\DataExporter\DataExporter
11+
class ExtraWriterDataExport extends \Kriss\DataExporter\DataExporter
1212
{
1313
/**
1414
* @inheritDoc
1515
*/
16-
protected static function writerConfig(): array
16+
public static function writerConfig(): array
1717
{
1818
return array_merge(parent::writerConfig(), [
1919
'json' => [
@@ -25,12 +25,12 @@ protected static function writerConfig(): array
2525
}
2626
}
2727

28-
it('Dont delete file if exist', function () {
28+
it('export json', function () {
2929
$source = [
3030
['aaa', 'bbb'],
3131
['xxx', 'yyy'],
3232
];
33-
$filename = MyDataExport::json($source)->saveAs(__DIR__ . '/../tmp/test');
33+
$filename = ExtraWriterDataExport::json($source)->saveAs(__DIR__ . '/../tmp/ExtraWriter_json');
3434

3535
expect(file_get_contents($filename))->toBe(json_encode($source));
3636
});
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
$name = __DIR__ . '/../tmp/test';
99
$filename = DataExporter::csv([['a']])->saveAs($name);
1010

11-
expect($filename)->toBe($name . '.csv');
11+
expect($filename)->toBe(dirname(__DIR__) . '/tmp/test.csv');
1212
});
1313

1414
it('Handler with browserDownload', function () {

0 commit comments

Comments
 (0)