Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MAX44000 PWM_Tone_Library nexpaq_mdk
Fork of LED_Demo by
test_m2msecurity.cpp
00001 /* 00002 * Copyright (c) 2015 ARM Limited. All rights reserved. 00003 * SPDX-License-Identifier: Apache-2.0 00004 * Licensed under the Apache License, Version 2.0 (the License); you may 00005 * not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an AS IS BASIS, WITHOUT 00012 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 #include "CppUTest/TestHarness.h" 00017 #include "test_m2msecurity.h" 00018 #include "m2mobject_stub.h" 00019 #include "m2mobjectinstance_stub.h" 00020 #include "m2mresource_stub.h" 00021 #include "m2mresourceinstance_stub.h" 00022 #include "m2mbase_stub.h" 00023 00024 class Callback : public M2MObjectCallback { 00025 00026 public: 00027 00028 Callback(){} 00029 ~Callback(){} 00030 void notification_update(uint16_t obj_instance_id) { 00031 visited = true; 00032 } 00033 00034 void clear() {visited = false;} 00035 bool visited; 00036 }; 00037 00038 Test_M2MSecurity::Test_M2MSecurity() 00039 { 00040 callback = new Callback(); 00041 m2mobject_stub::inst = new M2MObjectInstance("name",*callback); 00042 m2mresource_stub::bool_value = true; 00043 m2mobjectinstance_stub::create_resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00044 security = new M2MSecurity(M2MSecurity::Bootstrap); 00045 00046 delete m2mobjectinstance_stub::create_resource; 00047 m2mobjectinstance_stub::create_resource = NULL; 00048 } 00049 00050 Test_M2MSecurity::~Test_M2MSecurity() 00051 { 00052 delete m2mobject_stub::inst; 00053 m2mobject_stub::inst = NULL; 00054 m2mobject_stub::clear(); 00055 m2mobjectinstance_stub::clear(); 00056 m2mresource_stub::clear(); 00057 m2mbase_stub::clear(); 00058 delete security; 00059 delete callback; 00060 } 00061 00062 void Test_M2MSecurity::test_create_resource_int() 00063 { 00064 m2mobjectinstance_stub::create_resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00065 00066 CHECK(security->create_resource(M2MSecurity::M2MServerUri,10) == NULL); 00067 CHECK(security->create_resource(M2MSecurity::BootstrapServer,10) == NULL); 00068 CHECK(security->create_resource(M2MSecurity::SecurityMode,10) == NULL); 00069 CHECK(security->create_resource(M2MSecurity::PublicKey,10) == NULL); 00070 CHECK(security->create_resource(M2MSecurity::ServerPublicKey,10) == NULL); 00071 CHECK(security->create_resource(M2MSecurity::Secretkey,10) == NULL); 00072 CHECK(security->create_resource(M2MSecurity::SMSBindingKey,10) == NULL); 00073 CHECK(security->create_resource(M2MSecurity::SMSBindingSecretKey,10) == NULL); 00074 00075 CHECK(security->create_resource(M2MSecurity::M2MServerSMSNumber,10) != NULL); 00076 CHECK(security->create_resource(M2MSecurity::ShortServerID,10) != NULL); 00077 CHECK(security->create_resource(M2MSecurity::ClientHoldOffTime,10) != NULL); 00078 CHECK(security->create_resource(M2MSecurity::SMSSecurityMode,10) != NULL); 00079 00080 delete m2mobjectinstance_stub::create_resource; 00081 m2mobjectinstance_stub::create_resource = NULL; 00082 } 00083 00084 void Test_M2MSecurity::test_delete_resource() 00085 { 00086 m2mresourceinstance_stub::bool_value = true; 00087 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00088 00089 CHECK(security->delete_resource(M2MSecurity::SMSBindingSecretKey) == false); 00090 CHECK(security->delete_resource(M2MSecurity::SMSBindingKey) == false); 00091 CHECK(security->delete_resource(M2MSecurity::M2MServerUri) == false); 00092 CHECK(security->delete_resource(M2MSecurity::Secretkey) == false); 00093 CHECK(security->delete_resource(M2MSecurity::ServerPublicKey) == false); 00094 CHECK(security->delete_resource(M2MSecurity::BootstrapServer) == false); 00095 CHECK(security->delete_resource(M2MSecurity::PublicKey) == false); 00096 CHECK(security->delete_resource(M2MSecurity::SecurityMode) == false); 00097 00098 m2mobjectinstance_stub::bool_value = true; 00099 00100 CHECK(security->delete_resource(M2MSecurity::M2MServerSMSNumber) == true); 00101 CHECK(security->delete_resource(M2MSecurity::ShortServerID) == true); 00102 CHECK(security->delete_resource(M2MSecurity::ClientHoldOffTime) == true); 00103 CHECK(security->delete_resource(M2MSecurity::SMSSecurityMode) == true); 00104 00105 delete m2mobjectinstance_stub::resource; 00106 m2mobjectinstance_stub::resource = NULL; 00107 } 00108 00109 void Test_M2MSecurity::test_set_resource_value_string() 00110 { 00111 m2mresourceinstance_stub::bool_value = true; 00112 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00113 00114 CHECK(security->set_resource_value(M2MSecurity::M2MServerUri,"test") == true); 00115 00116 CHECK(security->set_resource_value(M2MSecurity::M2MServerSMSNumber,"test") == false); 00117 CHECK(security->set_resource_value(M2MSecurity::ShortServerID,"test") == false); 00118 CHECK(security->set_resource_value(M2MSecurity::SMSBindingKey,"test") == false); 00119 CHECK(security->set_resource_value(M2MSecurity::SMSBindingSecretKey,"test") == false); 00120 CHECK(security->set_resource_value(M2MSecurity::ClientHoldOffTime,"test") == false); 00121 CHECK(security->set_resource_value(M2MSecurity::SMSSecurityMode,"test") == false); 00122 CHECK(security->set_resource_value(M2MSecurity::Secretkey,"test") == false); 00123 CHECK(security->set_resource_value(M2MSecurity::ServerPublicKey,"test") == false); 00124 CHECK(security->set_resource_value(M2MSecurity::PublicKey,"test") == false); 00125 CHECK(security->set_resource_value(M2MSecurity::BootstrapServer,"test") == false); 00126 CHECK(security->set_resource_value(M2MSecurity::SecurityMode,"test") == false); 00127 00128 delete m2mobjectinstance_stub::resource; 00129 m2mobjectinstance_stub::resource = NULL; 00130 } 00131 00132 void Test_M2MSecurity::test_set_resource_value_int() 00133 { 00134 m2mresourceinstance_stub::bool_value = true; 00135 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name", "name", M2MResourceInstance::STRING,M2MBase::Dynamic); 00136 00137 CHECK(security->set_resource_value(M2MSecurity::M2MServerUri,10) == false); 00138 CHECK(security->set_resource_value(M2MSecurity::SMSBindingKey,10) == false); 00139 CHECK(security->set_resource_value(M2MSecurity::SMSBindingSecretKey,10) == false); 00140 CHECK(security->set_resource_value(M2MSecurity::Secretkey,10) == false); 00141 CHECK(security->set_resource_value(M2MSecurity::ServerPublicKey,10) == false); 00142 CHECK(security->set_resource_value(M2MSecurity::PublicKey,10) == false); 00143 CHECK(security->set_resource_value(M2MSecurity::BootstrapServer,10) == false); 00144 00145 CHECK(security->set_resource_value(M2MSecurity::SecurityMode,10) == true); 00146 CHECK(security->set_resource_value(M2MSecurity::SMSSecurityMode,10) == true); 00147 CHECK(security->set_resource_value(M2MSecurity::M2MServerSMSNumber,10) == true); 00148 CHECK(security->set_resource_value(M2MSecurity::ShortServerID,10) == true); 00149 CHECK(security->set_resource_value(M2MSecurity::ClientHoldOffTime,10) == true); 00150 00151 delete m2mobjectinstance_stub::resource; 00152 m2mobjectinstance_stub::resource = NULL; 00153 } 00154 00155 void Test_M2MSecurity::test_set_resource_value_buffer() 00156 { 00157 m2mresourceinstance_stub::bool_value = true; 00158 00159 uint8_t value[] = {"value"}; 00160 uint16_t length = (uint16_t)sizeof(value); 00161 00162 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00163 00164 CHECK(security->set_resource_value(M2MSecurity::Secretkey,value,length) == true); 00165 CHECK(security->set_resource_value(M2MSecurity::ServerPublicKey,value,length) == true); 00166 CHECK(security->set_resource_value(M2MSecurity::PublicKey,value,length) == true); 00167 00168 CHECK(security->set_resource_value(M2MSecurity::M2MServerUri,value,length) == false); 00169 CHECK(security->set_resource_value(M2MSecurity::SMSBindingKey,value,length) == false); 00170 CHECK(security->set_resource_value(M2MSecurity::SMSBindingSecretKey,value,length) == false); 00171 CHECK(security->set_resource_value(M2MSecurity::BootstrapServer,value,length) == false); 00172 00173 CHECK(security->set_resource_value(M2MSecurity::SecurityMode,value,length) == false); 00174 CHECK(security->set_resource_value(M2MSecurity::SMSSecurityMode,value,length) == false); 00175 CHECK(security->set_resource_value(M2MSecurity::M2MServerSMSNumber,value,length) == false); 00176 CHECK(security->set_resource_value(M2MSecurity::ShortServerID,value,length) == false); 00177 CHECK(security->set_resource_value(M2MSecurity::ClientHoldOffTime,value,length) == false); 00178 00179 delete m2mobjectinstance_stub::resource; 00180 m2mobjectinstance_stub::resource = NULL; 00181 } 00182 00183 void Test_M2MSecurity::test_resource_value_int() 00184 { 00185 m2mresourceinstance_stub::bool_value = true; 00186 00187 uint8_t value[] = {"10"}; 00188 //m2mresourceinstance_stub::value = (uint8_t*)malloc((uint32_t)sizeof(value)); 00189 uint8_t size = 0; 00190 m2mresourceinstance_stub::value = String::convert_integer_to_array(10,size); 00191 /*memset(m2mresourceinstance_stub::value,0,(uint32_t)size); 00192 memcpy(m2mresourceinstance_stub::value, 10, size);*/ 00193 m2mresourceinstance_stub::int_value = (uint16_t)size; 00194 00195 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst, 00196 "name", 00197 "type", 00198 M2MResourceInstance::INTEGER, 00199 M2MBase::Dynamic); 00200 00201 CHECK(security->resource_value_int(M2MSecurity::SecurityMode) == 10); 00202 CHECK(security->resource_value_int(M2MSecurity::SMSSecurityMode) == 10); 00203 CHECK(security->resource_value_int(M2MSecurity::M2MServerSMSNumber) == 10); 00204 CHECK(security->resource_value_int(M2MSecurity::ShortServerID) == 10); 00205 CHECK(security->resource_value_int(M2MSecurity::ClientHoldOffTime) == 10); 00206 CHECK(security->resource_value_int(M2MSecurity::BootstrapServer) == 0); 00207 CHECK(security->resource_value_int(M2MSecurity::PublicKey) == 0); 00208 CHECK(security->resource_value_int(M2MSecurity::ServerPublicKey) == 0); 00209 CHECK(security->resource_value_int(M2MSecurity::Secretkey) == 0); 00210 CHECK(security->resource_value_int(M2MSecurity::SMSBindingSecretKey) == 0); 00211 CHECK(security->resource_value_int(M2MSecurity::SMSBindingKey) == 0); 00212 CHECK(security->resource_value_int(M2MSecurity::M2MServerUri) == 0); 00213 00214 security->clear_resources(); 00215 CHECK(security->resource_value_int(M2MSecurity::SecurityMode) == 0); 00216 CHECK(security->resource_value_int(M2MSecurity::SMSSecurityMode) == 0); 00217 CHECK(security->resource_value_int(M2MSecurity::M2MServerSMSNumber) == 0); 00218 CHECK(security->resource_value_int(M2MSecurity::ShortServerID) == 0); 00219 CHECK(security->resource_value_int(M2MSecurity::ClientHoldOffTime) == 0); 00220 CHECK(security->resource_value_int(M2MSecurity::BootstrapServer) == 0); 00221 CHECK(security->resource_value_int(M2MSecurity::PublicKey) == 0); 00222 CHECK(security->resource_value_int(M2MSecurity::ServerPublicKey) == 0); 00223 CHECK(security->resource_value_int(M2MSecurity::Secretkey) == 0); 00224 CHECK(security->resource_value_int(M2MSecurity::SMSBindingSecretKey) == 0); 00225 CHECK(security->resource_value_int(M2MSecurity::SMSBindingKey) == 0); 00226 CHECK(security->resource_value_int(M2MSecurity::M2MServerUri) == 0); 00227 00228 delete m2mobjectinstance_stub::resource; 00229 m2mobjectinstance_stub::resource = NULL; 00230 00231 free(m2mresourceinstance_stub::value); 00232 m2mresourceinstance_stub::value = NULL; 00233 } 00234 00235 void Test_M2MSecurity::test_resource_value_string() 00236 { 00237 m2mresourceinstance_stub::bool_value = true; 00238 String test = "string"; 00239 uint8_t value[] = {"string"}; 00240 m2mresourceinstance_stub::value = (uint8_t*)malloc((uint32_t)sizeof(value)); 00241 memset(m2mresourceinstance_stub::value,0,(uint32_t)sizeof(value)); 00242 memcpy(m2mresourceinstance_stub::value,value,sizeof(value)); 00243 m2mresourceinstance_stub::int_value = (uint16_t)sizeof(value); 00244 00245 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00246 00247 CHECK(security->resource_value_string(M2MSecurity::M2MServerUri) == test); 00248 00249 CHECK(security->resource_value_string(M2MSecurity::SMSBindingKey) == ""); 00250 CHECK(security->resource_value_string(M2MSecurity::SMSBindingSecretKey) == ""); 00251 CHECK(security->resource_value_string(M2MSecurity::Secretkey) == ""); 00252 CHECK(security->resource_value_string(M2MSecurity::ServerPublicKey) == ""); 00253 CHECK(security->resource_value_string(M2MSecurity::PublicKey) == ""); 00254 CHECK(security->resource_value_string(M2MSecurity::BootstrapServer) == ""); 00255 CHECK(security->resource_value_string(M2MSecurity::ClientHoldOffTime) == ""); 00256 CHECK(security->resource_value_string(M2MSecurity::ShortServerID) == ""); 00257 CHECK(security->resource_value_string(M2MSecurity::M2MServerSMSNumber) == ""); 00258 CHECK(security->resource_value_string(M2MSecurity::SMSSecurityMode) == ""); 00259 CHECK(security->resource_value_string(M2MSecurity::SecurityMode) == ""); 00260 00261 delete m2mobjectinstance_stub::resource; 00262 m2mobjectinstance_stub::resource = NULL; 00263 00264 free(m2mresourceinstance_stub::value); 00265 m2mresourceinstance_stub::value = NULL; 00266 } 00267 00268 void Test_M2MSecurity::test_resource_value_buffer() 00269 { 00270 m2mresourceinstance_stub::bool_value = true; 00271 00272 uint8_t value[] = {"buffer"}; 00273 uint8_t *out_value = NULL; 00274 00275 m2mresourceinstance_stub::value = (uint8_t*)malloc((uint32_t)sizeof(value)); 00276 memset(m2mresourceinstance_stub::value,0,(uint32_t)sizeof(value)); 00277 memcpy(m2mresourceinstance_stub::value,value,sizeof(value)); 00278 m2mresourceinstance_stub::int_value = (uint16_t)sizeof(value); 00279 00280 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00281 00282 CHECK(security->resource_value_buffer(M2MSecurity::Secretkey,out_value) != 0); 00283 CHECK(security->resource_value_buffer(M2MSecurity::ServerPublicKey,out_value) != 0); 00284 CHECK(security->resource_value_buffer(M2MSecurity::PublicKey,out_value) != 0); 00285 00286 CHECK(security->resource_value_buffer(M2MSecurity::M2MServerUri,out_value) == 0); 00287 00288 CHECK(security->resource_value_buffer(M2MSecurity::SMSBindingKey,out_value) == 0); 00289 CHECK(security->resource_value_buffer(M2MSecurity::SMSBindingSecretKey,out_value) == 0); 00290 CHECK(security->resource_value_buffer(M2MSecurity::BootstrapServer,out_value) == 0); 00291 CHECK(security->resource_value_buffer(M2MSecurity::ClientHoldOffTime,out_value) == 0); 00292 CHECK(security->resource_value_buffer(M2MSecurity::ShortServerID,out_value) == 0); 00293 CHECK(security->resource_value_buffer(M2MSecurity::M2MServerSMSNumber,out_value) == 0); 00294 CHECK(security->resource_value_buffer(M2MSecurity::SMSSecurityMode,out_value) == 0); 00295 CHECK(security->resource_value_buffer(M2MSecurity::SecurityMode,out_value) == 0); 00296 00297 const uint8_t *outvalue = NULL; 00298 CHECK(security->resource_value_buffer(M2MSecurity::Secretkey,outvalue) != 0); 00299 CHECK(security->resource_value_buffer(M2MSecurity::ServerPublicKey,outvalue) != 0); 00300 CHECK(security->resource_value_buffer(M2MSecurity::PublicKey,outvalue) != 0); 00301 00302 free(out_value); 00303 out_value = NULL; 00304 00305 delete m2mobjectinstance_stub::resource; 00306 m2mobjectinstance_stub::resource = NULL; 00307 00308 free(m2mresourceinstance_stub::value); 00309 m2mresourceinstance_stub::value = NULL; 00310 } 00311 00312 void Test_M2MSecurity::test_is_resource_present() 00313 { 00314 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00315 00316 CHECK(security->is_resource_present(M2MSecurity::M2MServerUri) == true); 00317 00318 delete m2mobjectinstance_stub::resource; 00319 m2mobjectinstance_stub::resource = NULL; 00320 00321 CHECK(security->is_resource_present(M2MSecurity::ClientHoldOffTime) == false); 00322 } 00323 00324 void Test_M2MSecurity::test_total_resource_count() 00325 { 00326 M2MResource *res = new M2MResource(*m2mobject_stub::inst,"test","test",M2MResourceInstance::STRING,M2MBase::Dynamic); 00327 00328 m2mobjectinstance_stub::resource_list.push_back(res); 00329 M2MResource *res2 = new M2MResource(*m2mobject_stub::inst,"test","test",M2MResourceInstance::STRING,M2MBase::Dynamic); 00330 00331 m2mobjectinstance_stub::resource_list.push_back(res2); 00332 00333 CHECK(security->total_resource_count() == 2); 00334 00335 m2mobjectinstance_stub::resource_list.clear(); 00336 00337 delete res2; 00338 delete res; 00339 } 00340 00341 void Test_M2MSecurity::test_m2m_server_constructor() 00342 { 00343 m2mobjectinstance_stub::create_resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00344 00345 M2MSecurity* sec = new M2MSecurity(M2MSecurity::M2MServer); 00346 CHECK(M2MSecurity::M2MServer == sec->server_type()); 00347 00348 delete sec; 00349 delete m2mobjectinstance_stub::create_resource; 00350 m2mobjectinstance_stub::create_resource = NULL; 00351 } 00352 00353 void Test_M2MSecurity::test_server_type() 00354 { 00355 CHECK(M2MSecurity::Bootstrap ==security->server_type()); 00356 }
Generated on Tue Jul 12 2022 12:28:54 by
