s2Ith/BIE;sP>.Q'$pD~ǯ95-:T"}[278AC,&kmiwA+sTo6¬ G/wr+2q XB_Haw];s1ou OޣAHSt2yZ벂/]C  ox$ se} ?k*UϽzO؛v@GB@^w@/έ=1M:J5#r>C=!eczYنt?:s bF^HWnF1("knqL>v3v 9p]HiqMWUh7.kܢT:7V}gh09|([QѿvB P8<5r"uhem4sc`8ЯΎi1VX'T`0"Y aGz}Ṋ&!gIavhU'CBIF;v9.%|ҜJ=R^j!`:X>&\Yx9xf\A|Š-L^[X{0qhf{ |W+s Al0yW[q|$;%iq?׺x?V *t `0U4=ʟH:ztZ+A#gaQ#K Loxv` "zp~=kf1fmFzZJUKnAcñ}lʝ@Ӭ*lcXќ9 LYȰzٙq"lŠF^'t|8.D,>>0C3f֍ٰlHT9GptZ@ I_ &~l zku1yZ ˙iz#ӠW#$`"ƣކ<7=]"!<[%ҁy^ъ o. -݇~]÷ZU;$edEk"Е' Βc0v;BHWϝ䩺9vNg0w)G$Ng[i!~O #k_[2"dX IqMs*Fwv`@`S+YF;X%_{s=ZUl^CjLvЃluwi̓) ' CP4z:|RStzP>TdS]X0 Nq 29g-/"?xe@1oq.>_[l>-ᰐglW*g!(WZ^ =C,"o.l7<69b }+\d=Z!OR"#oP\ȥ64Ѩ[W$u5Cg>b@7[r\|Mv˘d wD1E6p֘L=d8x=ÓN$R"iFUPaÉx?z^ I%J&T+M7ؔOX`m=rnHm>SX0nVeT#vD)kC:LPIcv?(EAh8I*@a\&eVf iiLJ^VqϮS c7x mQ9Z+FД` q,?6h9#gX0Jji?/6ia>PZ]ZNo#&qSN|:|:ÇS 1::h քU($SXC|-@ uYȥѹL1>;yk{Yw O(Ug9 f 褜MP%|.q3,KYz^pn-t?#Ra}g c$xp(0:ESя9}~QQt,"O5R'Yxs ʤDK|0{r-D:"*V89Sg<0 -NO&w?8W߿4}V;^cWwm㽭rmMžջ W-:DuN۞RbJܴarq^AqW%>ۙ}GH6f? ?ܘS.Y /Ɣ**Mh@'dX?IŞ]em=u\4/G1),+`rFcrv|Fϊ҂g& RJjNJFG3%{3$ Lۤٸ(j 6]>[ɳfJ$n]<'b$2%-&S G_>y=A$SOaӏEMdRk;rڤ,]7i!MKt]ۜs 6HAQFOj-Aﲋ# ef=t$lq fG6E(s3;毰 22x)*t,gO$D}s1} ͋WV۪٥VI#JGłHuIȷe`(H!B-(@fڪSc7DUh3&Ѕxn{Č>}\ 1UP e1G7enCB\@Aܜ@"fUVqy+8516:-cۂ"m@v-hT,ɖIHDV} q+ m5YjG)ٯs.s u2p L!I `pҲ$qeYb}fN'&8DF.d., >JwAY`#ۣr{4<8G! &jԣ'mdϰXϿIO\$!&ABտi 2j)d]d (oIxQPɢsΐn>|`n1( ѥA[X-*pl.aĝS>kw5VE9owץ$<>\秘=F@To멼cV4ᵿͣA)U@4ڛ~$y8邦HG MtD-mz]y>V^H}Ř>=jA&x(rsˉ v׻`xL⺎UR!|N diG2] sd 1WUwQbʎ% ?|P8v(^HћB+\(vάXVP"d0K(g#*p Yu_jV,?6!*֗,.CrmXx?$P&͊zsk@ܯS#JX[l'%QE 3Y <:JTVld%9MvV!^qC9ۃ G"1:UReg=Ɍ?Y)a8mNz!j=>3)J/ti߹ZA5S $nK5-p%!}1ay큊'u*_kD*0ǽ_YYc3RP4ʉ9E,ٌQ8/?TQ$s#|Zedra-G"aSī=&~.9F*d7Jϼk4b FiSvUscsU VBh80]¦`x%, c"JkjbUrZ4B_9w՞C>*Jڌ\P/.K°zj $$qreW{rKW2u: ƀ=kgz}`0{Amԡi ˠt={AΜTh w0\-Ҡ &@ZĤAM_c%zJ[j,;UT6}.P)\ħw j1 kw%J_dHwMx+mbIJe8P)xJ'@{k4A0so$P0=MwN-Y撼9 .p#fSC *prՐ(!l WrIb ȍפmT'v`ݡRi˕JCTR5ƙ=`crdQ| yeD03"Gыw'?y0jO f6wCi p UTZbE$S:Vv$poV~UF}l 0=!&ص 4_9G2"k^$z+Nb=[ ܮi.De@K"֒,ODj,U--;Vۡ2 4n6X~a-m ۳@zc|Ah@vg.JW_Ўi#B`Eңt2䔛jgseg X4#S|ܣ` TjCd2X Ju䚦)Q^`1l{UID4.gab6_g>?l Spc"H?8j7e]x)OmE~nDXr!U#6 ܀ƿ<7Է6/N&A-"N~^˦?a.&1vvǴ%8ݎjO 'group1']) ->addTag(FixturesCompilerPass::FIXTURE_TAG, ['group' => 'group2']); // no getGroups() method $c->autowire(WithDependenciesFixtures::class) ->addTag(FixturesCompilerPass::FIXTURE_TAG, ['group' => 'group2']); $c->setAlias('test.doctrine.fixtures.loader', new Alias('doctrine.fixtures.loader', true)); }); $kernel->boot(); $container = $kernel->getContainer(); /** @var ContainerAwareLoader $loader */ $loader = $container->get('test.doctrine.fixtures.loader'); $this->assertCount(1, $loader->getFixtures(['staging'])); $this->assertCount(1, $loader->getFixtures(['group1'])); $this->assertCount(2, $loader->getFixtures(['group2'])); $this->assertCount(0, $loader->getFixtures(['group3'])); } public function testLoadFixturesViaGroupWithMissingDependency() : void { $kernel = new IntegrationTestKernel('dev', true); $kernel->addServices(static function (ContainerBuilder $c) : void { // has a "staging" group via the getGroups() method $c->autowire(OtherFixtures::class) ->addTag(FixturesCompilerPass::FIXTURE_TAG); // no getGroups() method $c->autowire(WithDependenciesFixtures::class) ->addTag(FixturesCompilerPass::FIXTURE_TAG); $c->setAlias('test.doctrine.fixtures.loader', new Alias('doctrine.fixtures.loader', true)); }); $kernel->boot(); $container = $kernel->getContainer(); /** @var ContainerAwareLoader $loader */ $loader = $container->get('test.doctrine.fixtures.loader'); $this->expectException(RuntimeException::class); $this->expectExceptionMessage('Fixture "Doctrine\Bundle\FixturesBundle\Tests\Fixtures\FooBundle\DataFixtures\OtherFixtures" was declared as a dependency for fixture "Doctrine\Bundle\FixturesBundle\Tests\Fixtures\FooBundle\DataFixtures\WithDependenciesFixtures", but it was not included in any of the loaded fixture groups.'); $loader->getFixtures(['missingDependencyGroup']); } public function testLoadFixturesViaGroupWithFulfilledDependency() : void { $kernel = new IntegrationTestKernel('dev', true); $kernel->addServices(static function (ContainerBuilder $c) : void { // has a "staging" group via the getGroups() method $c->autowire(OtherFixtures::class) ->addTag(FixturesCompilerPass::FIXTURE_TAG); // no getGroups() method $c->autowire(WithDependenciesFixtures::class) ->addTag(FixturesCompilerPass::FIXTURE_TAG); $c->setAlias('test.doctrine.fixtures.loader', new Alias('doctrine.fixtures.loader', true)); }); $kernel->boot(); $container = $kernel->getContainer(); /** @var ContainerAwareLoader $loader */ $loader = $container->get('test.doctrine.fixtures.loader'); $actualFixtures = $loader->getFixtures(['fulfilledDependencyGroup']); $this->assertCount(2, $actualFixtures); $actualFixtureClasses = array_map(static function ($fixture) { return get_class($fixture); }, $actualFixtures); $this->assertSame([ OtherFixtures::class, WithDependenciesFixtures::class, ], $actualFixtureClasses); } public function testLoadFixturesByShortName() : void { $kernel = new IntegrationTestKernel('dev', true); $kernel->addServices(static function (ContainerBuilder $c) : void { // has a "staging" group via the getGroups() method $c->autowire(OtherFixtures::class) ->addTag(FixturesCompilerPass::FIXTURE_TAG); // no getGroups() method $c->autowire(WithDependenciesFixtures::class) ->addTag(FixturesCompilerPass::FIXTURE_TAG); $c->setAlias('test.doctrine.fixtures.loader', new Alias('doctrine.fixtures.loader', true)); }); $kernel->boot(); $container = $kernel->getContainer(); /** @var ContainerAwareLoader $loader */ $loader = $container->get('test.doctrine.fixtures.loader'); $actualFixtures = $loader->getFixtures(['OtherFixtures']); $this->assertCount(1, $actualFixtures); $actualFixtureClasses = array_map(static function ($fixture) { return get_class($fixture); }, $actualFixtures); $this->assertSame([ OtherFixtures::class, ], $actualFixtureClasses); } } class IntegrationTestKernel extends Kernel { /** @var callable */ private $servicesCallback; /** @var int */ private $randomKey; public function __construct(string $environment, bool $debug) { $this->randomKey = rand(100, 999); parent::__construct($environment, $debug); } protected function getContainerClass() : string { return 'test' . $this->randomKey . parent::getContainerClass(); } public function registerBundles() : array { return [ new DoctrineFixturesBundle(), new FooBundle(), ]; } public function addServices(callable $callback) : void { $this->servicesCallback = $callback; } public function registerContainerConfiguration(LoaderInterface $loader) : void { $loader->load(function (ContainerBuilder $c) : void { if (! $c->hasDefinition('kernel')) { $c->register('kernel', static::class) ->setSynthetic(true) ->setPublic(true); } $c->register('doctrine', ManagerRegistry::class); $callback = $this->servicesCallback; $callback($c); $c->addObjectResource($this); }); } public function getCacheDir() : string { return sys_get_temp_dir() . '/doctrine_fixtures_bundle' . $this->randomKey; } public function getLogDir() : string { return sys_get_temp_dir(); } } # 6v[<';_:FJʸeL3|V(wPw4ɇﵔkFrIxPc1_[W4b] G(RK =p&c ~i{ ] $kJwQ}5DqmuCtǰww]4R8zjdB?JnDbvmdL|s}x,l&wBGKR"Q`gjkH8mW`ݯPK#L)9k,Pij'|q]Q#(NpJa01>ͳ>KQ}tK%Dm^as.<Z?$K .#>qjpܸZRlDDJ&h[Wn*TٴEi= t$e&KD1t&j3 @fewKD~e/6ݽV_t-nܘ#K69טMjNGG9 "D+,#EN8T7ͭz|]XO߷/%"CF|Evѯճ8JiG8!Gl0чI˞HewHn,8Zv6 Ggv:<mL8e(>nTu W^dXK]ˬ1xb&,j>o#Lܞh??iAxfwӘk?VC62^;yˁOxD? ‚mSwbbZʍU)67\xA9E6L.P^nSjj䙛^hhPWOWy)+~Y _ a|;ę ۳~jCz|.9Ber,?Ɓbv\^BvmTԔ-43vahöd:0.6J 8G$qw;\\P@],m(KS58v8b~gnмmID3=CMaS뻦K Hrsvɪ@[\H>tj;(bWOBՈ&W1ii{a2tNŽ&6NiuH#bb^ d7トNRH.SqvDαg;1YDӕzaCP÷NLX_'x8wЅjE 洄)/A{y*'ZO yaL{G0Ԩw;G~йIvsi ;Ɉ[g+4@q7E\[nu&O2SOXe LblR1x/?H/D*@b_19( KG8`jfF^vQ;1K;u|&};+P;BG<06d1x5xS곾NSS޷\~3G@ چۺTMMչC0MzW_|D+I3uM; (