/** * @testdox Filters work * @dataProvider getData */ public function testFilters($filter, $original, $expected, $logs = [], $setup = null) { $this->configurator->tags->add('FOO')->attributes->add('foo')->filterChain->append($filter); if (isset($setup)) { $setup($this->configurator); } $config = $this->configurator->asConfig(); ConfigHelper::filterVariants($config); $logger = new Logger(); $parser = new ReflectionClass('s9e\\TextFormatter\\Parser'); $method = $parser->getMethod('executeFilter'); $method->setAccessible(true); $actual = $method->invoke(null, $config['tags']['FOO']['attributes']['foo']['filterChain'][0], ['attrName' => 'foo', 'attrValue' => $original, 'logger' => $logger, 'registeredVars' => $config['registeredVars']]); $this->assertSame($expected, $actual); if ($logs instanceof Closure) { $logs = $logs(); } $this->assertSame($logs, $logger->get(), "Logs don't match"); }
/** * @testdox clear() empties the logs */ public function testClear() { $logger = new Logger(); $logger->debug('Hello'); $logger->clear(); $logger->debug('Hi'); $this->assertSame([['debug', 'Hi', []]], $logger->get()); }