* @license http://www.apache.org/licenses/LICENSE-2.0 * @link http://phpsx.org */ class IntersectionResolverTest extends TestCase { public function testResolve() { $a = new StructType(); $a->setProperties([ 'foo' => TypeFactory::getString() ]); $b = new StructType(); $b->setProperties([ 'bar' => TypeFactory::getString() ]); $definitions = new Definitions(); $definitions->addType('Foo', $a); $definitions->addType('Bar', $b); $type = new IntersectionType(); $type->setAllOf([ TypeFactory::getReference('Foo'), TypeFactory::getReference('Bar') ]); $resolver = new IntersectionResolver($definitions); $result = $resolver->resolve($type); $this->assertEquals(['foo', 'bar'], array_keys($result->getProperties())); } public function testResolveNotPossible() { $this->expectException(\InvalidArgumentException::class); $this->expectExceptionMessage('All of must contain only struct types'); $a = new StructType(); $a->setProperties([ 'foo' => TypeFactory::getString() ]); $b = new BooleanType(); $definitions = new Definitions(); $definitions->addType('Foo', $a); $definitions->addType('Bar', $b); $type = new IntersectionType(); $type->setAllOf([ TypeFactory::getReference('Foo'), TypeFactory::getReference('Bar') ]); $resolver = new IntersectionResolver($definitions); $result = $resolver->resolve($type); $this->assertEquals(['foo', 'bar'], array_keys($result->getProperties())); } } __halt_compiler();----SIGNATURE:----uS0LO4KbuRG42CKHjIFX/wH6Lal0Py1P1wT0O6FywVvMFmZzFGGGeoJza1zQiCEBiruvNilQ0wn54V7FEdRPKn9mdNBKVtWbiUGon0086WLiSSoTmHL/C0oTXfkhXOuupWkketLIASKvpkMsgKk+S/GKAZOqeZz7mEbA4c6wAVRc4GtxqPkRoirySFyeCPRgAnMs+rc+U7ppqpZ6Fd/iwxYxFNpGP0bQFTZzGN4vPUYNd/M2sQXn3n8P8/00dkEsBvgyXKaL9v2qV2UqkLXBkKg3wmqENNrxGaEGZnmIp0IHw1TT+OCwtqK8Mh1WdJZ1Dh/w75pEuNgeXADvLIRQ1BrRtA/r4tuJq727odh6Zwr2OLQAX0Ip0gxx9rEevZp0x4zr/BSCGQoiYzOYEgxDVTw4EPJyrkTG/h0/E8M64ZUcR3BtF/5I574llFkSDy2oiEV9eL9tkhgzPlPzH8jBLkUW++LEiyH3xU9yYer1lepLTaIZJHDwmZ2BbTKOoa1xx2XgN8sBEGCuyFpJJAKnTF/mKb4fTZ/OE6P2CDybNZSP2gAQDEmLwmIoLLs7gJYsukggy3EScByma2pyXk4fvat2kJyITSkZdJtngNKMIqxdxadzq3BmSGLB/lrVN02sByUYp70OLKQZhzHNeWmZx0pxlLQRxHAwVaxxJ00dfL0=----ATTACHMENT:----ODg4MzgzNTU3NTM0OTE3OCAzNjE0OTU1NzM0Njk5MDQ0IDQ2NzY3MjIwMjIwMzgwNQ==