diff options
author | iAndrew5 <abyzhynar@luxoft.com> | 2015-10-20 18:18:38 +0300 |
---|---|---|
committer | iAndrew5 <abyzhynar@luxoft.com> | 2015-10-20 18:18:38 +0300 |
commit | 790208669af77d4da040922283c2644dfab4f457 (patch) | |
tree | c671d2100f4c4d3358da76e79df5b2780dd7c5cd /src/components/smart_objects/test | |
parent | 13fd07953c463a8d035df130bf1713ee6508d7d8 (diff) | |
download | sdl_core-790208669af77d4da040922283c2644dfab4f457.tar.gz |
Moved, Enabled and partially refactored Unit tests
Diffstat (limited to 'src/components/smart_objects/test')
-rw-r--r-- | src/components/smart_objects/test/CMakeLists.txt | 1 | ||||
-rw-r--r-- | src/components/smart_objects/test/NumberSchemaItem_test.cc | 33 | ||||
-rw-r--r-- | src/components/smart_objects/test/TSharedPtr_test.cc | 203 |
3 files changed, 33 insertions, 204 deletions
diff --git a/src/components/smart_objects/test/CMakeLists.txt b/src/components/smart_objects/test/CMakeLists.txt index 0f47b1c479..e8bc20b6b8 100644 --- a/src/components/smart_objects/test/CMakeLists.txt +++ b/src/components/smart_objects/test/CMakeLists.txt @@ -50,7 +50,6 @@ set(SOURCES ${COMPONENTS_DIR}/smart_objects/test/SmartObjectInvalid_test.cc ${COMPONENTS_DIR}/smart_objects/test/SmartObjectStress_test.cc ${COMPONENTS_DIR}/smart_objects/test/SmartObjectUnit_test.cc - ${COMPONENTS_DIR}/smart_objects/test/TSharedPtr_test.cc ${COMPONENTS_DIR}/smart_objects/test/smart_object_performance_test.cc ${COMPONENTS_DIR}/smart_objects/test/map_performance_test.cc ${COMPONENTS_DIR}/smart_objects/test/BoolSchemaItem_test.cc diff --git a/src/components/smart_objects/test/NumberSchemaItem_test.cc b/src/components/smart_objects/test/NumberSchemaItem_test.cc index 6e372593f9..cc56228694 100644 --- a/src/components/smart_objects/test/NumberSchemaItem_test.cc +++ b/src/components/smart_objects/test/NumberSchemaItem_test.cc @@ -774,6 +774,39 @@ TEST(test_double_array_validate, test_NumberSchemaItemTest) { EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); } + +TEST(test_int_double_value, test_NumberSchemaItemTest) { + using namespace NsSmartDeviceLink::NsSmartObjects; + + ISchemaItemPtr item = TNumberSchemaItem<int>::create( + TSchemaItemParameter<int>(10), + TSchemaItemParameter<int>(100)); // No default value + + SmartObject obj; + const double value = 10.0001; + obj = value; + ASSERT_EQ(value, obj.asDouble()); + + int resultType = item->validate(obj); + EXPECT_EQ(Errors::INVALID_VALUE, resultType); +} + +TEST(test_double_int_value, DISABLED_test_NumberSchemaItemTest) { + using namespace NsSmartDeviceLink::NsSmartObjects; + + ISchemaItemPtr item = TNumberSchemaItem<double>::create( + TSchemaItemParameter<double>(10.0), + TSchemaItemParameter<double>(100.0)); // No default value + + SmartObject obj; + const int value = 99; + obj = value; + ASSERT_EQ(value, obj.asInt()); + + int resultType = item->validate(obj); + EXPECT_EQ(Errors::OK, resultType); +} + } // namespace SchemaItem } // namespace SmartObjects } // namespace components diff --git a/src/components/smart_objects/test/TSharedPtr_test.cc b/src/components/smart_objects/test/TSharedPtr_test.cc deleted file mode 100644 index 3943d2b24b..0000000000 --- a/src/components/smart_objects/test/TSharedPtr_test.cc +++ /dev/null @@ -1,203 +0,0 @@ -/* - * Copyright (c) 2014, Ford Motor Company - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * - * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following - * disclaimer in the documentation and/or other materials provided with the - * distribution. - * - * Neither the name of the Ford Motor Company nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - * POSSIBILITY OF SUCH DAMAGE. - */ - -#include <stdlib.h> -#include <vector> -#include "gmock/gmock.h" -#include "utils/shared_ptr.h" - -namespace test { -namespace components { -namespace utils { -namespace SharedPtrTest { -class CMockObject { - public: - CMockObject(int id); - ~CMockObject(void); - int getId(void) const; - - MOCK_METHOD0(destructor, void ()); - -private: - int mId; -}; - -class CExtendedMockObject : public CMockObject { - public: - CExtendedMockObject(int id); -}; -} // namespace CMockObject -} // namespace SmartObjects -} // namespace components -} // namespace test - -test::components::utils::SharedPtrTest::CMockObject::CMockObject(int id) - : mId(id) { -} - -test::components::utils::SharedPtrTest::CMockObject::~CMockObject(void) { - destructor(); -} - -int test::components::utils::SharedPtrTest::CMockObject::getId(void) const { - return mId; -} - -test::components::utils::SharedPtrTest::CExtendedMockObject::CExtendedMockObject( - int id) - : CMockObject(id) { -} - -typedef utils::SharedPtr<test::components::utils::SharedPtrTest::CMockObject> tMockObjectPtr; -typedef utils::SharedPtr< - test::components::utils::SharedPtrTest::CExtendedMockObject> tExtendedMockObjectPtr; - -TEST(SharedPtrTest, Constructor) { - test::components::utils::SharedPtrTest::CMockObject* object1 = - new test::components::utils::SharedPtrTest::CMockObject(1); - test::components::utils::SharedPtrTest::CMockObject* object2 = - new test::components::utils::SharedPtrTest::CMockObject(2); - - EXPECT_CALL(*object1, destructor()).Times(0); - EXPECT_CALL(*object2, destructor()).Times(0); - - tMockObjectPtr p1(object1); - ASSERT_EQ(1, p1->getId()); - - tMockObjectPtr p2(p1); - ASSERT_EQ(1, p2->getId()); - - tMockObjectPtr p3 = p2; - ASSERT_EQ(1, p3->getId()); - - tMockObjectPtr p4 = object2; - ASSERT_EQ(2, p4->getId()); - - p3 = p4; - ASSERT_EQ(2, p3->getId()); - - EXPECT_CALL(*object1, destructor()); - EXPECT_CALL(*object2, destructor()); -} - -TEST(SharedPtrTest, PointerTypeCast) { - test::components::utils::SharedPtrTest::CExtendedMockObject* object1 = - new test::components::utils::SharedPtrTest::CExtendedMockObject(1); - test::components::utils::SharedPtrTest::CExtendedMockObject* object2 = - new test::components::utils::SharedPtrTest::CExtendedMockObject(2); - - EXPECT_CALL(*object1, destructor()).Times(0); - EXPECT_CALL(*object2, destructor()).Times(0); - - tExtendedMockObjectPtr ep1(object1); - ASSERT_EQ(1, ep1->getId()); - - tMockObjectPtr p1(ep1); - ASSERT_EQ(1, p1->getId()); - - tExtendedMockObjectPtr ep2(object2); - ASSERT_EQ(2, ep2->getId()); - - p1 = ep2; - ASSERT_EQ(2, p1->getId()); - - EXPECT_CALL(*object1, destructor()); - EXPECT_CALL(*object2, destructor()); -} - -TEST(SharedPtrTest, AddedOperators) { - test::components::utils::SharedPtrTest::CExtendedMockObject* object1 = - new test::components::utils::SharedPtrTest::CExtendedMockObject(1); - test::components::utils::SharedPtrTest::CExtendedMockObject* object2 = - new test::components::utils::SharedPtrTest::CExtendedMockObject(2); - - EXPECT_CALL(*object1, destructor()).Times(0); - EXPECT_CALL(*object2, destructor()).Times(0); - - tExtendedMockObjectPtr ep1(object1); - tMockObjectPtr p1(ep1); - tExtendedMockObjectPtr ep2(object2); - p1 = ep2; - - ASSERT_EQ(2, p1->getId()); - ASSERT_EQ(2, (*p1).getId()); - - ASSERT_FALSE(!p1); - - utils::SharedPtr<int> p3(new int(10)); - ASSERT_EQ(10, *p3); - ASSERT_FALSE(!p3); - - utils::SharedPtr<int> p2; - ASSERT_TRUE(!p2); - - p2.reset(new int); - ASSERT_FALSE(!p2); - *p2 = 3; - ASSERT_EQ(3, *p2); - - EXPECT_CALL(*object1, destructor()); - EXPECT_CALL(*object2, destructor()); -} - -TEST(SharedPtrTest, StressTest) { - const size_t cNumIterations = 1024U * 1024U; - - size_t objectCreated = 0U; - size_t pointersCopied = 0U; - - std::vector<tMockObjectPtr> objects; - - for (size_t i = 0U; i < cNumIterations; ++i) { - if ((true == objects.empty()) || (0 == rand() % 256)) { - test::components::utils::SharedPtrTest::CMockObject* object = - new test::components::utils::SharedPtrTest::CMockObject(0); - EXPECT_CALL(*object, destructor()); - - objects.push_back(object); - - ++objectCreated; - } else { - size_t objectIndex = static_cast<size_t>(rand()) % objects.size(); - - if (rand() % 2) { - objects.push_back(objects[objectIndex]); - - ++pointersCopied; - } else { - objects.erase(objects.begin() + objectIndex); - } - } - } - printf("%zu objects created, %zu pointers copied\n", objectCreated, - pointersCopied); -} |