public function testLoadClasses() { $this->versionA->addContainer($fooA = new Clazz('Foo')); $this->versionB->addContainer($fooB = new Clazz('Foo')); $this->versionB->addContainer($barB = new Clazz('Bar')); $this->versionC->addContainer($barC = new Clazz('Bar')); $this->em->persist($this->package); $this->em->flush(); $loadedClasses = $this->provider->loadClasses(array('Foo', 'Bar', 'baz')); $this->assertCount(2, $loadedClasses); $this->assertArrayHasKey('Foo', $loadedClasses); $this->assertArrayHasKey('Bar', $loadedClasses); $this->assertSame($fooA, $loadedClasses['Foo']); $this->assertSame($barB, $loadedClasses['Bar']); $loadedClasses = $this->provider->loadClasses(array('foo', 'bAr', 'baz')); $this->assertCount(2, $loadedClasses); $this->assertArrayHasKey('foo', $loadedClasses); $this->assertArrayHasKey('bAr', $loadedClasses); $this->assertSame($fooA, $loadedClasses['foo']); $this->assertSame($barB, $loadedClasses['bAr']); $this->provider->setPackageVersions(array($this->versionB)); $loadedClasses = $this->provider->loadClasses(array('foo', 'bar', 'baz')); $this->assertCount(2, $loadedClasses); $this->assertArrayHasKey('foo', $loadedClasses); $this->assertArrayHasKey('bar', $loadedClasses); $this->assertSame($fooB, $loadedClasses['foo']); $this->assertSame($barB, $loadedClasses['bar']); }
/** * @group packageDependencies */ public function testDeletePackageVersionWhenInheritingBetweenPackages() { $this->packageVersion->addContainer($foo = new Clazz('Foo')); $foo->addProperty($fooProperty = new Property('foo')); $fooProperty->setPhpType($this->typeRegistry->getNativeType('string')); $this->em->persist($this->packageVersion); $this->otherPackageVersion->addDependency($this->packageVersion); $this->otherPackageVersion->addContainer($bar = new Clazz('bar')); $bar->addProperty($fooProperty, 'Foo'); $this->em->persist($this->otherPackageVersion); $this->em->flush(); $this->assertVersionsCount(2); $this->repo->deletePackageVersion($this->packageVersion); $this->em->clear(); $this->assertVersionsCount(0); }