function XmlrpcExampleTestCase::testXmlrpcExampleBasic

Perform several calls to the XML-RPC interface to test the services.

File

xmlrpc_example/xmlrpc_example.test, line 41

Class

XmlrpcExampleTestCase
Functional tests for the XMLRPC Example module.

Code

public function testXmlrpcExampleBasic() {
  // Unit test functionality.
  $result = xmlrpc($this->xmlRpcUrl, array(
    'xmlrpc_example.add' => array(
      3,
      4,
    ),
  ));
  $this->assertEqual($result, 7, 'Successfully added 3+4 = 7');
  $result = xmlrpc($this->xmlRpcUrl, array(
    'xmlrpc_example.subtract' => array(
      4,
      3,
    ),
  ));
  $this->assertEqual($result, 1, 'Successfully subtracted 4-3 = 1');
  // Make a multicall request.
  $options = array(
    'xmlrpc_example.add' => array(
      5,
      2,
    ),
    'xmlrpc_example.subtract' => array(
      5,
      2,
    ),
  );
  $expected = array(
    7,
    3,
  );
  $result = xmlrpc($this->xmlRpcUrl, $options);
  $this->assertEqual($result, $expected, 'Successfully called multicall request');
  // Verify default limits.
  $result = xmlrpc($this->xmlRpcUrl, array(
    'xmlrpc_example.subtract' => array(
      3,
      4,
    ),
  ));
  $this->assertEqual(xmlrpc_errno(), 10002, 'Results below minimum return custom error: 10002');
  $result = xmlrpc($this->xmlRpcUrl, array(
    'xmlrpc_example.add' => array(
      7,
      4,
    ),
  ));
  $this->assertEqual(xmlrpc_errno(), 10001, 'Results beyond maximum return custom error: 10001');
}