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_m2mdevice.cpp Source File

test_m2mdevice.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_m2mdevice.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 
00039 Test_M2MDevice::Test_M2MDevice()
00040 {
00041     callback = new Callback();
00042     m2mobject_stub::inst = new M2MObjectInstance("name",*callback);
00043     m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic);
00044     m2mobjectinstance_stub::create_resource_instance= new M2MResourceInstance("name","type",M2MResourceInstance::STRING,*m2mobject_stub::inst);
00045     m2mresource_stub::bool_value = true;
00046     m2mobjectinstance_stub::create_resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic);
00047     device = M2MDevice::get_instance();
00048 
00049     delete m2mobjectinstance_stub::create_resource;
00050     m2mobjectinstance_stub::create_resource = NULL;
00051 
00052     delete m2mobjectinstance_stub::resource;
00053     m2mobjectinstance_stub::resource = NULL;
00054 
00055     delete m2mobjectinstance_stub::create_resource_instance;
00056     m2mobjectinstance_stub::create_resource_instance = NULL;
00057 }
00058 
00059 Test_M2MDevice::~Test_M2MDevice()
00060 {
00061     delete m2mobject_stub::inst;
00062     m2mobject_stub::inst = NULL;
00063 
00064     M2MDevice::delete_instance();
00065     device = NULL;
00066     delete callback;
00067 }
00068 
00069 void Test_M2MDevice::test_create_resource_instance()
00070 {
00071     m2mobjectinstance_stub::create_resource_instance = new M2MResourceInstance("name","type",M2MResourceInstance::INTEGER,*m2mobject_stub::inst);
00072 
00073     m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic);
00074 
00075     CHECK(device->create_resource_instance(M2MDevice::ErrorCode,5,1) != NULL);
00076     CHECK(device->create_resource_instance(M2MDevice::ErrorCode,-1,1) == NULL);
00077     CHECK(device->create_resource_instance(M2MDevice::ErrorCode,9,1) == NULL);
00078 
00079     m2mbase_stub::void_value = malloc(20);
00080 
00081     CHECK(device->create_resource_instance(M2MDevice::AvailablePowerSources,-1,0) == NULL);
00082     CHECK(device->create_resource_instance(M2MDevice::AvailablePowerSources,8,0) == NULL);
00083     CHECK(device->create_resource_instance(M2MDevice::AvailablePowerSources,7,0) != NULL);
00084     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00085 
00086     CHECK(device->create_resource_instance(M2MDevice::PowerSourceVoltage,10,0) != NULL);
00087     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00088 
00089     CHECK(device->create_resource_instance(M2MDevice::PowerSourceCurrent,10,0) != NULL);
00090     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00091 
00092     free(m2mbase_stub::void_value);
00093     delete m2mobjectinstance_stub::create_resource_instance;
00094     m2mobjectinstance_stub::create_resource_instance = NULL;
00095 
00096     delete m2mobjectinstance_stub::resource;
00097     m2mobjectinstance_stub::resource  = NULL;
00098 }
00099 
00100 void Test_M2MDevice::test_create_resource_string()
00101 {
00102     m2mresourceinstance_stub::value = NULL;
00103     CHECK(device->create_resource(M2MDevice::Reboot,"test") == NULL);
00104     CHECK(device->create_resource(M2MDevice::ErrorCode,"test") == NULL);
00105     CHECK(device->create_resource(M2MDevice::SupportedBindingMode,"test") == NULL);
00106     // Length 65, should fail
00107     String max_lenght = "65656565656565656565656565656565656565656565656565656565656565656";
00108 
00109     m2mobjectinstance_stub::create_resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic);
00110 
00111     CHECK(device->create_resource(M2MDevice::Manufacturer,"test") != NULL);
00112     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00113 
00114     CHECK(device->create_resource(M2MDevice::Manufacturer,max_lenght) == NULL);
00115     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00116 
00117     m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic);
00118     m2mresource_stub::bool_value = false;
00119     //Duplicate resource
00120     CHECK(device->create_resource(M2MDevice::Manufacturer,"test") == NULL);
00121 
00122     delete m2mobjectinstance_stub::resource;
00123     m2mobjectinstance_stub::resource = NULL;
00124 
00125     CHECK(device->create_resource(M2MDevice::DeviceType,"test") != NULL);
00126     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00127     CHECK(device->create_resource(M2MDevice::DeviceType,"") != NULL);
00128     CHECK(device->create_resource(M2MDevice::DeviceType,max_lenght) == NULL);
00129 
00130     CHECK(device->create_resource(M2MDevice::ModelNumber,"test") != NULL);
00131     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00132     CHECK(device->create_resource(M2MDevice::ModelNumber,max_lenght) == NULL);
00133 
00134 
00135     CHECK(device->create_resource(M2MDevice::SerialNumber,"test") != NULL);
00136     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00137     CHECK(device->create_resource(M2MDevice::SerialNumber,max_lenght) == NULL);
00138 
00139 
00140     CHECK(device->create_resource(M2MDevice::HardwareVersion,"test") != NULL);
00141     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00142     CHECK(device->create_resource(M2MDevice::HardwareVersion,max_lenght) == NULL);
00143 
00144 
00145     CHECK(device->create_resource(M2MDevice::FirmwareVersion,"test") != NULL);
00146     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00147     CHECK(device->create_resource(M2MDevice::FirmwareVersion,max_lenght) == NULL);
00148 
00149 
00150     CHECK(device->create_resource(M2MDevice::SoftwareVersion,"test") != NULL);
00151     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00152     CHECK(device->create_resource(M2MDevice::SoftwareVersion,max_lenght) == NULL);
00153 
00154 
00155     CHECK(device->create_resource(M2MDevice::UTCOffset,"test") != NULL);
00156     CHECK(M2MBase::GET_PUT_ALLOWED == m2mbase_stub::operation);
00157     CHECK(device->create_resource(M2MDevice::UTCOffset,max_lenght) == NULL);
00158 
00159 
00160     CHECK(device->create_resource(M2MDevice::Timezone,"test") != NULL);
00161     CHECK(M2MBase::GET_PUT_ALLOWED == m2mbase_stub::operation);
00162     CHECK(device->create_resource(M2MDevice::Timezone,max_lenght) == NULL);
00163 
00164     CHECK(device->create_resource(M2MDevice::BatteryLevel,"test") == NULL);
00165     CHECK(device->create_resource(M2MDevice::BatteryStatus,"test") == NULL);
00166     CHECK(device->create_resource(M2MDevice::MemoryFree,"test") == NULL);
00167     CHECK(device->create_resource(M2MDevice::MemoryTotal,"test") == NULL);
00168     CHECK(device->create_resource(M2MDevice::ResetErrorCode,"test") == NULL);
00169     CHECK(device->create_resource(M2MDevice::CurrentTime,"test") == NULL);
00170     CHECK(device->create_resource(M2MDevice::AvailablePowerSources,"test") == NULL);
00171     CHECK(device->create_resource(M2MDevice::PowerSourceVoltage,"test") == NULL);
00172     CHECK(device->create_resource(M2MDevice::PowerSourceCurrent,"test") == NULL);
00173     CHECK(device->create_resource(M2MDevice::FactoryReset,"test") == NULL);
00174 
00175     delete m2mobjectinstance_stub::create_resource;
00176     m2mobjectinstance_stub::create_resource = NULL;
00177 }
00178 
00179 void Test_M2MDevice::test_create_resource_int()
00180 {
00181     m2mobjectinstance_stub::create_resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::INTEGER,M2MBase::Dynamic);
00182 
00183     CHECK(device->create_resource(M2MDevice::Reboot,10) == NULL);
00184     CHECK(device->create_resource(M2MDevice::SupportedBindingMode,10) == NULL);
00185 
00186     CHECK(device->create_resource(M2MDevice::Manufacturer,10) == NULL);
00187     CHECK(device->create_resource(M2MDevice::DeviceType,10) == NULL);
00188     CHECK(device->create_resource(M2MDevice::ModelNumber,10) == NULL);
00189     CHECK(device->create_resource(M2MDevice::SerialNumber,10) == NULL);
00190     CHECK(device->create_resource(M2MDevice::HardwareVersion,10) == NULL);
00191     CHECK(device->create_resource(M2MDevice::FirmwareVersion,10) == NULL);
00192     CHECK(device->create_resource(M2MDevice::SoftwareVersion,10) == NULL);
00193     CHECK(device->create_resource(M2MDevice::UTCOffset,10) == NULL);
00194     CHECK(device->create_resource(M2MDevice::Timezone,10) == NULL);
00195     CHECK(device->create_resource(M2MDevice::FactoryReset,10) == NULL);
00196 
00197     m2mbase_stub::void_value = malloc(20);
00198 
00199     CHECK(device->create_resource(M2MDevice::BatteryLevel,10) != NULL);
00200     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00201 
00202     // Range is above 100
00203     CHECK(device->create_resource(M2MDevice::BatteryLevel,101) == NULL);
00204 
00205     CHECK(device->create_resource(M2MDevice::BatteryStatus,4) != NULL);
00206     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00207 
00208     // Range is above 6
00209     CHECK(device->create_resource(M2MDevice::BatteryStatus,10) == NULL);
00210 
00211     CHECK(device->create_resource(M2MDevice::MemoryFree,10) != NULL);
00212     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00213 
00214     CHECK(device->create_resource(M2MDevice::MemoryTotal,10) != NULL);
00215     CHECK(M2MBase::GET_ALLOWED == m2mbase_stub::operation);
00216 
00217     CHECK(device->create_resource(M2MDevice::CurrentTime,10) != NULL);
00218     CHECK(M2MBase::GET_PUT_ALLOWED == m2mbase_stub::operation);
00219 
00220     free(m2mbase_stub::void_value);
00221     delete m2mobjectinstance_stub::create_resource;
00222     m2mobjectinstance_stub::create_resource = NULL;
00223 }
00224 
00225 void Test_M2MDevice::test_create_resource_no_param()
00226 {
00227     m2mobjectinstance_stub::create_resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic);
00228 
00229 
00230     CHECK(device->create_resource(M2MDevice::Reboot) == NULL);
00231     CHECK(device->create_resource(M2MDevice::ErrorCode) == NULL);
00232     CHECK(device->create_resource(M2MDevice::SupportedBindingMode) == NULL);
00233 
00234     CHECK(device->create_resource(M2MDevice::Manufacturer) == NULL);
00235     CHECK(device->create_resource(M2MDevice::DeviceType) == NULL);
00236     CHECK(device->create_resource(M2MDevice::ModelNumber) == NULL);
00237     CHECK(device->create_resource(M2MDevice::SerialNumber) == NULL);
00238     CHECK(device->create_resource(M2MDevice::HardwareVersion) == NULL);
00239     CHECK(device->create_resource(M2MDevice::FirmwareVersion) == NULL);
00240     CHECK(device->create_resource(M2MDevice::SoftwareVersion) == NULL);
00241     CHECK(device->create_resource(M2MDevice::UTCOffset) == NULL);
00242     CHECK(device->create_resource(M2MDevice::Timezone) == NULL);
00243 
00244     CHECK(device->create_resource(M2MDevice::BatteryLevel) == NULL);
00245     CHECK(device->create_resource(M2MDevice::BatteryStatus) == NULL);
00246     CHECK(device->create_resource(M2MDevice::MemoryFree) == NULL);
00247     CHECK(device->create_resource(M2MDevice::MemoryTotal) == NULL);
00248     CHECK(device->create_resource(M2MDevice::CurrentTime) == NULL);
00249     CHECK(device->create_resource(M2MDevice::AvailablePowerSources) == NULL);
00250     CHECK(device->create_resource(M2MDevice::PowerSourceVoltage) == NULL);
00251     CHECK(device->create_resource(M2MDevice::PowerSourceCurrent) == NULL);
00252 
00253     m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic);
00254 
00255     CHECK(device->create_resource(M2MDevice::ResetErrorCode) != NULL);
00256 
00257     CHECK(device->create_resource(M2MDevice::FactoryReset) != NULL);
00258 
00259     delete m2mobjectinstance_stub::resource;
00260     m2mobjectinstance_stub::resource = NULL;
00261 
00262     CHECK(M2MBase::POST_ALLOWED == m2mbase_stub::operation);
00263 
00264     delete m2mobjectinstance_stub::create_resource;
00265     m2mobjectinstance_stub::create_resource = NULL;
00266 
00267 
00268 }
00269 
00270 void Test_M2MDevice::test_delete_resource()
00271 {
00272     m2mobjectinstance_stub::bool_value = true;
00273 
00274     CHECK(device->delete_resource(M2MDevice::Reboot) == false);
00275     CHECK(device->delete_resource(M2MDevice::ErrorCode) == false);
00276     CHECK(device->delete_resource(M2MDevice::SupportedBindingMode) == false);
00277 
00278     CHECK(device->delete_resource(M2MDevice::Manufacturer) == true);
00279     CHECK(device->delete_resource(M2MDevice::BatteryLevel) == true);
00280     CHECK(device->delete_resource(M2MDevice::FactoryReset) == true);
00281 }
00282 
00283 void Test_M2MDevice::test_delete_resource_instance()
00284 {
00285     m2mobjectinstance_stub::bool_value = true;
00286 
00287     CHECK(device->delete_resource_instance(M2MDevice::Reboot,0) == false);
00288     CHECK(device->delete_resource_instance(M2MDevice::ErrorCode,0) == false);
00289     CHECK(device->delete_resource_instance(M2MDevice::SupportedBindingMode,0) == false);
00290 
00291     CHECK(device->delete_resource_instance(M2MDevice::AvailablePowerSources,0) == true);
00292     CHECK(device->delete_resource_instance(M2MDevice::PowerSourceVoltage,0) == true);
00293     CHECK(device->delete_resource_instance(M2MDevice::PowerSourceCurrent,0) == true);
00294 }
00295 
00296 void Test_M2MDevice::test_set_resource_value_string()
00297 {
00298     // Length 65, should fail
00299     m2mresourceinstance_stub::value = NULL;
00300     String max_lenght = "65656565656565656565656565656565656565656565656565656565656565656";
00301     m2mbase_stub::bool_value = true;
00302     m2mresourceinstance_stub::bool_value = true;
00303 
00304     m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic);
00305     m2mresource_stub::bool_value = false;
00306 
00307     m2mbase_stub::void_value = malloc(20);
00308 
00309     CHECK(device->set_resource_value(M2MDevice::Reboot,"test") == false);
00310     CHECK(device->set_resource_value(M2MDevice::ErrorCode,"test") == false);
00311     CHECK(device->set_resource_value(M2MDevice::SupportedBindingMode,"test") == false);
00312 
00313     CHECK(device->set_resource_value(M2MDevice::Manufacturer,"test") == true);
00314     CHECK(device->set_resource_value(M2MDevice::Manufacturer,"") == true);
00315     CHECK(device->set_resource_value(M2MDevice::Manufacturer,max_lenght) == false);
00316     CHECK(device->set_resource_value(M2MDevice::DeviceType,"test") == true);
00317     CHECK(device->set_resource_value(M2MDevice::DeviceType,max_lenght) == false);
00318     CHECK(device->set_resource_value(M2MDevice::ModelNumber,"test") == true);
00319     CHECK(device->set_resource_value(M2MDevice::ModelNumber,max_lenght) == false);
00320     CHECK(device->set_resource_value(M2MDevice::SerialNumber,"test") == true);
00321     CHECK(device->set_resource_value(M2MDevice::SerialNumber,max_lenght) == false);
00322     CHECK(device->set_resource_value(M2MDevice::HardwareVersion,"test") == true);
00323     CHECK(device->set_resource_value(M2MDevice::HardwareVersion,max_lenght) == false);
00324     CHECK(device->set_resource_value(M2MDevice::FirmwareVersion,"test") == true);
00325     CHECK(device->set_resource_value(M2MDevice::FirmwareVersion,max_lenght) == false);
00326     CHECK(device->set_resource_value(M2MDevice::SoftwareVersion,"test") == true);
00327     CHECK(device->set_resource_value(M2MDevice::SoftwareVersion,max_lenght) == false);
00328     CHECK(device->set_resource_value(M2MDevice::UTCOffset,"test") == true);
00329     CHECK(device->set_resource_value(M2MDevice::UTCOffset,max_lenght) == false);
00330     CHECK(device->set_resource_value(M2MDevice::Timezone,"test") == true);
00331     CHECK(device->set_resource_value(M2MDevice::Timezone,max_lenght) == false);
00332     CHECK(device->set_resource_value(M2MDevice::Timezone,"") == true);
00333 
00334     CHECK(device->set_resource_value(M2MDevice::BatteryLevel,"test") == false);
00335     CHECK(device->set_resource_value(M2MDevice::BatteryStatus,"test") == false);
00336     CHECK(device->set_resource_value(M2MDevice::MemoryFree,"test") == false);
00337     CHECK(device->set_resource_value(M2MDevice::MemoryTotal,"test") == false);
00338     CHECK(device->set_resource_value(M2MDevice::ResetErrorCode,"test") == false);
00339     CHECK(device->set_resource_value(M2MDevice::CurrentTime,"test") == false);
00340     CHECK(device->set_resource_value(M2MDevice::AvailablePowerSources,"test") == false);
00341     CHECK(device->set_resource_value(M2MDevice::PowerSourceVoltage,"test") == false);
00342     CHECK(device->set_resource_value(M2MDevice::PowerSourceCurrent,"test") == false);
00343     CHECK(device->set_resource_value(M2MDevice::FactoryReset,"test") == false);
00344 
00345     free(m2mbase_stub::void_value);
00346     delete m2mobjectinstance_stub::resource;
00347     m2mobjectinstance_stub::resource = NULL;
00348 }
00349 
00350 void Test_M2MDevice::test_set_resource_value_int()
00351 {
00352     m2mresourceinstance_stub::bool_value = true;
00353 
00354     m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::INTEGER,M2MBase::Dynamic);
00355     m2mresource_stub::bool_value = false;
00356 
00357     m2mbase_stub::void_value = malloc(20);
00358 
00359     CHECK(device->set_resource_value(M2MDevice::Reboot,10) == false);
00360     CHECK(device->set_resource_value(M2MDevice::SupportedBindingMode,10) == false);
00361 
00362     CHECK(device->set_resource_value(M2MDevice::Manufacturer,10) == false);
00363     CHECK(device->set_resource_value(M2MDevice::DeviceType,10) == false);
00364     CHECK(device->set_resource_value(M2MDevice::ModelNumber,10) == false);
00365     CHECK(device->set_resource_value(M2MDevice::SerialNumber,10) == false);
00366     CHECK(device->set_resource_value(M2MDevice::HardwareVersion,10) == false);
00367     CHECK(device->set_resource_value(M2MDevice::FirmwareVersion,10) == false);
00368     CHECK(device->set_resource_value(M2MDevice::SoftwareVersion,10) == false);
00369     CHECK(device->set_resource_value(M2MDevice::UTCOffset,10) == false);
00370     CHECK(device->set_resource_value(M2MDevice::Timezone,10) == false);
00371 
00372     CHECK(device->set_resource_value(M2MDevice::BatteryLevel,-1) == false);
00373     CHECK(device->set_resource_value(M2MDevice::BatteryLevel,10) == true);
00374     CHECK(device->set_resource_value(M2MDevice::BatteryLevel,101) == false);
00375     CHECK(device->set_resource_value(M2MDevice::BatteryStatus,6) == true);
00376     CHECK(device->set_resource_value(M2MDevice::BatteryStatus,-1) == false);
00377     CHECK(device->set_resource_value(M2MDevice::BatteryStatus,7) == false);
00378     CHECK(device->set_resource_value(M2MDevice::MemoryFree,10) == true);
00379     CHECK(device->set_resource_value(M2MDevice::MemoryTotal,10) == true);
00380     CHECK(device->set_resource_value(M2MDevice::CurrentTime,10) == true);
00381     CHECK(device->set_resource_value(M2MDevice::FactoryReset,10) == false);
00382 
00383     free(m2mbase_stub::void_value);
00384     delete m2mobjectinstance_stub::resource;
00385     m2mobjectinstance_stub::resource = NULL;
00386 }
00387 
00388 void Test_M2MDevice::test_resource_value_int()
00389 {
00390     uint8_t value[] = {"10"};
00391     uint8_t* ptr = (uint8_t*)malloc((uint32_t)sizeof(value));
00392     m2mresourceinstance_stub::value = ptr;
00393     memset(m2mresourceinstance_stub::value,0,(uint32_t)sizeof(value));
00394     memcpy(m2mresourceinstance_stub::value,value,sizeof(value));
00395     m2mresourceinstance_stub::int_value = (uint32_t)sizeof(value);
00396 
00397     m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::INTEGER,M2MBase::Dynamic);
00398 
00399     m2mresourceinstance_stub::bool_value = true;
00400     m2mresource_stub::bool_value = false;
00401     m2mbase_stub::void_value = malloc(20);
00402 
00403     CHECK(device->resource_value_int(M2MDevice::BatteryLevel) == 10);
00404     CHECK(device->resource_value_int(M2MDevice::BatteryStatus) == 10);
00405     CHECK(device->resource_value_int(M2MDevice::MemoryFree) == 10);
00406     CHECK(device->resource_value_int(M2MDevice::MemoryTotal) == 10);
00407     CHECK(device->resource_value_int(M2MDevice::ErrorCode) == 10);
00408     CHECK(device->resource_value_int(M2MDevice::CurrentTime) == 10);
00409     CHECK(device->resource_value_int(M2MDevice::AvailablePowerSources) == 10);
00410     CHECK(device->resource_value_int(M2MDevice::PowerSourceVoltage) == 10);
00411     CHECK(device->resource_value_int(M2MDevice::PowerSourceCurrent) == 10);
00412     CHECK(device->resource_value_int(M2MDevice::Manufacturer) == -1);
00413 
00414     m2mresource_stub::instance = new M2MResourceInstance("name","type",M2MResourceInstance::INTEGER,*m2mobject_stub::inst);
00415     m2mresource_stub::bool_value = true;
00416     CHECK(device->resource_value_int(M2MDevice::AvailablePowerSources,1) == 10);
00417 
00418     free(m2mbase_stub::void_value);
00419 
00420     delete m2mresource_stub::instance;
00421     m2mresource_stub::instance = NULL;
00422 
00423     delete m2mobjectinstance_stub::resource;
00424     m2mobjectinstance_stub::resource = NULL;
00425 
00426     free(ptr);
00427 }
00428 
00429 void Test_M2MDevice::test_resource_value_string()
00430 {
00431     String test = "string";
00432     uint8_t value[] = {"string"};
00433     m2mresourceinstance_stub::value = (uint8_t*)malloc((uint32_t)sizeof(value));
00434     memset(m2mresourceinstance_stub::value,0,(uint32_t)sizeof(value));
00435     memcpy(m2mresourceinstance_stub::value,value,sizeof(value));
00436     m2mresourceinstance_stub::int_value = (uint32_t)sizeof(value);
00437 
00438     m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic);
00439 
00440     m2mresourceinstance_stub::bool_value = true;
00441     m2mresource_stub::bool_value = false;
00442     m2mbase_stub::void_value = malloc(20);
00443 
00444     CHECK(device->resource_value_string(M2MDevice::Manufacturer) == test);
00445     CHECK(device->resource_value_string(M2MDevice::DeviceType) == test);
00446     CHECK(device->resource_value_string(M2MDevice::ModelNumber) == test);
00447     CHECK(device->resource_value_string(M2MDevice::SerialNumber) == test);
00448     CHECK(device->resource_value_string(M2MDevice::HardwareVersion) == test);
00449     CHECK(device->resource_value_string(M2MDevice::FirmwareVersion) == test);
00450     CHECK(device->resource_value_string(M2MDevice::SoftwareVersion) == test);
00451     CHECK(device->resource_value_string(M2MDevice::UTCOffset) == test);
00452     CHECK(device->resource_value_string(M2MDevice::Timezone) == test);
00453     CHECK(device->resource_value_string(M2MDevice::BatteryLevel) == "");
00454 
00455     free(m2mbase_stub::void_value);
00456 
00457     delete m2mobjectinstance_stub::resource;
00458     m2mobjectinstance_stub::resource = NULL;
00459 
00460     free(m2mresourceinstance_stub::value);
00461     m2mresourceinstance_stub::value = NULL;
00462 }
00463 
00464 void Test_M2MDevice::test_is_resource_present()
00465 {
00466     m2mobjectinstance_stub::resource = new M2MResource(*m2mobject_stub::inst,"name","type",M2MResourceInstance::STRING,M2MBase::Dynamic);
00467     m2mresource_stub::bool_value = false;
00468     CHECK(device->is_resource_present(M2MDevice::Reboot) == true);
00469 
00470     delete m2mobjectinstance_stub::resource;
00471     m2mobjectinstance_stub::resource = NULL;
00472 
00473     CHECK(device->is_resource_present(M2MDevice::Manufacturer) == false);
00474     CHECK(device->is_resource_present(M2MDevice::DeviceType) == false);
00475 }
00476 
00477 void Test_M2MDevice::test_per_resource_count()
00478 {
00479     m2mobjectinstance_stub::int_value = 1;
00480     CHECK(device->per_resource_count(M2MDevice::Reboot) == 1);
00481 
00482     m2mobjectinstance_stub::int_value = 0;
00483 
00484     CHECK(device->per_resource_count(M2MDevice::Manufacturer) == 0);
00485 }
00486 
00487 void Test_M2MDevice::test_total_resource_count()
00488 {
00489     M2MResource res(*m2mobject_stub::inst,"test","test",M2MResourceInstance::STRING,M2MBase::Dynamic);
00490 
00491     m2mobjectinstance_stub::resource_list.push_back(&res);
00492     M2MResource res2(*m2mobject_stub::inst,"test","test",M2MResourceInstance::STRING,M2MBase::Dynamic);
00493 
00494     m2mobjectinstance_stub::resource_list.push_back(&res2);
00495 
00496     CHECK(device->total_resource_count() == 2);
00497 
00498     m2mobjectinstance_stub::resource_list.clear();
00499 }
00500