| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 | 
							- /*
 
-  * JsonUpdaterTest.cpp, part of VCMI engine
 
-  *
 
-  * Authors: listed in file AUTHORS in main folder
 
-  *
 
-  * License: GNU General Public License v2.0 or later
 
-  * Full text of license available in license.txt file, in main folder
 
-  *
 
-  */
 
- #include "StdInc.h"
 
- #include "../../lib/serializer/JsonUpdater.h"
 
- namespace test
 
- {
 
- using ::testing::Test;
 
- class JsonUpdaterTest : public Test
 
- {
 
- public:
 
- 	class Object
 
- 	{
 
- 	public:
 
- 		class Inner
 
- 		{
 
- 		public:
 
- 			int64_t i = 424242424242LL;
 
- 			Inner() = default;
 
- 			void serializeJson(JsonSerializeFormat & handler)
 
- 			{
 
- 				handler.serializeInt("i", i);
 
- 			}
 
- 		};
 
- 		int32_t i1 = 42;
 
- 		int32_t i2 = 59;
 
- 		double d1 = 0.123;
 
- 		double d2 = 0.321;
 
- 		bool b1 = true;
 
- 		bool b2 = true;
 
- 		int b3 = 333;
 
- 		int b4 = 444;
 
- 		std::string s1 = "s1s1s1s1";
 
- 		std::string s2 = "s2s2s2s2";
 
- 		JsonNode j1 = JsonUtils::stringNode("j1");
 
- 		JsonNode j2 = JsonUtils::stringNode("j2");
 
- 		Inner inner1;
 
- 		Inner inner2;
 
- 		Object() = default;
 
- 		void serializeJson(JsonSerializeFormat & handler)
 
- 		{
 
- 			handler.serializeInt("i1", i1);
 
- 			handler.serializeInt("i2", i2);
 
- 			handler.serializeFloat("d1", d1);
 
- 			handler.serializeFloat("d2", d2);
 
- 			handler.serializeBool("b1", b1);
 
- 			handler.serializeBool("b2", b2);
 
- 			handler.serializeBool<int>("b3", b3, 333, 332, 331);
 
- 			handler.serializeBool<int>("b4", b4, 444, 443, 442);
 
- 			handler.serializeString("s1", s1);
 
- 			handler.serializeString("s2", s2);
 
- 			handler.serializeRaw("j1", j1, std::nullopt);
 
- 			handler.serializeRaw("j2", j2, std::nullopt);
 
- 			handler.serializeStruct("inner1", inner1);
 
- 			handler.serializeStruct("inner2", inner2);
 
- 		}
 
- 		void compare(const Object & rhs)
 
- 		{
 
- 			EXPECT_EQ(i1, rhs.i1);
 
- 			EXPECT_EQ(i2, rhs.i2);
 
- 			EXPECT_EQ(d1, rhs.d1);
 
- 			EXPECT_EQ(d2, rhs.d2);
 
- 			EXPECT_EQ(b1, rhs.b1);
 
- 			EXPECT_EQ(b2, rhs.b2);
 
- 			EXPECT_EQ(b3, rhs.b3);
 
- 			EXPECT_EQ(b4, rhs.b4);
 
- 			EXPECT_EQ(s1, rhs.s1);
 
- 			EXPECT_EQ(s2, rhs.s2);
 
- 			EXPECT_EQ(j1, rhs.j1);
 
- 			EXPECT_EQ(j2, rhs.j2) << j2.toJson(true) << " " << rhs.j2.toJson(true);
 
- 			EXPECT_EQ(inner1.i, rhs.inner1.i);
 
- 			EXPECT_EQ(inner2.i, rhs.inner2.i);
 
- 		}
 
- 	};
 
- };
 
- TEST_F(JsonUpdaterTest, Int)
 
- {
 
- 	JsonNode j;
 
- 	j["i2"].Integer() = 63;
 
- 	Object obj;
 
- 	Object exp = obj;
 
- 	exp.i2 = 63;
 
- 	JsonUpdater subject(nullptr, j);
 
- 	obj.serializeJson(subject);
 
- 	obj.compare(exp);
 
- }
 
- TEST_F(JsonUpdaterTest, Float)
 
- {
 
- 	JsonNode j;
 
- 	j["d2"].Float() = .456;
 
- 	Object obj;
 
- 	Object exp = obj;
 
- 	exp.d2 = .456;
 
- 	JsonUpdater subject(nullptr, j);
 
- 	obj.serializeJson(subject);
 
- 	obj.compare(exp);
 
- }
 
- TEST_F(JsonUpdaterTest, Bool)
 
- {
 
- 	JsonNode j;
 
- 	j["b2"].Bool() = false;
 
- 	Object obj;
 
- 	Object exp = obj;
 
- 	exp.b2 = false;
 
- 	JsonUpdater subject(nullptr, j);
 
- 	obj.serializeJson(subject);
 
- 	obj.compare(exp);
 
- }
 
- TEST_F(JsonUpdaterTest, BoolAny)
 
- {
 
- 	JsonNode j;
 
- 	j["b4"].Bool() = false;
 
- 	Object obj;
 
- 	Object exp = obj;
 
- 	exp.b4 = 443;
 
- 	JsonUpdater subject(nullptr, j);
 
- 	obj.serializeJson(subject);
 
- 	obj.compare(exp);
 
- }
 
- TEST_F(JsonUpdaterTest, String)
 
- {
 
- 	JsonNode j;
 
- 	j["s2"].String() = "ssssss";
 
- 	Object obj;
 
- 	Object exp = obj;
 
- 	exp.s2 = "ssssss";
 
- 	JsonUpdater subject(nullptr, j);
 
- 	obj.serializeJson(subject);
 
- 	obj.compare(exp);
 
- }
 
- TEST_F(JsonUpdaterTest, Raw)
 
- {
 
- 	JsonNode j;
 
- 	j["j2"] = JsonUtils::intNode(42);
 
- 	Object obj;
 
- 	Object exp = obj;
 
- 	exp.j2 = JsonUtils::intNode(42);
 
- 	JsonUpdater subject(nullptr, j);
 
- 	obj.serializeJson(subject);
 
- 	obj.compare(exp);
 
- }
 
- TEST_F(JsonUpdaterTest, Struct)
 
- {
 
- 	JsonNode j;
 
- 	j["inner2"]["i"].Integer() = 424242424241LL;
 
- 	Object obj;
 
- 	Object exp = obj;
 
- 	exp.inner2.i = 424242424241LL;
 
- 	JsonUpdater subject(nullptr, j);
 
- 	obj.serializeJson(subject);
 
- 	obj.compare(exp);
 
- }
 
- }
 
 
  |