diff options
Diffstat (limited to 'test/components/smart_objects/SchemaItem/test_NumberSchemaItemTest.cpp')
-rw-r--r-- | test/components/smart_objects/SchemaItem/test_NumberSchemaItemTest.cpp | 781 |
1 files changed, 0 insertions, 781 deletions
diff --git a/test/components/smart_objects/SchemaItem/test_NumberSchemaItemTest.cpp b/test/components/smart_objects/SchemaItem/test_NumberSchemaItemTest.cpp deleted file mode 100644 index 25d8fbdb7..000000000 --- a/test/components/smart_objects/SchemaItem/test_NumberSchemaItemTest.cpp +++ /dev/null @@ -1,781 +0,0 @@ -// Copyright (c) 2013, 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 <string> -#include "gtest/gtest.h" -#include "gmock/gmock.h" - -#include "smart_objects/smart_object.h" -#include "smart_objects/number_schema_item.h" - -namespace test { -namespace components { -namespace SmartObjects { -namespace SchemaItem { - -using NsSmartDeviceLink::NsSmartObjects::ISchemaItemPtr; - -/** - * Test NumberSchemaItem as INT with no default value - * - * Create SchemaItem without default value. Method setDefaultValue should always return false - * and leave SmartObject in previous state. - **/ -TEST(test_int_no_default_value, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = - TNumberSchemaItem<int>::create(); // No default value, no min, no max - - //Object int - obj = 5; - ASSERT_EQ(5, obj.asInt()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Obj bool - obj = true; - ASSERT_TRUE(obj.asBool()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - - //Set default value - bool resDefault = item->setDefaultValue(obj); - EXPECT_FALSE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - EXPECT_TRUE(obj.asBool()); - - //Obj string - obj = "Test"; - ASSERT_EQ(std::string("Test"), obj.asString()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resDefault = item->setDefaultValue(obj); - EXPECT_FALSE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); -} - -/** - * Test NumberSchemaItem as INT with setted min value - **/ -TEST(test_int_min_value, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<int>::create(TSchemaItemParameter<int> - (10)); // No default value, no max value - - //Object int correct - obj = 15; - ASSERT_EQ(15, obj.asInt()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object int incorrect - obj = 9; - ASSERT_EQ(9, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Object int correct - obj = 10; - ASSERT_EQ(10, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); -} - -/** - * Test NumberSchemaItem as INT with setted max value - **/ -TEST(test_int_max_value, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(), - TSchemaItemParameter<int>(749) ); // No default value, no min value - - //Object int correct - obj = 749; - ASSERT_EQ(749, obj.asInt()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object int incorrect - obj = 750; - ASSERT_EQ(750, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Object int correct - obj = -750; - ASSERT_EQ(-750, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); -} - -/** - * Test NumberSchemaItem as INT with setted min and max value - **/ -TEST(test_int_min_max_value, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(-949), TSchemaItemParameter<int>(749) ); // No default value - - //Object int correct - obj = 749; - ASSERT_EQ(749, obj.asInt()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object int incorrect - obj = 750; - ASSERT_EQ(750, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Object int correct - obj = -949; - ASSERT_EQ(-949, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object int incorrect - obj = -950; - ASSERT_EQ(-950, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - -} - -/** - * Test NumberSchemaItem as INT with correct default value - **/ -TEST(test_int_correct_default_value, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(-12000), - TSchemaItemParameter<int>(100), - TSchemaItemParameter<int>(-38)); - - //Object int correct - obj = -12000; - ASSERT_EQ(-12000, obj.asInt()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object int incorrect - obj = -12001; - ASSERT_EQ(-12001, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Object int correct - obj = 100; - ASSERT_EQ(100, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object int incorrect - obj = 101; - ASSERT_EQ(101, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Set default value - bool resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - EXPECT_EQ(-38, obj.asInt()); - - //Object string - obj = "string"; - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - EXPECT_EQ(-38, obj.asInt()); -} - -/** - * Test NumberSchemaItem as INT with default value out of range - **/ -TEST(test_int_default_value_out_of_range, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(90), - TSchemaItemParameter<int>(100), - TSchemaItemParameter<int>(50)); // Default value out of range - - //Object int correct - obj = 90; - ASSERT_EQ(90, obj.asInt()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object int incorrect - obj = 89; - ASSERT_EQ(89, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Object int correct - obj = 100; - ASSERT_EQ(100, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object int incorrect - obj = 101; - ASSERT_EQ(101, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Set default value - bool resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - EXPECT_EQ(50, obj.asInt()); - - //Object string - obj = "string"; - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - EXPECT_EQ(50, obj.asInt()); -} - -TEST(test_int_map_validate, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(-120), - TSchemaItemParameter<int>(100), - TSchemaItemParameter<int>(-38)); - - obj["min"] = -120; - obj["out_of_min"] = -121; - obj["max"] = 100; - obj["out_of_max"] = 101; - - int resultType = item->validate(obj["min"]); - EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["max"]); - EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["out_of_min"]); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj["out_of_max"]); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - - //Set default value - bool resDefault = item->setDefaultValue(obj["aa"]); - EXPECT_TRUE(resDefault); - EXPECT_EQ(-38, obj["aa"].asInt()); - - resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - EXPECT_EQ(-38, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - resultType = item->validate(obj["min"]); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); -} - -TEST(test_int_array_validate, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<int>::create( - TSchemaItemParameter<int>(-120), - TSchemaItemParameter<int>(100), - TSchemaItemParameter<int>(-38) ); - - obj[0] = -121; - obj[1] = -120; - obj[2] = 100; - obj[3] = 101; - - int resultType = item->validate(obj[0]); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OUT_OF_RANGE, resultType); - - resultType = item->validate(obj[1]); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - - resultType = item->validate(obj[2]); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - - resultType = item->validate(obj[3]); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OUT_OF_RANGE, resultType); - - resultType = item->validate(obj); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); - - bool resDefault = item->setDefaultValue(obj[0]); - EXPECT_TRUE(resDefault); - EXPECT_EQ(-38, obj[0].asInt()); - - resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - EXPECT_EQ(-38, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - - resultType = item->validate(obj[0]); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); - - resultType = item->validate(obj); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); -} - -/** - * Test NumberSchemaItem as DOUBLE with no default value - * - * Create SchemaItem without default value. Method setDefaultValue should always return false - * and leave SmartObject in previous state. - **/ -TEST(test_double_no_default_value, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = - TNumberSchemaItem<double>::create(); // No default value, no min, no max - - //Object int - obj = 5.79; - ASSERT_EQ(5.79, obj.asDouble()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Obj bool - obj = true; - ASSERT_TRUE(obj.asBool()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - - //Set default value - bool resDefault = item->setDefaultValue(obj); - EXPECT_FALSE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - EXPECT_TRUE(obj.asBool()); - - //Obj string - obj = "Test"; - ASSERT_EQ(std::string("Test"), obj.asString()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - - //Set default value - resDefault = item->setDefaultValue(obj); - EXPECT_FALSE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); -} - -/** - * Test NumberSchemaItem as DOUBLE with setted min value - **/ -TEST(test_double_min_value, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<double>::create(TSchemaItemParameter<double> - (10.0)); // No default value, no max value - - //Object double correct - obj = 10.000001; - ASSERT_EQ(10.000001, obj.asDouble()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object double incorrect - obj = 9.999999; - ASSERT_EQ(9.999999, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - /* - //Object int - obj = 10; - ASSERT_EQ(10, obj.asInt()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType);*/ -} - -/** - * Test NumberSchemaItem as DOUBLE with setted max value - **/ -TEST(test_double_max_value, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(), - TSchemaItemParameter<double>(749.0)); // No default value, no min value - - //Object double correct - obj = 749.0; - ASSERT_EQ(749.0, obj.asDouble()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object double incorrect - obj = 749.0001; - ASSERT_EQ(749.0001, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Object double correct - obj = -750.0; - ASSERT_EQ(-750.0, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); -} - -/** - * Test NumberSchemaItem as DOUBLE with setted min and max value - **/ -TEST(test_double_min_max_value, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(-949.0), - TSchemaItemParameter<double>(749.0)); // No default value - - //Object double correct - obj = 749.0; - ASSERT_EQ(749.0, obj.asDouble()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object double incorrect - obj = 749.001; - ASSERT_EQ(749.001, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Object double correct - obj = -949.0; - ASSERT_EQ(-949.0, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object double incorrect - obj = -949.00001; - ASSERT_EQ(-949.00001, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - -} - -/** - * Test NumberSchemaItem as DOUBLE with correct default value - **/ -TEST(test_double_correct_default_value, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(-12000.0), - TSchemaItemParameter<double>(100.0), - TSchemaItemParameter<double>(-38.0)); - - //Object double correct - obj = -12000.0; - ASSERT_EQ(-12000.0, obj.asDouble()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object double incorrect - obj = -12000.01; - ASSERT_EQ(-12000.01, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Object double correct - obj = 100.0; - ASSERT_EQ(100.0, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object double incorrect - obj = 100.001; - ASSERT_EQ(100.001, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Set default value - bool resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - EXPECT_EQ(-38.0, obj.asDouble()); - - //Object string - obj = "string"; - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - EXPECT_EQ(-38.0, obj.asDouble()); -} - -/** - * Test NumberSchemaItem as DOUBLE with default value out of range - **/ -TEST(test_double_default_value_out_of_range, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(90.0), - TSchemaItemParameter<double>(100.0), - TSchemaItemParameter<double>(50.0)); // Default value out of range - - //Object double correct - obj = 90.0; - ASSERT_EQ(90.0, obj.asDouble()); - - int resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object double incorrect - obj = 89.999; - ASSERT_EQ(89.999, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Object double correct - obj = 100.0; - ASSERT_EQ(100.0, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - //Object double incorrect - obj = 100.001; - ASSERT_EQ(100.001, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - - //Set default value - bool resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - EXPECT_EQ(50.0, obj.asDouble()); - - //Object string - obj = "string"; - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - resultType = item->validate(obj); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - EXPECT_EQ(50.0, obj.asDouble()); -} - -TEST(test_double_map_validate, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(-120.0), - TSchemaItemParameter<double>(100.0), - TSchemaItemParameter<double>(-38.0)); - - obj["min"] = -120.0; - obj["out_of_min"] = -120.001; - obj["max"] = 100.0; - obj["out_of_max"] = 100.001; - - int resultType = item->validate(obj["min"]); - EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["max"]); - EXPECT_EQ(Errors::OK, resultType); - resultType = item->validate(obj["out_of_min"]); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj["out_of_max"]); - EXPECT_EQ(Errors::OUT_OF_RANGE, resultType); - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - - bool resDefault = item->setDefaultValue(obj["aa"]); - EXPECT_TRUE(resDefault); - EXPECT_EQ(-38.0, obj["aa"].asDouble()); - - resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - EXPECT_EQ(-38.0, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::OK, resultType); - - resultType = item->validate(obj["min"]); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); - - resultType = item->validate(obj); - EXPECT_EQ(Errors::INVALID_VALUE, resultType); -} - -TEST(test_double_array_validate, test_NumberSchemaItemTest) { - using namespace NsSmartDeviceLink::NsSmartObjects; - - SmartObject obj; - - ISchemaItemPtr item = TNumberSchemaItem<double>::create( - TSchemaItemParameter<double>(-120.0), - TSchemaItemParameter<double>(100.0), - TSchemaItemParameter<double>(-38.0)); - - obj[0] = -120.001; - obj[1] = -120.0; - obj[2] = 100.0; - obj[3] = 100.000001; - - int resultType = item->validate(obj[0]); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OUT_OF_RANGE, resultType); - - resultType = item->validate(obj[1]); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - - resultType = item->validate(obj[2]); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - - resultType = item->validate(obj[3]); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OUT_OF_RANGE, resultType); - - resultType = item->validate(obj); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); - - bool resDefault = item->setDefaultValue(obj[0]); - EXPECT_TRUE(resDefault); - EXPECT_EQ(-38.0, obj[0].asDouble()); - - resDefault = item->setDefaultValue(obj); - EXPECT_TRUE(resDefault); - EXPECT_EQ(-38.0, obj.asDouble()); - - resultType = item->validate(obj); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::OK, resultType); - - resultType = item->validate(obj[0]); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); - - resultType = item->validate(obj); - EXPECT_EQ(NsSmartDeviceLink::NsSmartObjects::Errors::INVALID_VALUE, resultType); -} -} // namespace SchemaItem -} // namespace SmartObjects -} // namespace components -} // namespace test |