123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157 |
- /*-------------------------------------------------------------------------
- * 功能描述:CompareItem
- * 作者:xulisong
- * 创建时间: 2019/6/28 15:44:52
- * 版本号:v1.0
- * -------------------------------------------------------------------------*/
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using FWindSoft.Data;
- using FWindSoft.Data.Compare;
- using FWindSoft.SystemExtensions;
- namespace Test.CompareTest
- {
- public class TestConverter : FlatObjectConverter
- {
- public override bool CanConvert(object obj, PickSetting setting)
- {
- return false;
- }
- protected override void WriteFlatObject(object obj, FlatObject flatObject, string prefix, PickSetting setting)
- {
- flatObject.AddValue(prefix, "ccc的converter测试纸");
- }
- }
- public class TestConverter2 : FlatObjectConverter
- {
- public override bool CanConvert(object obj, PickSetting setting)
- {
- return obj.GetType() == typeof(ConvertTestItem2);
- }
- protected override void WriteFlatObject(object obj, FlatObject flatObject, string prefix, PickSetting setting)
- {
- flatObject.AddValue(prefix, "ccc的TestConverter2测试纸");
- }
- }
- public class CompareItem
- {
- public string Name { get; set; }
- public int Age { get; set; }
- public ChildItem Child { get; set; }
- }
- public class ChildItem
- {
- public string Name { get; set; }
- public int Age { get; set; }
- }
- public class ListItem
- {
- public string Name { get; set; }
- public int Age { get; set; }
- }
- public class ItemList
- {
- public List<string> Names { get; set; }
- }
- public class InterItem : IFlatObject
- {
- public string Name { get; set; }
- public int Age { get; set; }
- public void AttachFlatObject(FlatObject flatObject, string prefix, PickSetting setting)
- {
- prefix = prefix ?? typeof(InterItem).FullName ;
- flatObject.AddValue(prefix + ".Name", Name);
- }
- }
- public class ConvertTestItem
- {
- [IgnoreFlatProperty]
- public string FirstName { get; set; }
- public string LastName { get; set; }
- [FlatProperty(ConverterType =typeof(TestConverter))]
- public string Age { get; set; }
- }
- public class ConvertTestItem2
- {
- public string FirstName { get; set; }
- public string LastName { get; set; }
- public string Age { get; set; }
- }
- public static class CompareItemTest
- {
- public static void Test()
- {
- PickSetting setting = new PickSetting() {Level = 2};
- CompareItem item1 = new CompareItem() {Name = "213", Age = 5};
- item1.Child = new ChildItem(){Name="Child",Age=29};
- var flag = FlatObject.Create(item1, setting);
- item1.Child.Age = 30;
- var flag2= FlatObject.Create(item1, setting);
- var test1=(bool)flag.Compare(flag2);
- Trace.WriteLineIf(test1, "test1测试错误");//level是1的时候相等
- var flagInt1 = FlatObject.Create(1);
- var flagInt2 = FlatObject.Create(1);
- var test2= (bool)flagInt1.Compare(flagInt2);
- Trace.WriteLineIf(test2 == false, "test2测试错误");
- PickSetting listSetting = new PickSetting() { Level = 1,ParseEnumerableObject=true };
- List<string> list1 = new List<string>() {"a", "b"};
- List<string> list2 = new List<string>() { "a", "b" };
- var flagList1 = FlatObject.Create(list1, listSetting);
- var flagList2 = FlatObject.Create(list2, listSetting);
- var test3 = (bool)flagList1.Compare(flagList2);
- Trace.WriteLineIf(test3 == false, "test3测试错误");
- List<ListItem> listItems1 = new List<ListItem>() {new ListItem() {Name = "cc", Age = 23}};
- List<ListItem> listItems2 = new List<ListItem>() { new ListItem() { Name = "cc", Age = 23 } };
- var flaglistItems1 = FlatObject.Create(listItems1, listSetting);
- var flaglistItems2 = FlatObject.Create(listItems2, listSetting);
- var test4 = (bool)flaglistItems2.Compare(flaglistItems1);
- Trace.WriteLineIf(test4, "test4测试错误");//解析1层不等,解析两层相等
- PickSetting listSetting2 = new PickSetting() { Level =2, ParseEnumerableObject = true };
- ItemList itemList1 = new ItemList() {Names = new List<string>() {"CC","BB"}};
- ItemList itemList2 = new ItemList() {Names = new List<string>() {"CC","BB1"}};
- var flagitemList1 = FlatObject.Create(itemList1, listSetting2);
- var flagitemList2 = FlatObject.Create(itemList2, listSetting2);
-
- var test5 = (bool)flagitemList2.Compare(flagitemList1);
- Trace.WriteLineIf(test5, "test5测试错误");
- InterItem interItem1 = new InterItem() { Name = "23123" };
- InterItem interItem2 = new InterItem() { Name = "13313" };
- var flaginterItem1 = FlatObject.Create(interItem1, listSetting2);
- var flaginterItem2 = FlatObject.Create(interItem2, listSetting2);
- var test6 = (bool)flaginterItem1.Compare(flaginterItem2);
- Trace.WriteLineIf(test6, "test6测试错误");
- var converter = typeof(TestConverter).CreateByDefault<FlatObjectConverter>();
- ConvertTestItem convertItem = new ConvertTestItem() { FirstName = "First", LastName = "Last", Age = "cc" };
- var flagconvertItem1 = FlatObject.Create(convertItem);
- var converterSettings= new PickSetting();
- converterSettings.Converters.Add(new TestConverter2());
- ConvertTestItem2 convertItem2 = new ConvertTestItem2() { FirstName = "First", LastName = "Last", Age = "cc" };
- var flagconvertItem2 = FlatObject.Create(convertItem2, converterSettings);
- }
- }
- }
|