/** * @test */ public function reduceTargetClassNamesFiltersAllClassesNotBeeingConfiguredAsScopeSession() { $availableClassNames = ['TestPackage\\Subpackage\\Class1', 'TestPackage\\Class2', 'TestPackage\\Subpackage\\SubSubPackage\\Class3', 'TestPackage\\Subpackage2\\Class4']; sort($availableClassNames); $availableClassNamesIndex = new ClassNameIndex(); $availableClassNamesIndex->setClassNames($availableClassNames); $mockCompileTimeObjectManager = $this->getMockBuilder(CompileTimeObjectManager::class)->disableOriginalConstructor()->getMock(); $mockCompileTimeObjectManager->expects($this->any())->method('getClassNamesByScope')->with(Configuration::SCOPE_SESSION)->will($this->returnValue(['TestPackage\\Subpackage\\Class1', 'TestPackage\\Subpackage\\SubSubPackage\\Class3', 'SomeMoreClass'])); $sessionObjectMethodsPointcutFilter = new SessionObjectMethodsPointcutFilter(); $sessionObjectMethodsPointcutFilter->injectObjectManager($mockCompileTimeObjectManager); $expectedClassNames = ['TestPackage\\Subpackage\\Class1', 'TestPackage\\Subpackage\\SubSubPackage\\Class3']; sort($expectedClassNames); $expectedClassNamesIndex = new ClassNameIndex(); $expectedClassNamesIndex->setClassNames($expectedClassNames); $result = $sessionObjectMethodsPointcutFilter->reduceTargetClassNames($availableClassNamesIndex); $this->assertEquals($expectedClassNamesIndex, $result, 'The wrong class names have been filtered'); }