1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace JsonMapper \LaravelPackage \Tests \Unit ;
6+
7+ use Illuminate \Config \Repository ;
8+ use Illuminate \Foundation \Application ;
9+ use JsonMapper \LaravelPackage \JsonMapperInterface ;
10+ use JsonMapper \LaravelPackage \ServiceProvider ;
11+ use JsonMapper \LaravelPackage \Tests \Implementation \SimpleObject ;
12+ use PHPUnit \Framework \TestCase ;
13+
14+ class JsonMapperTest extends TestCase
15+ {
16+ /** @covers \JsonMapper\LaravelPackage\JsonMapper */
17+ public function testCanMapToCollection (): void
18+ {
19+ $ app = new Application ();
20+ $ app ->offsetSet ('config ' , new Repository (['json-mapper.type ' => 'best-fit ' ]));
21+ $ serviceProvider = new ServiceProvider ($ app );
22+
23+ $ serviceProvider ->boot ();
24+ $ serviceProvider ->register ();
25+ /** @var JsonMapperInterface $jsonMapper */
26+ $ jsonMapper = $ app ->make (JsonMapperInterface::class);
27+ $ data = json_decode ('[{"number": 12}, {"number": 13}] ' , false );
28+
29+ $ result = $ jsonMapper ->mapToCollection ($ data , new SimpleObject ());
30+
31+ self ::assertCount (2 , $ result );
32+ self ::assertEquals (collect ([SimpleObject::withNumber (12 ), SimpleObject::withNumber (13 )]), $ result );
33+ }
34+
35+ /** @covers \JsonMapper\LaravelPackage\JsonMapper */
36+ public function testCanMapToCollectionFromstring (): void
37+ {
38+ $ app = new Application ();
39+ $ app ->offsetSet ('config ' , new Repository (['json-mapper.type ' => 'best-fit ' ]));
40+ $ serviceProvider = new ServiceProvider ($ app );
41+
42+ $ serviceProvider ->boot ();
43+ $ serviceProvider ->register ();
44+ /** @var JsonMapperInterface $jsonMapper */
45+ $ jsonMapper = $ app ->make (JsonMapperInterface::class);
46+
47+ $ result = $ jsonMapper ->mapToCollectionFromString ('[{"number": 12}, {"number": 13}] ' , new SimpleObject ());
48+
49+ self ::assertCount (2 , $ result );
50+ self ::assertEquals (collect ([SimpleObject::withNumber (12 ), SimpleObject::withNumber (13 )]), $ result );
51+ }
52+ }
0 commit comments