aboutsummaryrefslogtreecommitdiffstats
path: root/lib/megaco/test/megaco_digit_map_test.erl
diff options
context:
space:
mode:
authorErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
committerErlang/OTP <[email protected]>2009-11-20 14:54:40 +0000
commit84adefa331c4159d432d22840663c38f155cd4c1 (patch)
treebff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/megaco/test/megaco_digit_map_test.erl
downloadotp-84adefa331c4159d432d22840663c38f155cd4c1.tar.gz
otp-84adefa331c4159d432d22840663c38f155cd4c1.tar.bz2
otp-84adefa331c4159d432d22840663c38f155cd4c1.zip
The R13B03 release.OTP_R13B03
Diffstat (limited to 'lib/megaco/test/megaco_digit_map_test.erl')
-rw-r--r--lib/megaco/test/megaco_digit_map_test.erl637
1 files changed, 637 insertions, 0 deletions
diff --git a/lib/megaco/test/megaco_digit_map_test.erl b/lib/megaco/test/megaco_digit_map_test.erl
new file mode 100644
index 0000000000..22e115278f
--- /dev/null
+++ b/lib/megaco/test/megaco_digit_map_test.erl
@@ -0,0 +1,637 @@
+%%
+%% %CopyrightBegin%
+%%
+%% Copyright Ericsson AB 2005-2009. All Rights Reserved.
+%%
+%% The contents of this file are subject to the Erlang Public License,
+%% Version 1.1, (the "License"); you may not use this file except in
+%% compliance with the License. You should have received a copy of the
+%% Erlang Public License along with this software. If not, it can be
+%% retrieved online at http://www.erlang.org/.
+%%
+%% Software distributed under the License is distributed on an "AS IS"
+%% basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
+%% the License for the specific language governing rights and limitations
+%% under the License.
+%%
+%% %CopyrightEnd%
+%%
+
+%%
+%%----------------------------------------------------------------------
+%% Purpose: Verify the application specifics of the Megaco application
+%%----------------------------------------------------------------------
+-module(megaco_digit_map_test).
+
+-compile(export_all).
+
+-include("megaco_test_lib.hrl").
+
+
+t() -> megaco_test_lib:t(?MODULE).
+t(Case) -> megaco_test_lib:t({?MODULE, Case}).
+
+
+%% Test server callbacks
+init_per_testcase(Case, Config) ->
+ megaco_test_lib:init_per_testcase(Case, Config).
+
+fin_per_testcase(Case, Config) ->
+ megaco_test_lib:fin_per_testcase(Case, Config).
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+all(suite) ->
+ Cases =
+ [
+ tickets
+ ],
+ Cases.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+tickets(suite) ->
+ [
+ otp_5750,
+ otp_5799,
+ otp_5826,
+ otp_7449
+ ].
+
+
+otp_5750(suite) ->
+ [
+ otp_5750_01,
+ otp_5750_02
+ ].
+
+otp_5799(suite) ->
+ [
+ otp_5799_01
+ ].
+
+otp_5826(suite) ->
+ [
+ otp_5826_01,
+ otp_5826_02,
+ otp_5826_03
+ ].
+
+otp_7449(suite) ->
+ [
+ otp_7449_1,
+ otp_7449_2
+ ].
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+otp_5750_01(suite) ->
+ [];
+otp_5750_01(doc) ->
+ [];
+otp_5750_01(Config) when is_list(Config) ->
+ DM = "1 | 123",
+
+ %% First case
+ Tests =
+ [
+ {1,
+ fun() ->
+ (catch tde(DM, "1"))
+ end,
+ fun({ok, {full, "1"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+
+ {2,
+ fun() ->
+ (catch tde(DM, "123"))
+ end,
+ fun({ok, {unambiguous, "123"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+
+ {3,
+ fun() ->
+ (catch tde(DM, "124"))
+ end,
+ fun({error, _}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end}
+ ],
+
+ dm_tests(Tests),
+
+ ok.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+otp_5750_02(suite) ->
+ [];
+otp_5750_02(doc) ->
+ [];
+otp_5750_02(Config) when is_list(Config) ->
+ DM = "xxx | xxL3 | xxS4",
+
+ %% First case
+ Tests =
+ [
+ {1,
+ fun() ->
+ (catch otp_5750_02_exec(500, DM, "113"))
+ end,
+ fun({ok, {unambiguous, "113"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+
+ {2,
+ fun() ->
+ (catch otp_5750_02_exec(500, DM, "114"))
+ end,
+ fun({ok, {unambiguous, "114"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+
+ {3,
+ fun() ->
+ (catch otp_5750_02_exec(5000, DM, "11ssss3"))
+ end,
+ fun({ok, {unambiguous, "113"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+
+ {4,
+ fun() ->
+ (catch otp_5750_02_exec(5000, DM, "11ssss4"))
+ end,
+ fun({ok, {unambiguous, "114"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end}
+
+ ],
+
+ dm_tests(Tests),
+
+ ok.
+
+otp_5750_02_exec(To, DM, Evs) ->
+ Pid = self(),
+ Tester =
+ spawn(fun() ->
+ Res = tde(DM, Evs),
+ Pid ! {result, self(), Res}
+ end),
+ receive
+ {result, Tester, Res} ->
+ Res
+ after To ->
+ {error, timeout}
+ end.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+otp_5799_01(suite) ->
+ [];
+otp_5799_01(doc) ->
+ [];
+otp_5799_01(Config) when is_list(Config) ->
+ DM = "234 | 23456",
+
+ %% First case
+ Tests =
+ [
+ {1,
+ fun() ->
+ (catch tde(DM, "2349"))
+ end,
+ fun({ok, {full, "234", $9}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end}
+ ],
+
+ dm_tests(Tests),
+
+ ok.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+otp_5826_01(suite) ->
+ [];
+otp_5826_01(doc) ->
+ [];
+otp_5826_01(Config) when is_list(Config) ->
+ DM = "123Z56",
+
+ %% First case
+ Tests =
+ [
+ {1,
+ fun() ->
+ (catch tde(DM, [$1,$2,$3,{long, $5},$6]))
+ end,
+ fun({ok, {unambiguous, "123Z56"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {2,
+ fun() ->
+ (catch tde(DM, [$1,$2,{long, $3},{long,$5},$6]))
+ end,
+ fun({ok, {unambiguous, "123Z56"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {3,
+ fun() ->
+ (catch tde(DM, [$1,$2,$3,{long,$5},{long,$6}]))
+ end,
+ fun({ok, {unambiguous, "123Z56"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {4,
+ fun() ->
+ (catch tde(DM, [$1,$2,{long, $3},{long,$5},{long,$6}]))
+ end,
+ fun({ok, {unambiguous, "123Z56"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end}
+ ],
+
+ dm_tests(Tests),
+
+ ok.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+otp_5826_02(suite) ->
+ [];
+otp_5826_02(doc) ->
+ [];
+otp_5826_02(Config) when is_list(Config) ->
+ DM = "12356",
+
+ %% First case
+ Tests =
+ [
+ {1,
+ fun() ->
+ (catch tde(DM, [$1,$2,$3,{long, $5},$6]))
+ end,
+ fun({ok, {unambiguous, "12356"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end}
+ ],
+
+ dm_tests(Tests),
+
+ ok.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+otp_5826_03(suite) ->
+ [];
+otp_5826_03(doc) ->
+ [];
+otp_5826_03(Config) when is_list(Config) ->
+ DM = "12346 | 12Z346 | 12Z34Z7 | 1234Z8",
+
+ %% First case
+ Tests =
+ [
+ {1,
+ fun() ->
+ (catch tde(DM, [$1,$2,{long, $3},$4,$6]))
+ end,
+ fun({ok, {unambiguous, "12Z346"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {2,
+ fun() ->
+ (catch tde(DM, [$1, {long, $2}, {long, $3},$4, $6]))
+ end,
+ fun({ok, {unambiguous, "12Z346"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {3,
+ fun() ->
+ (catch tde(DM, [$1,$2,{long, $3},{long, $4},$6]))
+ end,
+ fun({ok, {unambiguous, "12Z346"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {4,
+ fun() ->
+ (catch tde(DM, [$1,$2,{long, $3},$4,{long, $7}]))
+ end,
+ fun({ok, {unambiguous, "12Z34Z7"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {5,
+ fun() ->
+ (catch tde(DM, [$1,$2,{long, $3},$4,{long, $8}]))
+ end,
+ fun({error,
+ {unexpected_event, {long, $8}, _Collected, _Expected}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {6,
+ fun() ->
+ (catch tde(DM, [$1,$2,$3,$4,{long, $8}]))
+ end,
+ fun({ok, {unambiguous, "1234Z8"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end}
+ ],
+
+ dm_tests(Tests),
+
+ ok.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+otp_7449_1(suite) ->
+ [];
+otp_7449_1(doc) ->
+ [];
+otp_7449_1(Config) when is_list(Config) ->
+ DM = "([0-9ef])",
+
+ %% First case
+ Tests =
+ [
+ {1,
+ fun() ->
+ (catch tde(DM, [$0]))
+ end,
+ fun({ok, {unambiguous, "0"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {2,
+ fun() ->
+ (catch tde(DM, [$1]))
+ end,
+ fun({ok, {unambiguous, "1"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {3,
+ fun() ->
+ (catch tde(DM, [$2]))
+ end,
+ fun({ok, {unambiguous, "2"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {4,
+ fun() ->
+ (catch tde(DM, [$3]))
+ end,
+ fun({ok, {unambiguous, "3"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {5,
+ fun() ->
+ (catch tde(DM, [$4]))
+ end,
+ fun({ok, {unambiguous, "4"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {6,
+ fun() ->
+ (catch tde(DM, [$5]))
+ end,
+ fun({ok, {unambiguous, "5"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {7,
+ fun() ->
+ (catch tde(DM, [$6]))
+ end,
+ fun({ok, {unambiguous, "6"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {8,
+ fun() ->
+ (catch tde(DM, [$7]))
+ end,
+ fun({ok, {unambiguous, "7"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {9,
+ fun() ->
+ (catch tde(DM, [$8]))
+ end,
+ fun({ok, {unambiguous, "8"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {10,
+ fun() ->
+ (catch tde(DM, [$9]))
+ end,
+ fun({ok, {unambiguous, "9"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {11,
+ fun() ->
+ (catch tde(DM, [$a]))
+ end,
+ fun({error, {unexpected_event, $a, _Collected, _Expected}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {12,
+ fun() ->
+ (catch tde(DM, [$e]))
+ end,
+ fun({ok, {unambiguous, "e"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {13,
+ fun() ->
+ (catch tde(DM, [$f]))
+ end,
+ fun({ok, {unambiguous, "f"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {14,
+ fun() ->
+ (catch tde(DM, [$a]))
+ end,
+ fun({error, {unexpected_event, $a,
+ [] = _Collected,
+ [{letter, [{range, $0, $9},
+ {single, $e},
+ {single, $f}]}] = _Expected}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end}
+ ],
+
+ dm_tests(Tests),
+
+ ok.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+otp_7449_2(suite) ->
+ [];
+otp_7449_2(doc) ->
+ [];
+otp_7449_2(Config) when is_list(Config) ->
+ DM = "([0-9]ef)",
+
+ %% First case
+ Tests =
+ [
+ {1,
+ fun() ->
+ (catch tde(DM, [$0,$e,$f]))
+ end,
+ fun({ok, {unambiguous, "0ef"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {2,
+ fun() ->
+ (catch tde(DM, [$1,$e,$f]))
+ end,
+ fun({ok, {unambiguous, "1ef"}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {3,
+ fun() ->
+ (catch tde(DM, [$2]))
+ end,
+ fun({error, {unexpected_event,
+ inter_event_timeout, [$2] = _Collected,
+ [{single, $e}] = _Expecting}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {4,
+ fun() ->
+ (catch tde(DM, [$3,$f,$f]))
+ end,
+ fun({error, {unexpected_event, $f, [$3] = _Collected,
+ [{single, $e}] = _Expected}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end},
+ {5,
+ fun() ->
+ (catch tde(DM, [$a,$e,$f]))
+ end,
+ fun({error, {unexpected_event, $a,
+ [] = _Collected,
+ [{letter, [{range, $0, $9}]}] = _Expected}}) ->
+ ok;
+ (Else) ->
+ {error, {unexpected_digit_map_result, Else}}
+ end}
+ ],
+
+ dm_tests(Tests),
+
+ ok.
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+dm_tests([]) ->
+ ok;
+dm_tests([{No, Exec, Ver}|Tests])
+ when is_integer(No) andalso is_function(Exec) andalso is_function(Ver) ->
+ case dm_test(Exec, Ver) of
+ ok ->
+ dm_tests(Tests);
+ {error, Reason} ->
+ ?ERROR({No, Reason});
+ Error ->
+ ?ERROR({No, Error})
+ end.
+
+dm_test(Exec, Verify) ->
+ (catch Verify(Exec())).
+
+
+
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
+
+tde(DM, Evs) -> megaco:test_digit_event(DM, Evs).
+