blob: 0f2d616b84a028e7549476855fedf0a61dca411d [file] [log] [blame]
David Robakowskiae971ce2013-08-02 12:16:00 +02001-module(multiplexing_test).
2
3-include_lib("eunit/include/eunit.hrl").
4
5-export([
6 handle_function/2
7 ,handle_error/2
8]).
9
10start_multiplexed_server_test() ->
11
12 Port = 9090,
13 Services = [
14 {"Multiplexing_Calculator", multiplexing__calculator_thrift},
15 {"Multiplexing_WeatherReport", multiplexing__weather_report_thrift}
16 ],
17
18 {ok, Pid} = thrift_socket_server:start([
19 {ip, "127.0.0.1"},
20 {port, Port},
21 {name, ?MODULE},
22 {service, Services},
23 {handler, [
24 {"error_handler", ?MODULE},
25 {"Multiplexing_Calculator", ?MODULE},
26 {"Multiplexing_WeatherReport", ?MODULE}
27 ]}
28 ]),
29
30 {ok, [{"Multiplexing_Calculator", CalculatorClient0},
31 {"Multiplexing_WeatherReport", WeatherReportClient0}]} = thrift_client_util:new_multiplexed("127.0.0.1", Port, Services, []),
32
33 ?assertMatch({_, {error, {bad_args, _, _}}}, thrift_client:call(WeatherReportClient0, getTemperature, [1])),
34 ?assertMatch({_, {error, {bad_args, _, _}}}, thrift_client:call(CalculatorClient0, add, [1])),
35 ?assertMatch({_, {error, {bad_args, _, _}}}, thrift_client:call(CalculatorClient0, add, [1,1,1])),
36
37 ?assertMatch({_, {error, {no_function, _}}}, thrift_client:call(CalculatorClient0, getTemperature, [])),
38 ?assertMatch({_, {error, {no_function, _}}}, thrift_client:call(WeatherReportClient0, add, [41, 1])),
39
40 ?assertMatch({_, {ok, 42}}, thrift_client:call(CalculatorClient0, add, [41, 1])),
41 ?assertMatch({_, {ok, 42.0}}, thrift_client:call(WeatherReportClient0, getTemperature, [])),
42
43 thrift_socket_server:stop(Pid).
44
45%% HANDLE FUNCTIONS
46
47%% Calculator handles
48handle_function(add, {X, Y}) ->
49 {reply, X + Y};
50
51%% WeatherReport handles
52handle_function(getTemperature, {}) ->
53 {reply, 42.0}.
54
55handle_error(_F, _Reason) ->
56%% ?debugHere, ?debugVal({_F, _Reason}),
57 ok.