public function can_create_callfile()
{
$call = new \PAGI\CallSpool\CallFile(new \PAGI\DialDescriptor\SIPDialDescriptor('target', 'provider'));
$this->assertFalse($call->getArchive());
$call->setArchive(true);
$call->setContext('context');
$call->setPriority('priority');
$call->setExtension('extension');
$call->setApplication('application');
$call->setAlwaysDelete(true);
$call->setCallerId('callerId');
$call->setMaxRetries(33);
$call->setRetryTime(44);
$call->setWaitTime(22);
$call->setVariable('var', 'value');
$call->setAccount('account');
$this->assertFalse($call->getApplicationData());
$call->setApplicationData(array('a', 'b', 'c'));
$this->assertTrue($call->getArchive());
$this->assertEquals($call->getContext(), 'context');
$this->assertEquals($call->getPriority(), 'priority');
$this->assertEquals($call->getApplication(), 'application');
$this->assertEquals($call->getExtension(), 'extension');
$this->assertEquals($call->getMaxRetries(), 33);
$this->assertEquals($call->getRetryTime(), 44);
$this->assertEquals($call->getWaitTime(), 22);
$this->assertTrue($call->getAlwaysDelete());
$this->assertEquals($call->getCallerId(), 'callerId');
$this->assertEquals($call->getAccount(), 'account');
$this->assertEquals($call->getChannel(), 'SIP/target@provider');
$this->assertEquals($call->getVariable('var'), 'value');
$this->assertFalse($call->getVariable('var2'));
$this->assertEquals($call->getApplicationData(), array('a', 'b', 'c'));
$this->assertEquals($call->serialize(), <<<TEXT
Channel: SIP/target@provider
Archive: Yes
Context: context
Priority: priority
Extension: extension
Application: application
AlwaysDelete: Yes
CallerID: callerId
MaxRetries: 33
RetryTime: 44
WaitTime: 22
Account: account
Data: a,b,c
Set: var=value
TEXT
);
$call = new \PAGI\CallSpool\CallFile(new \PAGI\DialDescriptor\SIPDialDescriptor('target', 'provider'));
$call->unserialize(<<<TEXT
Channel: SIP/target@provider
Archive: Yes
Context: context
Priority: priority
Extension: extension
Application: application
AlwaysDelete: Yes
CallerID: callerId
MaxRetries: 33
RetryTime: 44
WaitTime: 22
Account: account
Data: a,b,c
aaaa:
Set: var=value
Set: var2=
TEXT
);
$this->assertEquals($call->serialize(), <<<TEXT
Channel: SIP/target@provider
Archive: Yes
Context: context
Priority: priority
Extension: extension
Application: application
AlwaysDelete: Yes
CallerID: callerId
MaxRetries: 33
RetryTime: 44
WaitTime: 22
Account: account
Data: a,b,c
aaaa: ?
Set: var=value
Set: var2=?
TEXT
);
}