require_relative '../phalapi_client' require 'test/unit' # open class class PhalApi::Client attr_accessor :host, :service, :filter, :parser, :timeoutMs, :params end class ClientTest < Test::Unit::TestCase def setup @a_client = PhalApi::Client.create end def test_create assert_instance_of PhalApi::Client, @a_client end def test_with_host @a_client.withHost('http://demo') assert_equal 'http://demo', @a_client.host end def test_with_filter @a_client.withFilter(PhalApi::ClientFilter.new) assert_instance_of PhalApi::ClientFilter, @a_client.filter end def test_with_parser @a_client.withParser(PhalApi::ClientParserJson.new) assert_instance_of PhalApi::ClientParserJson, @a_client.parser end def test_with_service @a_client.withService('Default.Index') assert_equal 'Default.Index', @a_client.service end def test_with_timeoutMs @a_client.withTimeout(5000) assert_equal 5000, @a_client.timeoutMs end def test_with_more_params @a_client.withParams('username', 'dogstar') @a_client.withParams('version', '1.3.0') @a_client.withParams('age', 100) params = @a_client.params assert_equal 'dogstar', params['username'] assert_equal 100, params['age'] end def test_with_unexpected_params assert_raise (RuntimeError) { @a_client.withParams('mess') } end def test_reset @a_client.withHost('http://demo').withService('User.Move').withParams('id', '10'); @a_client.reset assert_equal '', @a_client.service @a_client.withService('Default.Index').withParams('username', 'dogstar') assert_equal 'Default.Index', @a_client.service params = @a_client.params assert_equal 'dogstar', params['username'] assert_equal nil, params['id'] end def test_base_request a_response = @a_client.withHost('http://demo.phalapi.net').request assert_equal 200, a_response.ret assert_not_nil a_response.data end def test_normal_request a_response = @a_client.withHost('http://demo.phalapi.net').withService('Default.Index').withParams('username', 'dogstar').withParams('v', '1.3.0').request assert_equal 200, a_response.ret assert_not_nil a_response.data end def test_wrong_request a_response = @a_client.withHost('http://demo.phalapi.net').withService('XXXX.noThisMethod').request assert_equal 400, a_response.ret end def test_timeout_request a_response = @a_client.withHost('http://xxx.phalapi.net').withService('Default.Index').request assert_equal 408, a_response.ret end end