public function can_get_agi_variables()
{
global $standardAGIStart;
setFgetsMock($standardAGIStart, array());
$client = \PAGI\Client\Impl\ClientImpl::getInstance($this->_properties);
$vars = $client->getChannelVariables();
$this->assertEquals($vars->getChannel(), 'SIP/jondoe-7026f150');
$this->assertEquals($vars->getLanguage(), 'ar');
$this->assertEquals($vars->getType(), 'SIP');
$this->assertEquals($vars->getUniqueId(), '1306865753.2488');
$this->assertEquals($vars->getVersion(), '1.6.0.9');
$this->assertEquals($vars->getCallerId(), '666');
$this->assertEquals($vars->getCallerIdName(), 'JonDoe');
$this->assertEquals($vars->getCallingPres(), '1');
$this->assertEquals($vars->getCallingAni2(), '0');
$this->assertEquals($vars->getCallingTon(), '0');
$this->assertEquals($vars->getCallingTns(), '0');
$this->assertEquals($vars->getDNID(), '66666666');
$this->assertEquals($vars->getRDNIS(), 'unknown');
$this->assertEquals($vars->getDNIS(), '55555555');
$this->assertEquals($vars->getContext(), 'netlabs');
$this->assertEquals($vars->getRequest(), 'anagi.php');
$this->assertEquals($vars->getThreadId(), '1105672528');
$this->assertEquals($vars->getAccountCode(), '123');
$this->assertEquals($vars->getEnhanced(), '0.0');
$this->assertEquals($vars->getPriority(), '1');
$this->assertEquals($vars->getTotalArguments(), 3);
$this->assertEquals($vars->getArgument(1), 'arg1');
$this->assertEquals($vars->getArgument(2), 'arg2');
$this->assertEquals($vars->getArgument(3), 'http://www.someurl.com:1234');
$this->assertEquals(array(1 => 'arg1', 2 => 'arg2', 3 => 'http://www.someurl.com:1234'), $vars->getArguments());
$this->assertFalse($vars->getArgument(4));
$refObject = new \ReflectionObject($vars);
$refMethod = $refObject->getMethod('getAGIVariable');
$refMethod->setAccessible(true);
$this->assertFalse($refMethod->invoke($vars, 'unexistant'));
}