/** * @param $ip * @param $username * @param $userid * @param $display * @param $exception * @param $corruptRequest * * @throws \Exception * * @dataProvider ipOptions */ public function testRetrieve($ip, $username, $userid, $display, $exception = null, $corruptRequest = false) { if ($exception !== null) { $this->setExpectedException('\\Exception', $exception); } $cnf = []; $cnf['192.168.0.10'] = ['username' => 'bob', 'userid' => 3, 'display' => 'Bobby']; $cnf['192.168.0.11'] = ['userid' => 3, 'display' => 'Bobby']; $cnf['192.168.0.12'] = ['username' => 'bob', 'display' => 'Bobby']; $cnf['tester'] = ['username' => 'pet', 'userid' => 2, 'display' => 'Dog']; $cnf['192.168.0.20'] = ['alias' => 'tester']; $configProvider = new TestConfigProvider(); $authSection = new ConfigSection('ipauth', $cnf); $configProvider->addSection($authSection); $cubex = new Cubex(); $cubex->configure($configProvider); $request = new Request(); $request->server->set('REMOTE_ADDR', $ip); if ($corruptRequest) { $cubex->instance('request', 'invalid'); } else { $cubex->instance('request', $request); } $auth = new IPAuthProvider(); $auth->setCubex($cubex); $user = $auth->login('test', 'test'); if ($username === null) { $this->assertNull($user); } else { $this->assertEquals($username, $user->getUsername()); $this->assertEquals($userid, $user->getUserId()); $this->assertEquals($display, $user->getProperty('display')); } }