joey shelton / LED_Demo

Dependencies:   MAX44000 PWM_Tone_Library nexpaq_mdk

Fork of LED_Demo by Maxim nexpaq

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers test_m2mserver.cpp Source File

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 }