Skip to content

Commit 1bf121b

Browse files
committed
fix and add tests for extractors
1 parent 76e3b15 commit 1bf121b

File tree

3 files changed

+96
-0
lines changed

3 files changed

+96
-0
lines changed

tests/InvoiceExtractorTest.php

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
declare(strict_types=1);
4+
5+
namespace Tests\Kiboko\Magento\V2\Extractor;
6+
7+
use Kiboko\Component\Flow\Magento2\Filter\ScalarFilter;
8+
use Kiboko\Component\Flow\Magento2\FilterGroup;
9+
use Kiboko\Component\Flow\Magento2\InvoiceExtractor;
10+
use Kiboko\Component\Flow\Magento2\QueryParameters;
11+
use Kiboko\Component\PHPUnitExtension\Assert\ExtractorAssertTrait;
12+
use Kiboko\Component\PHPUnitExtension\PipelineRunner;
13+
use Kiboko\Contract\Pipeline\PipelineRunnerInterface;
14+
use Kiboko\Magento\V2_3\Client;
15+
use Kiboko\Magento\V2_3\Model\SalesDataInvoiceInterface;
16+
use Kiboko\Magento\V2_3\Model\SalesDataInvoiceSearchResultInterface;
17+
use PHPUnit\Framework\TestCase;
18+
use Psr\Log\NullLogger;
19+
20+
final class InvoiceExtractorTest extends TestCase
21+
{
22+
use ExtractorAssertTrait;
23+
24+
public function testIsSuccessful(): void
25+
{
26+
$invoice = (new SalesDataInvoiceInterface())
27+
->setBaseCurrencyCode('EUR')
28+
->setTotalQty(1)
29+
->setBaseGrandTotal(59.90);
30+
31+
$client = $this->createMock(Client::class);
32+
$client
33+
->expects($this->once())
34+
->method('salesInvoiceRepositoryV1GetListGet')
35+
->willReturn(
36+
(new SalesDataInvoiceSearchResultInterface())
37+
->setItems([
38+
$invoice,
39+
])
40+
->setTotalCount(1)
41+
);
42+
43+
$extractor = new InvoiceExtractor(
44+
new NullLogger(),
45+
$client,
46+
(new QueryParameters())
47+
->withGroup(
48+
(new FilterGroup())
49+
->withFilter(new ScalarFilter('updated_at', 'eq', '2022-09-05')),
50+
)
51+
->withGroup(
52+
(new FilterGroup())
53+
->withFilter(new ScalarFilter('active', 'eq', true)),
54+
)
55+
);
56+
57+
$this->assertExtractorExtractsExactly(
58+
[
59+
$invoice,
60+
],
61+
$extractor
62+
);
63+
}
64+
65+
public function pipelineRunner(): PipelineRunnerInterface
66+
{
67+
return new PipelineRunner();
68+
}
69+
}

tests/OrderExtractorTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44

55
namespace Tests\Kiboko\Magento\V2\Extractor;
66

7+
use Kiboko\Component\Flow\Magento2\Filter\ScalarFilter;
8+
use Kiboko\Component\Flow\Magento2\FilterGroup;
79
use Kiboko\Component\Flow\Magento2\OrderExtractor;
10+
use Kiboko\Component\Flow\Magento2\QueryParameters;
811
use Kiboko\Component\PHPUnitExtension\Assert\ExtractorAssertTrait;
912
use Kiboko\Component\PHPUnitExtension\PipelineRunner;
1013
use Kiboko\Contract\Pipeline\PipelineRunnerInterface;
@@ -39,6 +42,15 @@ public function testIsSuccessful(): void
3942
$extractor = new OrderExtractor(
4043
new NullLogger(),
4144
$client,
45+
(new QueryParameters())
46+
->withGroup(
47+
(new FilterGroup())
48+
->withFilter(new ScalarFilter('updated_at', 'eq', '2022-09-05')),
49+
)
50+
->withGroup(
51+
(new FilterGroup())
52+
->withFilter(new ScalarFilter('status', 'eq', 'complete')),
53+
)
4254
);
4355

4456
$this->assertExtractorExtractsExactly(

tests/ProductExtractorTest.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@
44

55
namespace Tests\Kiboko\Magento\V2\Extractor;
66

7+
use Kiboko\Component\Flow\Magento2\Filter\ScalarFilter;
8+
use Kiboko\Component\Flow\Magento2\FilterGroup;
79
use Kiboko\Component\Flow\Magento2\ProductExtractor;
10+
use Kiboko\Component\Flow\Magento2\QueryParameters;
811
use Kiboko\Component\PHPUnitExtension\Assert\ExtractorAssertTrait;
912
use Kiboko\Component\PHPUnitExtension\PipelineRunner;
1013
use Kiboko\Contract\Pipeline\PipelineRunnerInterface;
@@ -40,6 +43,18 @@ public function testIsSuccessful(): void
4043
$extractor = new ProductExtractor(
4144
new NullLogger(),
4245
$client,
46+
(new QueryParameters())
47+
->withGroup(
48+
(new FilterGroup())
49+
->withFilter(new ScalarFilter('updated_at', 'eq', '2022-09-05')),
50+
)
51+
->withGroup(
52+
(new FilterGroup())
53+
->withFilter(new ScalarFilter('status', 'eq', 'complete'))
54+
->withFilter(new ScalarFilter('status', 'eq', 'canceled'))
55+
->withFilter(new ScalarFilter('status', 'eq', 'canceled'))
56+
->withFilter(new ScalarFilter('status', 'eq', 'in_preparation'))
57+
)
4358
);
4459

4560
$this->assertExtractorExtractsExactly(

0 commit comments

Comments
 (0)