1%% 2%% %CopyrightBegin% 3%% 4%% Copyright Ericsson AB 1997-2016. All Rights Reserved. 5%% 6%% Licensed under the Apache License, Version 2.0 (the "License"); 7%% you may not use this file except in compliance with the License. 8%% You may obtain a copy of the License at 9%% 10%% http://www.apache.org/licenses/LICENSE-2.0 11%% 12%% Unless required by applicable law or agreed to in writing, software 13%% distributed under the License is distributed on an "AS IS" BASIS, 14%% WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15%% See the License for the specific language governing permissions and 16%% limitations under the License. 17%% 18%% %CopyrightEnd% 19%% 20%% 21%%----------------------------------------------------------------- 22%% 23%% Description: 24%% Test suite for the Names Library module 25%% 26%%----------------------------------------------------------------- 27-module(lname_SUITE). 28 29-include_lib("common_test/include/ct.hrl"). 30-include_lib("orber/COSS/CosNaming/CosNaming.hrl"). 31-include_lib("orber/COSS/CosNaming/lname.hrl"). 32 33-define(default_timeout, test_server:minutes(3)). 34 35%%----------------------------------------------------------------- 36%% External exports 37%%----------------------------------------------------------------- 38-export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, 39 init_per_group/2,end_per_group/2]). 40 41%%----------------------------------------------------------------- 42%% Internal exports 43%%----------------------------------------------------------------- 44-export([]). 45-compile(export_all). 46 47%%----------------------------------------------------------------- 48%% Func: all/1 49%% Args: 50%% Returns: 51%%----------------------------------------------------------------- 52suite() -> [{ct_hooks,[ts_install_cth]}]. 53 54all() -> 55 [lname_component, lname]. 56 57groups() -> 58 []. 59 60init_per_suite(Config) -> 61 Config. 62 63end_per_suite(_Config) -> 64 ok. 65 66init_per_group(_GroupName, Config) -> 67 Config. 68 69end_per_group(_GroupName, Config) -> 70 Config. 71 72 73%%----------------------------------------------------------------- 74%% Init and cleanup functions. 75%%----------------------------------------------------------------- 76 77init_per_testcase(_Case, Config) -> 78 Dog=test_server:timetrap(?default_timeout), 79 [{watchdog, Dog}|Config]. 80 81 82end_per_testcase(_Case, Config) -> 83 Dog = proplists:get_value(watchdog, Config), 84 test_server:timetrap_cancel(Dog), 85 ok. 86 87 88%%----------------------------------------------------------------- 89%% Test Case: name component handling tests 90%% Description: 91%%----------------------------------------------------------------- 92lname_component(_) -> 93 create_test(), 94 get_tests(), 95 set_tests(). 96 97create_test() -> 98 #'CosNaming_NameComponent'{} = lname_component:create(), 99 ok. 100 101get_tests() -> 102 NC = #'CosNaming_NameComponent'{id="first", kind="apple"}, 103 NC1 = #'CosNaming_NameComponent'{id="", kind="apple"}, 104 NC2 = #'CosNaming_NameComponent'{id="first", kind=""}, 105 "first" = lname_component:get_id(NC), 106 "apple" = lname_component:get_kind(NC), 107 {'EXCEPTION', #'LNameComponent_NotSet'{}} = 108 (catch lname_component:get_id(NC1)), 109 {'EXCEPTION', #'LNameComponent_NotSet'{}} = 110 (catch lname_component:get_kind(NC2)), 111 ok. 112 113set_tests() -> 114 NC = #'CosNaming_NameComponent'{id="first", kind="apple"}, 115 #'CosNaming_NameComponent'{id="second", kind="apple"} = 116 lname_component:set_id(NC, "second"), 117 #'CosNaming_NameComponent'{id="first", kind="pear"} = 118 lname_component:set_kind(NC, "pear"), 119 ok. 120 121%%----------------------------------------------------------------- 122%% Test Case: name handling tests 123%% Description: 124%%----------------------------------------------------------------- 125lname(_) -> 126 Name = [#'CosNaming_NameComponent'{id="first", kind="apple"}, 127 #'CosNaming_NameComponent'{id="last", kind="peach"}, 128 #'CosNaming_NameComponent'{id="and", kind="plum"}, 129 #'CosNaming_NameComponent'{id="always", kind="orange"}], 130 insert_tests(Name), 131 get_tests(Name), 132 delete_tests(Name), 133 comparision_tests(Name), 134 convertion_tests(Name). 135 136insert_tests(Name) -> 137 NC = #'CosNaming_NameComponent'{id="new", kind="pear"}, 138 [NC, #'CosNaming_NameComponent'{id="first", kind="apple"}, 139 #'CosNaming_NameComponent'{id="last", kind="peach"}, 140 #'CosNaming_NameComponent'{id="and", kind="plum"}, 141 #'CosNaming_NameComponent'{id="always", kind="orange"}] = 142 lname:insert_component(Name, 1, NC), 143 [#'CosNaming_NameComponent'{id="first", kind="apple"}, 144 #'CosNaming_NameComponent'{id="last", kind="peach"}, 145 #'CosNaming_NameComponent'{id="and", kind="plum"}, 146 #'CosNaming_NameComponent'{id="always", kind="orange"}, NC] = 147 lname:insert_component(Name, 5, NC), 148 [#'CosNaming_NameComponent'{id="first", kind="apple"}, 149 #'CosNaming_NameComponent'{id="last", kind="peach"}, 150 #'CosNaming_NameComponent'{id="and", kind="plum"}, NC, 151 #'CosNaming_NameComponent'{id="always", kind="orange"}] = 152 lname:insert_component(Name, 4, NC), 153 [#'CosNaming_NameComponent'{id="first", kind="apple"}, 154 #'CosNaming_NameComponent'{id="last", kind="peach"}, NC, 155 #'CosNaming_NameComponent'{id="and", kind="plum"}, 156 #'CosNaming_NameComponent'{id="always", kind="orange"}] = 157 lname:insert_component(Name, 3, NC), 158 {'EXCEPTION', #'LName_NoComponent'{}} = 159 (catch lname:insert_component(Name, 6, NC)), 160 {'EXCEPTION', #'LName_NoComponent'{}} = 161 (catch lname:insert_component(Name, 0, NC)), 162 {'EXCEPTION', #'LName_NoComponent'{}} = 163 (catch lname:insert_component(Name, -2, NC)), 164 ok. 165 166get_tests(Name) -> 167 #'CosNaming_NameComponent'{id="first", kind="apple"} = 168 lname:get_component(Name, 1), 169 #'CosNaming_NameComponent'{id="always", kind="orange"} = 170 lname:get_component(Name, 4), 171 #'CosNaming_NameComponent'{id="and", kind="plum"} = 172 lname:get_component(Name, 3), 173 {'EXCEPTION', #'LName_NoComponent'{}} = 174 (catch lname:get_component(Name, 5)), 175 {'EXCEPTION', #'LName_NoComponent'{}} = 176 (catch lname:get_component(Name, 0)), 177 {'EXCEPTION', #'LName_NoComponent'{}} = 178 (catch lname:get_component(Name, -2)), 179 ok. 180 181delete_tests(Name) -> 182 [#'CosNaming_NameComponent'{id="last", kind="peach"}, 183 #'CosNaming_NameComponent'{id="and", kind="plum"}, 184 #'CosNaming_NameComponent'{id="always", kind="orange"}] = 185 lname:delete_component(Name, 1), 186 [#'CosNaming_NameComponent'{id="first", kind="apple"}, 187 #'CosNaming_NameComponent'{id="last", kind="peach"}, 188 #'CosNaming_NameComponent'{id="and", kind="plum"}] = 189 lname:delete_component(Name, 4), 190 [#'CosNaming_NameComponent'{id="first", kind="apple"}, 191 #'CosNaming_NameComponent'{id="last", kind="peach"}, 192 #'CosNaming_NameComponent'{id="always", kind="orange"}] = 193 lname:delete_component(Name, 3), 194 {'EXCEPTION', #'LName_NoComponent'{}} = 195 (catch lname:delete_component(Name, 6)), 196 {'EXCEPTION', #'LName_NoComponent'{}} = 197 (catch lname:delete_component(Name, 0)), 198 {'EXCEPTION', #'LName_NoComponent'{}} = 199 (catch lname:delete_component(Name, -2)), 200 ok. 201 202comparision_tests(Name) -> 203 true = lname:equal(Name, Name), 204 false = lname:equal(Name, lname:delete_component(Name, 2)), 205 true = lname:less_than(lname:delete_component(Name, 2), Name), 206 false = lname:less_than(Name, Name), 207 false = lname:less_than(Name, lname:delete_component(Name, 2)), 208 ok. 209 210convertion_tests(Name) -> 211 Name = lname:from_idl_form(Name), 212 Name = lname:to_idl_form(Name), 213 ok. 214