Ram Gandikota
/
metronome
FRDM K64F Metronome
Diff: mbed-client/test/mbedclient/utest/m2mtlvdeserializer/test_m2mtlvserializer.cpp
- Revision:
- 0:a2cb7295a1f7
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mbed-client/test/mbedclient/utest/m2mtlvdeserializer/test_m2mtlvserializer.cpp Sun May 14 18:35:07 2017 +0000 @@ -0,0 +1,309 @@ +/* + * Copyright (c) 2015 ARM Limited. All rights reserved. + * SPDX-License-Identifier: Apache-2.0 + * Licensed under the Apache License, Version 2.0 (the License); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an AS IS BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include "CppUTest/TestHarness.h" +#include "test_m2mtlvserializer.h" +#include "m2mobject_stub.h" +#include "m2mobjectinstance_stub.h" +#include "m2mresource_stub.h" +#include "m2mresourceinstance_stub.h" +#include "m2mbase_stub.h" + + +Test_M2MTLVSerializer::Test_M2MTLVSerializer() +{ + serializer = new M2MTLVSerializer(); +} + +Test_M2MTLVSerializer::~Test_M2MTLVSerializer() +{ + delete serializer; +} + +void Test_M2MTLVSerializer::test_serialize_object() +{ + uint32_t size = 0; + uint8_t *data = 0; + + M2MObject *object = new M2MObject("1", "1"); + M2MObjectInstance* instance = new M2MObjectInstance(*object,"1", "type", "1"); + + m2mobject_stub::instance_list.push_back(instance); + + + + M2MResource* resource = new M2MResource(*instance, + "1", + "type", + M2MResourceInstance::INTEGER, + false, + "1"); + + + m2mobjectinstance_stub::resource_list.push_back(resource); + + m2mbase_stub::name_id_value = 0; + data = serializer->serialize( m2mobject_stub::instance_list,size); + CHECK(data != NULL); + + if(data) { + free(data); + data = 0; + } + + M2MResourceInstance* res_instance = new M2MResourceInstance(*m2mobjectinstance_stub::resource, + "1", + "type", + M2MResourceInstance::STRING, + 0, + "1", + false); + + M2MResourceInstance* res_instance_1 = new M2MResourceInstance(*m2mobjectinstance_stub::resource, + "2", + "type", + M2MResourceInstance::STRING, + 0, + "2", + false); + + + m2mresource_stub::bool_value = true; + m2mresource_stub::list.push_back(res_instance); + m2mresource_stub::list.push_back(res_instance_1); + data = serializer->serialize( m2mobject_stub::instance_list,size); + CHECK(data != NULL); + + if(data) { + free(data); + data = 0; + } + + m2mbase_stub::name_id_value = 256; + + m2mresourceinstance_stub::int_value = 6; + m2mresourceinstance_stub::value = (uint8_t*) malloc(m2mresourceinstance_stub::int_value); + data = serializer->serialize( m2mobject_stub::instance_list,size); + CHECK(data != NULL); + + if(data) { + free(data); + data = 0; + } + free(m2mresourceinstance_stub::value); + m2mresourceinstance_stub::value = NULL; + + m2mresourceinstance_stub::int_value = 256; + m2mresourceinstance_stub::value = (uint8_t*) malloc(m2mresourceinstance_stub::int_value); + data = serializer->serialize( m2mobject_stub::instance_list,size); + CHECK(data != NULL); + + if(data) { + free(data); + data = 0; + } + free(m2mresourceinstance_stub::value); + m2mresourceinstance_stub::value = NULL; + + m2mresourceinstance_stub::int_value = 65536; + m2mresourceinstance_stub::value = (uint8_t*) malloc(m2mresourceinstance_stub::int_value); + data = serializer->serialize( m2mobject_stub::instance_list,size); + CHECK(data != NULL); + + if(data) { + free(data); + data = 0; + } + + m2mbase_stub::name_id_value = -1; + data = serializer->serialize( m2mobject_stub::instance_list,size); + CHECK(data == NULL); + + delete res_instance_1; + delete res_instance; + delete resource; + delete instance; + delete object; + + free(m2mresourceinstance_stub::value); + + m2mresourceinstance_stub::clear(); + m2mresource_stub::clear(); + m2mobjectinstance_stub::clear(); + m2mobject_stub::clear(); +} + +void Test_M2MTLVSerializer::test_serialize_object_instance() +{ + M2MObject *object = new M2MObject("1", "1"); + M2MObjectInstance* instance = new M2MObjectInstance(*object,"1","type", "1"); + + uint32_t size = 0; + uint8_t *data = 0; + m2mbase_stub::name_id_value = 0; + M2MResource* resource = new M2MResource(*instance, + "1", + "type", + M2MResourceInstance::STRING, + false, + "1"); + + M2MResourceInstance* res_instance = new M2MResourceInstance(*resource, + "1", + "type", + M2MResourceInstance::STRING, + 0, + "1", + false); + + m2mobjectinstance_stub::resource_list.clear(); + m2mobjectinstance_stub::resource_list.push_back(resource); + + m2mresource_stub::bool_value = true; + m2mresource_stub::list.push_back(res_instance); + + m2mbase_stub::operation = M2MBase::GET_ALLOWED; + + data = serializer->serialize( m2mobjectinstance_stub::resource_list,size); + CHECK(data != NULL); + + if(data) { + free(data); + data = NULL; + } + + + m2mbase_stub::name_id_value = -1; + data = serializer->serialize( m2mobject_stub::instance_list,size); + CHECK(data == NULL); + + delete res_instance; + delete resource; + delete instance; + delete object; + + m2mresource_stub::clear(); + m2mobjectinstance_stub::clear(); + m2mobject_stub::clear(); +} + +void Test_M2MTLVSerializer::test_serialize_resource() +{ + M2MObject *object = new M2MObject("1","1"); + M2MObjectInstance* instance =new M2MObjectInstance(*object,"1","type", "1"); + + uint32_t size = 0; + uint8_t *data = 0; + m2mbase_stub::name_id_value = 0; + M2MResource* resource = new M2MResource(*instance, + "1", + "type", + M2MResourceInstance::INTEGER, + false, + "1"); + + M2MResourceInstance* res_instance = new M2MResourceInstance(*resource, + "1", + "type", + M2MResourceInstance::INTEGER, + 0, + "1", + false); + + + m2mobjectinstance_stub::resource_list.clear(); + m2mobjectinstance_stub::resource_list.push_back(resource); + + m2mresource_stub::bool_value = true; + m2mresource_stub::list.push_back(res_instance); + + m2mbase_stub::operation = M2MBase::GET_ALLOWED; + + data = serializer->serialize( resource,size); + CHECK(data != NULL); + + if(data) { + free(data); + data = NULL; + } + + m2mbase_stub::name_id_value = -1; + data = serializer->serialize( m2mobject_stub::instance_list,size); + CHECK(data == NULL); + + delete res_instance; + delete resource; + delete instance; + delete object; + + m2mresource_stub::clear(); + m2mobjectinstance_stub::clear(); + m2mobject_stub::clear(); +} + +void Test_M2MTLVSerializer::test_serialize_resource_instance() +{ + M2MObject *object = new M2MObject("1","1"); + M2MObjectInstance* instance = new M2MObjectInstance(*object,"1","type", "1"); + + uint32_t size = 0; + uint8_t *data = 0; + m2mbase_stub::name_id_value = 0; + M2MResource* resource = new M2MResource(*instance, + "1", + "type", + M2MResourceInstance::INTEGER, + false, + "1"); + + M2MResourceInstance* res_instance = new M2MResourceInstance(*resource, + "1", + "type", + M2MResourceInstance::INTEGER, + 0, + "1", + false); + + + m2mobjectinstance_stub::resource_list.clear(); + m2mobjectinstance_stub::resource_list.push_back(resource); + + m2mresource_stub::bool_value = true; + m2mresource_stub::list.push_back(res_instance); + + m2mbase_stub::operation = M2MBase::GET_ALLOWED; + + data = serializer->serialize( m2mobjectinstance_stub::resource_list,size); + CHECK(data != NULL); + + if(data) { + free(data); + data = NULL; + } + + + m2mbase_stub::name_id_value = -1; + data = serializer->serialize( m2mobject_stub::instance_list,size); + CHECK(data == NULL); + + delete res_instance; + delete resource; + delete instance; + delete object; + + m2mresource_stub::clear(); + m2mobjectinstance_stub::clear(); + m2mobject_stub::clear(); +}