public assemble ( Phpro\SoapClient\CodeGenerator\Context\ContextInterface $context ) | ||
$context | Phpro\SoapClient\CodeGenerator\Context\ContextInterface |
public function assemble(ContextInterface $context)
{
$file = $context->getFile();
$typeMap = $context->getTypeMap();
try {
$file->setUse(ClassMapCollection::class);
$file->setUse(ClassMap::class);
$linefeed = $file::LINE_FEED;
$classMap = $this->assembleClassMap($typeMap, $linefeed, $file->getIndentation());
$code = $this->assembleClassMapCollection($classMap, $linefeed) . $linefeed;
$file->setBody($code);
} catch (\Exception $e) {
throw AssemblerException::fromException($e);
}
}
/** * @test */ function it_assembles_a_classmap() { $assembler = new ClassMapAssembler(); $context = $this->createContext(); $assembler->assemble($context); $code = $context->getFile()->generate(); $expected = <<<CODE <?php use Phpro\\SoapClient\\Soap\\ClassMap\\ClassMapCollection; use Phpro\\SoapClient\\Soap\\ClassMap\\ClassMap; new ClassMapCollection([ new ClassMap('MyType', \\MyNamespace\\MyType::class), ]); CODE; $this->assertEquals($expected, $code); }