/* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ #include #include using namespace CommonAPI; class VariantTest: public ::testing::Test { void SetUp() { } void TearDown() { } }; TEST_F(VariantTest, VariantTestPack) { int fromInt = 5; double fromDouble = 12.344d; std::string fromString = "123abcsadfaljkawlöfasklöerklöfjasklfjysklfjaskfjsklösdfdko4jdfasdjioögjopefgip3rtgjiprg!"; Variant myVariant(fromInt); Variant* myVariants = new Variant(fromString); Variant myVariantf(fromDouble); std::string myString = myVariants->get(); std::cout << "myString = " << myString << "\n"; const int& myInt = myVariant.get(); std::cout << "myInt = " << myInt << "\n"; Variant myVariant2 = myVariant; const int& myInt2 = myVariant2.get(); std::cout << "myInt2 = " << myInt2 << "\n"; Variant myVariant3 = fromInt; const int& myInt3 = myVariant3.get(); std::cout << "myInt3 = " << myInt3 << "\n"; "\n"; myString = myVariants->get(); std::cout << "myString = " << myString << "\n"; Variant myVariantCopy(myVariant); const int& myIntCopy = myVariantCopy.get(); std::cout << "myIntCopy = " << myIntCopy << "\n"; std::cout << "myIntCopy equals myInt " << "(" << std::boolalpha << (myVariant == myVariantCopy) << ")\n"; EXPECT_ANY_THROW(const int& myFake = myVariant.get()); std::cout << "myInt is int = " << " (" << std::boolalpha << myVariant.isType() << ")\n"; EXPECT_TRUE(myVariant.isType()); std::cout << "myInt is std::string = " << "\n"; EXPECT_FALSE(myVariant.isType()); const double& myDouble = myVariantf.get(); std::cout << "myDouble = " << myDouble << "\n"; Variant myVariantsCopy(*myVariants); std::string myStringCopy = myVariantsCopy.get(); std::cout << "myStringCopy = " << myStringCopy << "\n"; *myVariants = std::string("Hello World"); myString = myVariants->get(); std::cout << "myString = " << myString << "\n"; myStringCopy = myVariantsCopy.get(); std::cout << "myStringCopy = " << myStringCopy << "\n"; delete myVariants; } int main(int argc, char** argv) { ::testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); }