Nelmio\Alice\Parser\IncludeProcessor\DefaultIncludeProcessorTest::testProcessesIncludeFiles PHP Method

testProcessesIncludeFiles() public method

    public function testProcessesIncludeFiles()
    {
        $mainFile = self::$dir . '/main.yml';
        // needs to be a real file to be cached
        $parsedMainFileContent = ['include' => ['file1.yml', 'another_level/file2.yml'], 'Nelmio\\Alice\\Model\\User' => ['user_main' => []]];
        $parsedFile1Content = ['Nelmio\\Alice\\Model\\User' => ['user_file1' => []]];
        $parsedFile2Content = ['include' => [self::$dir . '/file3.yml'], 'Nelmio\\Alice\\Model\\User' => ['user_file2' => []]];
        $parsedFile3Content = ['Nelmio\\Alice\\Model\\User' => ['user_file3' => []]];
        $expected = ['Nelmio\\Alice\\Model\\User' => ['user_file3' => [], 'user_file2' => [], 'user_file1' => [], 'user_main' => []]];
        $parserProphecy = $this->prophesize(ParserInterface::class);
        $parserProphecy->parse($mainFile)->willReturn($parsedMainFileContent);
        $parserProphecy->parse(Argument::containingString('file1.yml'))->willReturn($parsedFile1Content);
        $parserProphecy->parse(Argument::containingString('file2.yml'))->willReturn($parsedFile2Content);
        $parserProphecy->parse(Argument::containingString('file3.yml'))->willReturn($parsedFile3Content);
        /* @var ParserInterface $parser */
        $parser = $parserProphecy->reveal();
        $processor = new DefaultIncludeProcessor(new DefaultFileLocator());
        $actual = $processor->process($parser, $mainFile, $parsedMainFileContent);
        $this->assertSame($expected, $actual);
    }