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_m2mserver.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_m2mserver.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_M2MServer::Test_M2MServer() 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 server = new M2MServer(); 00045 00046 delete m2mobjectinstance_stub::create_resource; 00047 m2mobjectinstance_stub::create_resource = NULL; 00048 } 00049 00050 Test_M2MServer::~Test_M2MServer() 00051 { 00052 delete m2mobject_stub::inst; 00053 m2mobject_stub::inst = NULL; 00054 00055 m2mobject_stub::clear(); 00056 m2mobjectinstance_stub::clear(); 00057 m2mresource_stub::clear(); 00058 m2mbase_stub::clear(); 00059 delete server; 00060 delete callback; 00061 } 00062 00063 void Test_M2MServer::test_create_resource_int() 00064 { 00065 m2mobjectinstance_stub::create_resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00066 00067 CHECK(server->create_resource(M2MServer::DefaultMinPeriod,10) != NULL); 00068 CHECK(server->create_resource(M2MServer::DefaultMaxPeriod,10) != NULL); 00069 CHECK(server->create_resource(M2MServer::DisableTimeout,10) != NULL); 00070 00071 CHECK(server->create_resource(M2MServer::ShortServerID,10) == NULL); 00072 CHECK(server->create_resource(M2MServer::Lifetime,10) == NULL); 00073 CHECK(server->create_resource(M2MServer::Disable,10) == NULL); 00074 CHECK(server->create_resource(M2MServer::Binding,10) == NULL); 00075 CHECK(server->create_resource(M2MServer::NotificationStorage,10) == NULL); 00076 CHECK(server->create_resource(M2MServer::Binding,10) == NULL); 00077 CHECK(server->create_resource(M2MServer::RegistrationUpdate,10) == NULL); 00078 00079 delete m2mobjectinstance_stub::create_resource; 00080 m2mobjectinstance_stub::create_resource = NULL; 00081 } 00082 00083 void Test_M2MServer::test_create_resource() 00084 { 00085 m2mobjectinstance_stub::create_resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00086 00087 CHECK(server->create_resource(M2MServer::Disable) != NULL); 00088 00089 CHECK(server->create_resource(M2MServer::DefaultMinPeriod) == NULL); 00090 CHECK(server->create_resource(M2MServer::DefaultMaxPeriod) == NULL); 00091 CHECK(server->create_resource(M2MServer::DefaultMaxPeriod) == NULL); 00092 CHECK(server->create_resource(M2MServer::ShortServerID) == NULL); 00093 CHECK(server->create_resource(M2MServer::Lifetime) == NULL); 00094 CHECK(server->create_resource(M2MServer::DisableTimeout) == NULL); 00095 CHECK(server->create_resource(M2MServer::Binding) == NULL); 00096 CHECK(server->create_resource(M2MServer::NotificationStorage) == NULL); 00097 CHECK(server->create_resource(M2MServer::RegistrationUpdate) == NULL); 00098 00099 delete m2mobjectinstance_stub::create_resource; 00100 m2mobjectinstance_stub::create_resource = NULL; 00101 } 00102 00103 void Test_M2MServer::test_delete_resource() 00104 { 00105 m2mobjectinstance_stub::bool_value = true; 00106 00107 CHECK(server->delete_resource(M2MServer::ShortServerID) == false); 00108 CHECK(server->delete_resource(M2MServer::Binding) == false); 00109 CHECK(server->delete_resource(M2MServer::NotificationStorage) == false); 00110 CHECK(server->delete_resource(M2MServer::Lifetime) == false); 00111 CHECK(server->delete_resource(M2MServer::RegistrationUpdate) == false); 00112 00113 CHECK(server->delete_resource(M2MServer::DefaultMinPeriod) == true); 00114 CHECK(server->delete_resource(M2MServer::DefaultMaxPeriod) == true); 00115 CHECK(server->delete_resource(M2MServer::DisableTimeout) == true); 00116 CHECK(server->delete_resource(M2MServer::Disable) == true); 00117 } 00118 00119 void Test_M2MServer::test_set_resource_value_int() 00120 { 00121 m2mbase_stub::bool_value = true; 00122 00123 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name", "name",M2MResourceInstance::STRING,M2MBase::Dynamic); 00124 00125 CHECK(server->set_resource_value(M2MServer::DefaultMinPeriod,10) == true); 00126 CHECK(server->set_resource_value(M2MServer::DefaultMaxPeriod,10) == true); 00127 CHECK(server->set_resource_value(M2MServer::DisableTimeout,10) == true); 00128 CHECK(server->set_resource_value(M2MServer::ShortServerID,10) == true); 00129 CHECK(server->set_resource_value(M2MServer::NotificationStorage,10) == true); 00130 CHECK(server->set_resource_value(M2MServer::Lifetime,10) == true); 00131 00132 CHECK(server->set_resource_value(M2MServer::Binding,10) == false); 00133 CHECK(server->set_resource_value(M2MServer::RegistrationUpdate,10) == false); 00134 CHECK(server->set_resource_value(M2MServer::Disable,10) == false); 00135 00136 delete m2mobjectinstance_stub::resource; 00137 m2mobjectinstance_stub::resource = NULL; 00138 } 00139 00140 void Test_M2MServer::test_set_resource_value_string() 00141 { 00142 m2mresourceinstance_stub::bool_value = true; 00143 00144 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name", "name", M2MResourceInstance::STRING, M2MBase::Dynamic); 00145 00146 CHECK(server->set_resource_value(M2MServer::Binding,"test") == true); 00147 00148 CHECK(server->set_resource_value(M2MServer::DefaultMinPeriod,"test") == false); 00149 CHECK(server->set_resource_value(M2MServer::DefaultMaxPeriod,"test") == false); 00150 CHECK(server->set_resource_value(M2MServer::DisableTimeout,"test") == false); 00151 CHECK(server->set_resource_value(M2MServer::ShortServerID,"test") == false); 00152 CHECK(server->set_resource_value(M2MServer::NotificationStorage,"test") == false); 00153 CHECK(server->set_resource_value(M2MServer::Lifetime,"test") == false); 00154 CHECK(server->set_resource_value(M2MServer::RegistrationUpdate,"test") == false); 00155 CHECK(server->set_resource_value(M2MServer::Disable,"test") == false); 00156 00157 delete m2mobjectinstance_stub::resource; 00158 m2mobjectinstance_stub::resource = NULL; 00159 } 00160 00161 void Test_M2MServer::test_resource_value_int() 00162 { 00163 uint8_t value[] = {"10"}; 00164 m2mresourceinstance_stub::value = (uint8_t*)malloc((uint32_t)sizeof(value)); 00165 memset(m2mresourceinstance_stub::value,0,(uint32_t)sizeof(value)); 00166 memcpy(m2mresourceinstance_stub::value,value,sizeof(value)); 00167 m2mresourceinstance_stub::int_value = (uint32_t)sizeof(value); 00168 00169 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name", "name", M2MResourceInstance::STRING, M2MBase::Dynamic); 00170 00171 CHECK(server->resource_value_int(M2MServer::ShortServerID) == 10); 00172 CHECK(server->resource_value_int(M2MServer::DefaultMinPeriod) == 10); 00173 CHECK(server->resource_value_int(M2MServer::DefaultMaxPeriod) == 10); 00174 CHECK(server->resource_value_int(M2MServer::DisableTimeout) == 10); 00175 CHECK(server->resource_value_int(M2MServer::NotificationStorage) == 10); 00176 CHECK(server->resource_value_int(M2MServer::Lifetime) == 10); 00177 CHECK(server->resource_value_int(M2MServer::Binding) == 0); 00178 CHECK(server->resource_value_int(M2MServer::RegistrationUpdate) == 0); 00179 CHECK(server->resource_value_int(M2MServer::Disable) == 0); 00180 00181 delete m2mobjectinstance_stub::resource; 00182 m2mobjectinstance_stub::resource = NULL; 00183 00184 free(m2mresourceinstance_stub::value); 00185 m2mresourceinstance_stub::value = NULL; 00186 } 00187 00188 void Test_M2MServer::test_resource_value_string() 00189 { 00190 String test = "string"; 00191 uint8_t value[] = {"string"}; 00192 00193 m2mresourceinstance_stub::value = (uint8_t*)malloc((uint32_t)sizeof(value)); 00194 memset(m2mresourceinstance_stub::value,0,(uint32_t)sizeof(value)); 00195 memcpy(m2mresourceinstance_stub::value,value,sizeof(value)); 00196 m2mresourceinstance_stub::int_value = (uint32_t)sizeof(value); 00197 00198 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name", "name", M2MResourceInstance::STRING, M2MBase::Dynamic); 00199 00200 CHECK(server->resource_value_string(M2MServer::Binding) == test); 00201 00202 CHECK(server->resource_value_string(M2MServer::Disable) == ""); 00203 CHECK(server->resource_value_string(M2MServer::RegistrationUpdate) == ""); 00204 CHECK(server->resource_value_string(M2MServer::Lifetime) == ""); 00205 CHECK(server->resource_value_string(M2MServer::NotificationStorage) == ""); 00206 CHECK(server->resource_value_string(M2MServer::DisableTimeout) == ""); 00207 CHECK(server->resource_value_string(M2MServer::DefaultMaxPeriod) == ""); 00208 CHECK(server->resource_value_string(M2MServer::DefaultMinPeriod) == ""); 00209 CHECK(server->resource_value_string(M2MServer::ShortServerID) == ""); 00210 00211 delete m2mobjectinstance_stub::resource; 00212 m2mobjectinstance_stub::resource = NULL; 00213 00214 free(m2mresourceinstance_stub::value); 00215 m2mresourceinstance_stub::value = NULL; 00216 } 00217 00218 void Test_M2MServer::test_is_resource_present() 00219 { 00220 m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic); 00221 00222 CHECK(server->is_resource_present(M2MServer::ShortServerID) == true); 00223 00224 delete m2mobjectinstance_stub::resource; 00225 m2mobjectinstance_stub::resource = NULL; 00226 00227 CHECK(server->is_resource_present(M2MServer::DefaultMinPeriod) == false); 00228 } 00229 00230 void Test_M2MServer::test_total_resource_count() 00231 { 00232 M2MResource *res = new M2MResource(*m2mobject_stub::inst,"test","test",M2MResourceInstance::STRING,M2MBase::Dynamic); 00233 00234 m2mobjectinstance_stub::resource_list.push_back(res); 00235 M2MResource *res2 = new M2MResource(*m2mobject_stub::inst,"test","test",M2MResourceInstance::STRING,M2MBase::Dynamic); 00236 00237 m2mobjectinstance_stub::resource_list.push_back(res2); 00238 00239 CHECK(server->total_resource_count() == 2); 00240 00241 m2mobjectinstance_stub::resource_list.clear(); 00242 00243 delete res2; 00244 delete res; 00245 }
Generated on Tue Jul 12 2022 12:28:54 by
