예제 #1
0
        public void Json_Equal_Test()
        {
            TestData_Json testClass1 = JsonTestClass();

            #region Test1: Convert_CloneType()
            //      ===========================================
            var testClass2 = _json.Convert_CloneType(testClass1);

            string error;
            Assert.True(_json.Object_IsEqual(testClass1, testClass2, out error));
            #endregion

            #region Test2:
            // ===========================================
            DebugLog("Test:Change on property and show error");
            DebugLog("======================================");
            testClass2.Roles[0] = "new value";
            Assert.False(_json.Object_IsEqual(testClass1, testClass2, out error));
            DebugLog(error);
            var errorRestult =
                @"Error! No match found at index = 8.
Values differ at pos = 6.

Value1: '    ""User"",' != 
Value2: '    ""new value"",'; 
Diff??: ------^";
            Assert.Equal(errorRestult, error);
            #endregion
        }
예제 #2
0
        private TestData_Json JsonTestClass()
        {
            var json_TestClass = new TestData_Json();

            Assert.Equal("json_Test_Data", json_TestClass.Name);
            json_TestClass.Email       = "*****@*****.**";
            json_TestClass.Active      = true;
            json_TestClass.CreatedDate = new DateTime(2013, 1, 20, 0, 0, 0, DateTimeKind.Utc);
            json_TestClass.Roles.Clear();
            json_TestClass.Roles.Add("User");
            json_TestClass.Roles.Add("Admin");
            return(json_TestClass);
        }
예제 #3
0
        public void Object_ToDictionary_Test()
        {
            // Test data
            var json = new TestData_Json();

            json.Active      = true;
            json.CreatedDate = new DateTime(2016, 1, 1);
            json.Email       = "email";
            json.Roles.Clear();
            json.Roles.Add("Mr");
            json.Roles.Add("Mev");
            json.Roles.Add("Mej");

            // Stream the object
            var dict  = _lamed.Types.Dictionary.Object_ToDictionary(json);
            var lines = dict.Select(x => $"{x.Key} = {x.Value.zObject().AsStr()}").ToList();
            var str   = lines.zTo_Str(", ");

            // Test
            Assert.Equal("Email = email, Active = true, CreatedDate = 2016-01-01 12:00:00 AM, Roles = [Mr,Mev,Mej], Name = json_Test_Data", str);
            Assert.Equal("Email = email, Active = true, CreatedDate = 2016-01-01 12:00:00 AM, Roles = [Mr,Mev,Mej], Name = json_Test_Data", json.zObject().AsStr());
        }
예제 #4
0
        public void Object_ToJson_Test()
        {
            // Setup the data

            #region Test1: json = Convert_FromObject(json_TestClass);
            //      ===========================================
            // Null class test
            TestData_Json json_TestClass = null;
            string        json1          = _json.Convert_FromObject(json_TestClass);
            Assert.Equal("", json1);

            // Instanciated class
            json_TestClass = JsonTestClass();
            json1          = _json.Convert_FromObject(json_TestClass, false);
            var json1b = _json.Convert_FromObject(json_TestClass, true);
            Assert.Equal(json1, json1b);
            string jsonResult =
                @"{
  ""FieldObject"": {
    ""Text"": ""Undefined""
  },
  ""Email"": ""*****@*****.**"",
  ""Active"": true,
  ""CreatedDate"": ""2013-01-20T00:00:00Z"",
  ""Roles"": [
    ""User"",
    ""Admin""
  ],
  ""Name"": ""json_Test_Data""
}";
            Assert.Equal(jsonResult, json1);

            #endregion

            #region Test2: Convert_ToType
            // ===========================================
            var json_TestClass2 = _json.Convert_ToType <TestData_Json>(json1);
            Assert.Equal(json_TestClass.Email, json_TestClass2.Email);
            Assert.Equal(json_TestClass.Active, json_TestClass2.Active);
            Assert.Equal(json_TestClass.CreatedDate, json_TestClass2.CreatedDate);
            Assert.Equal(json_TestClass.Roles.Count, json_TestClass2.Roles.Count);
            Assert.Equal(json_TestClass.Roles[0], json_TestClass2.Roles[0]);
            Assert.Equal(json_TestClass.Roles[1], json_TestClass2.Roles[1]);
            string error;
            Assert.True(_lamed.Types.Object.IsEqual(json_TestClass, json_TestClass2, out error), error);
            #endregion

            #region Convert to json and filter for fields
            string json2       = _json.Convert_FromObject(json_TestClass, false, "Email", "Active");
            string json2Result =
                @"{
  ""Email"": ""*****@*****.**"",
  ""Active"": true
}";
            Assert.Equal(json2Result, json2);

            // Filter for field 'Active2' that does not exists
            var ex = Assert.Throws <InvalidOperationException>(() => _json.Convert_FromObject(json_TestClass, false, "Email", "Active", "Active2"));
            Assert.Equal("Error! The following fields were not found: Active2", ex.Message);

            #endregion
        }