public function testIfWillExportProperly() { $comp = new CompoundComponent(); $comp->scalar = 'one'; $foo = new FooSubComponent(); $foo->blah = 'new'; $bar = new BarSubComponent(); $bar->name = 'Tequila'; $comp->foo = $foo; $comp->bar = $bar; $di = new EmbeDi(); $exported = $di->export($comp); $this->assertSame(CompoundComponent::class, $exported[$di->classField]); $this->assertSame($comp->scalar, $exported['scalar']); $this->assertSame(FooSubComponent::class, $exported['foo'][$di->classField]); $this->assertSame($foo->blah, $exported['foo']['blah']); $this->assertSame(BarSubComponent::class, $exported['bar'][$di->classField]); $this->assertSame($bar->name, $exported['bar']['name']); }