-
Notifications
You must be signed in to change notification settings - Fork 1
/
tests-config.php
61 lines (45 loc) · 2.42 KB
/
tests-config.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<?php
declare(strict_types=1);
use Brick\ORM\Configuration;
use Brick\ORM\PropertyMapping\JsonMapping;
use Brick\ORM\Tests\Resources\Mappings;
use Brick\ORM\Tests\Resources\Models;
use Brick\ORM\Tests\Resources\Objects;
return (function() {
$config = new Configuration();
$config->setRepositoryNamespace('Brick\ORM\Tests\Generated\Repository');
$config->setRepositoryDir(__DIR__ . '/tests/Generated/Repository');
$config->setProxyNamespace('Brick\ORM\Tests\Generated\Proxy');
$config->setProxyDir(__DIR__ . '/tests/Generated/Proxy');
$config->setBaseEntityNamespace('Brick\ORM\Tests\Resources\Models');
$config->setClassMetadataFile(__DIR__ . '/tests/Generated/ClassMetadata.php');
$config->addEntity(Models\User::class)
->setIdentityProperties('id')
->setAutoIncrement();
$config->addEntity(Models\Follow::class)
->setIdentityProperties('follower', 'followee');
$config->addEntity(Models\Country::class)
->setIdentityProperties('code');
$config->addEntity(Brick\ORM\Tests\Resources\Models\Event::class)
->setIdentityProperties('id')
->setAutoIncrement()
->setInheritanceMapping('type', [
'CreateCountry' => Models\Event\CountryEvent\CreateCountryEvent::class,
'EditCountryName' => Models\Event\CountryEvent\EditCountryNameEvent::class,
'CreateUser' => Models\Event\UserEvent\CreateUserEvent::class,
'EditUserBillingAddress' => Models\Event\UserEvent\EditUserBillingAddressEvent::class,
'EditUserDeliveryAddress' => Models\Event\UserEvent\EditUserDeliveryAddressEvent::class,
'EditUserName' => Models\Event\UserEvent\EditUserNameEvent::class,
'FollowUser' => Models\Event\FollowUserEvent::class
]);
$config->addEmbeddable(Models\Address::class);
$config->addEmbeddable(Models\GeoAddress::class);
$config->addCustomMapping(Objects\Geometry::class, Mappings\GeometryMapping::class);
// Set transient properties
$config->setTransientProperties(Models\User::class, 'transient');
// Override field names / prefixes
$config->setFieldName(Models\Address::class, 'postcode', 'zipcode');
$config->setFieldNamePrefix(Models\User::class, 'billingAddress', '');
$config->setCustomPropertyMapping(Models\User::class, 'data', new JsonMapping('data', false, true));
return $config;
})();