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');
}