@@ -19,6 +19,7 @@ const assertUtils = require('./utils.js');
1919const assertThrowsError = assertUtils . assertThrowsError ;
2020const IsClose = require ( 'is-close' ) ;
2121const rclnodejs = require ( '../index.js' ) ;
22+ const loader = require ( '../lib/interface_loader.js' ) ;
2223
2324const ParameterType = rclnodejs . ParameterType ;
2425const Parameter = rclnodejs . Parameter ;
@@ -102,6 +103,177 @@ describe('rclnodejs parameters test suite', function () {
102103 } ) ;
103104 } ) ;
104105
106+ describe ( 'convert fromParameterMessage test suite' , function ( ) {
107+ it ( 'should convert PARAMETER_NOT_SET type' , function ( ) {
108+ let param_msg = new ( loader . loadInterface (
109+ 'rcl_interfaces/msg/Parameter'
110+ ) ) ( ) ;
111+ param_msg . name = 'not_set_param' ;
112+ param_msg . value . type = ParameterType . PARAMETER_NOT_SET ;
113+
114+ let param ;
115+ assert . doesNotThrow ( ( ) => {
116+ param = Parameter . fromParameterMessage ( param_msg ) ;
117+ } ) ;
118+ assert . strictEqual ( param . name , 'not_set_param' ) ;
119+ assert . strictEqual ( param . type , ParameterType . PARAMETER_NOT_SET ) ;
120+ assert . strictEqual ( param . value , undefined ) ;
121+ } ) ;
122+
123+ it ( 'should convert PARAMETER_BOOL type' , function ( ) {
124+ let param_msg = new ( loader . loadInterface (
125+ 'rcl_interfaces/msg/Parameter'
126+ ) ) ( ) ;
127+ param_msg . name = 'bool_param' ;
128+ param_msg . value . type = ParameterType . PARAMETER_BOOL ;
129+ param_msg . value . bool_value = false ;
130+
131+ let param ;
132+ assert . doesNotThrow ( ( ) => {
133+ param = Parameter . fromParameterMessage ( param_msg ) ;
134+ } ) ;
135+ assert . strictEqual ( param . name , 'bool_param' ) ;
136+ assert . strictEqual ( param . type , ParameterType . PARAMETER_BOOL ) ;
137+ assert . strictEqual ( param . value , false ) ;
138+ } ) ;
139+
140+ it ( 'should convert PARAMETER_BOOL_ARRAY type' , function ( ) {
141+ let param_msg = new ( loader . loadInterface (
142+ 'rcl_interfaces/msg/Parameter'
143+ ) ) ( ) ;
144+ param_msg . name = 'bool_array_param' ;
145+ param_msg . value . type = ParameterType . PARAMETER_BOOL_ARRAY ;
146+ param_msg . value . bool_array_value = [ true , false , true ] ;
147+
148+ let param ;
149+ assert . doesNotThrow ( ( ) => {
150+ param = Parameter . fromParameterMessage ( param_msg ) ;
151+ } ) ;
152+ assert . strictEqual ( param . name , 'bool_array_param' ) ;
153+ assert . strictEqual ( param . type , ParameterType . PARAMETER_BOOL_ARRAY ) ;
154+ assert . deepStrictEqual ( param . value , [ true , false , true ] ) ;
155+ } ) ;
156+
157+ it ( 'should convert PARAMETER_BYTE_ARRAY type' , function ( ) {
158+ let param_msg = new ( loader . loadInterface (
159+ 'rcl_interfaces/msg/Parameter'
160+ ) ) ( ) ;
161+ param_msg . name = 'byte_array_param' ;
162+ param_msg . value . type = ParameterType . PARAMETER_BYTE_ARRAY ;
163+ param_msg . value . byte_array_value = [ 1 , 2 , 3 ] ;
164+
165+ let param ;
166+ assert . doesNotThrow ( ( ) => {
167+ param = Parameter . fromParameterMessage ( param_msg ) ;
168+ } ) ;
169+ assert . strictEqual ( param . name , 'byte_array_param' ) ;
170+ assert . strictEqual ( param . type , ParameterType . PARAMETER_BYTE_ARRAY ) ;
171+ assert . deepStrictEqual ( param . value , [ 1 , 2 , 3 ] ) ;
172+ } ) ;
173+
174+ it ( 'should convert PARAMETER_DOUBLE type' , function ( ) {
175+ let param_msg = new ( loader . loadInterface (
176+ 'rcl_interfaces/msg/Parameter'
177+ ) ) ( ) ;
178+ param_msg . name = 'double_param' ;
179+ param_msg . value . type = ParameterType . PARAMETER_DOUBLE ;
180+ param_msg . value . double_value = 1.23 ;
181+
182+ let param ;
183+ assert . doesNotThrow ( ( ) => {
184+ param = Parameter . fromParameterMessage ( param_msg ) ;
185+ } ) ;
186+ assert . strictEqual ( param . name , 'double_param' ) ;
187+ assert . strictEqual ( param . type , ParameterType . PARAMETER_DOUBLE ) ;
188+ assert . strictEqual ( param . value , 1.23 ) ;
189+ } ) ;
190+
191+ it ( 'should convert PARAMETER_DOUBLE_ARRAY type' , function ( ) {
192+ let param_msg = new ( loader . loadInterface (
193+ 'rcl_interfaces/msg/Parameter'
194+ ) ) ( ) ;
195+ param_msg . name = 'double_array_param' ;
196+ param_msg . value . type = ParameterType . PARAMETER_DOUBLE_ARRAY ;
197+ param_msg . value . double_array_value = [ 1.1 , 2.2 , 3.3 , 4.4 , 5.5 ] ;
198+
199+ let param ;
200+ assert . doesNotThrow ( ( ) => {
201+ param = Parameter . fromParameterMessage ( param_msg ) ;
202+ } ) ;
203+ assert . strictEqual ( param . name , 'double_array_param' ) ;
204+ assert . strictEqual ( param . type , ParameterType . PARAMETER_DOUBLE_ARRAY ) ;
205+ assert . deepStrictEqual ( param . value , [ 1.1 , 2.2 , 3.3 , 4.4 , 5.5 ] ) ;
206+ } ) ;
207+
208+ it ( 'should convert PARAMETER_INTEGER type' , function ( ) {
209+ let param_msg = new ( loader . loadInterface (
210+ 'rcl_interfaces/msg/Parameter'
211+ ) ) ( ) ;
212+ param_msg . name = 'integer_param' ;
213+ param_msg . value . type = ParameterType . PARAMETER_INTEGER ;
214+ param_msg . value . integer_value = 123 ;
215+
216+ let param ;
217+ assert . doesNotThrow ( ( ) => {
218+ param = Parameter . fromParameterMessage ( param_msg ) ;
219+ } ) ;
220+ assert . strictEqual ( param . name , 'integer_param' ) ;
221+ assert . strictEqual ( param . type , ParameterType . PARAMETER_INTEGER ) ;
222+ assert . strictEqual ( param . value , 123 ) ;
223+ } ) ;
224+
225+ it ( 'should convert PARAMETER_INTEGER_ARRAY type' , function ( ) {
226+ let param_msg = new ( loader . loadInterface (
227+ 'rcl_interfaces/msg/Parameter'
228+ ) ) ( ) ;
229+ param_msg . name = 'integer_array_param' ;
230+ param_msg . value . type = ParameterType . PARAMETER_INTEGER_ARRAY ;
231+ param_msg . value . integer_array_value = [ 1 , 2 , 3 , 4 , 5 ] ;
232+
233+ let param ;
234+ assert . doesNotThrow ( ( ) => {
235+ param = Parameter . fromParameterMessage ( param_msg ) ;
236+ } ) ;
237+ assert . strictEqual ( param . name , 'integer_array_param' ) ;
238+ assert . strictEqual ( param . type , ParameterType . PARAMETER_INTEGER_ARRAY ) ;
239+ assert . deepStrictEqual ( param . value , [ 1 , 2 , 3 , 4 , 5 ] ) ;
240+ } ) ;
241+
242+ it ( 'should convert PARAMETER_STRING type' , function ( ) {
243+ let param_msg = new ( loader . loadInterface (
244+ 'rcl_interfaces/msg/Parameter'
245+ ) ) ( ) ;
246+ param_msg . name = 'string_param' ;
247+ param_msg . value . type = ParameterType . PARAMETER_STRING ;
248+ param_msg . value . string_value = 'hello world' ;
249+
250+ let param ;
251+ assert . doesNotThrow ( ( ) => {
252+ param = Parameter . fromParameterMessage ( param_msg ) ;
253+ } ) ;
254+ assert . strictEqual ( param . name , 'string_param' ) ;
255+ assert . strictEqual ( param . type , ParameterType . PARAMETER_STRING ) ;
256+ assert . strictEqual ( param . value , 'hello world' ) ;
257+ } ) ;
258+
259+ it ( 'should convert PARAMETER_STRING_ARRAY type' , function ( ) {
260+ let param_msg = new ( loader . loadInterface (
261+ 'rcl_interfaces/msg/Parameter'
262+ ) ) ( ) ;
263+ param_msg . name = 'string_array_param' ;
264+ param_msg . value . type = ParameterType . PARAMETER_STRING_ARRAY ;
265+ param_msg . value . string_array_value = [ 'hello' , 'world' ] ;
266+
267+ let param ;
268+ assert . doesNotThrow ( ( ) => {
269+ param = Parameter . fromParameterMessage ( param_msg ) ;
270+ } ) ;
271+ assert . strictEqual ( param . name , 'string_array_param' ) ;
272+ assert . strictEqual ( param . type , ParameterType . PARAMETER_STRING_ARRAY ) ;
273+ assert . deepStrictEqual ( param . value , [ 'hello' , 'world' ] ) ;
274+ } ) ;
275+ } ) ;
276+
105277 describe ( 'range tests' , function ( ) {
106278 it ( 'Math IsClose test' , function ( ) {
107279 assert . ok ( IsClose . isClose ( 1.0 , 1.0 , DEFAULT_NUMERIC_RANGE_TOLERANCE ) ) ;
0 commit comments