diff options
author | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2009-11-20 14:54:40 +0000 |
commit | 84adefa331c4159d432d22840663c38f155cd4c1 (patch) | |
tree | bff9a9c66adda4df2106dfd0e5c053ab182a12bd /lib/megaco/test/megaco_digit_map_test.erl | |
download | otp-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.erl | 637 |
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). + |