summaryrefslogtreecommitdiff
path: root/src/components/smart_objects/test
diff options
context:
space:
mode:
authoriAndrew5 <abyzhynar@luxoft.com>2015-10-20 18:18:38 +0300
committeriAndrew5 <abyzhynar@luxoft.com>2015-10-20 18:18:38 +0300
commit790208669af77d4da040922283c2644dfab4f457 (patch)
treec671d2100f4c4d3358da76e79df5b2780dd7c5cd /src/components/smart_objects/test
parent13fd07953c463a8d035df130bf1713ee6508d7d8 (diff)
downloadsdl_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.txt1
-rw-r--r--src/components/smart_objects/test/NumberSchemaItem_test.cc33
-rw-r--r--src/components/smart_objects/test/TSharedPtr_test.cc203
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);
-}