Example #1
0
        public void ClassArray()
        {
            FieldCloneClassArrayModel model = new FieldCloneClassArrayModel
            {
                Models = new FieldCloneNormalModel[10]
            };

            for (int i = 0; i < 10; i++)
            {
                model.Models[i] = new FieldCloneNormalModel()
                {
                    Age = i, Name = i.ToString()
                };
            }

            SnapshotOperator.MakeSnapshot(model);
            for (int i = 5; i < 10; i++)
            {
                model.Models[i] = new FieldCloneNormalModel()
                {
                    Age = i + 100, Name = (i + 100).ToString()
                };
            }
            var reuslt = SnapshotOperator.Compare(model);
            var value  = (HashSet <FieldCloneNormalModel>)reuslt["Models"].Value;
            int temp   = 5;

            foreach (var item in value)
            {
                Assert.Equal(temp.ToString(), item.Name);
                Assert.Equal(temp, item.Age);
                temp++;
            }
        }
Example #2
0
        public void NotClassArray()
        {
            FieldCloneArrayModel model = new FieldCloneArrayModel
            {
                Name = new string[10]
            };

            for (int i = 0; i < 10; i++)
            {
                model.Name[i] = i.ToString();
            }

            SnapshotOperator.MakeSnapshot(model);
            for (int i = 5; i < 10; i++)
            {
                model.Name[i] = (i + 100).ToString();
            }
            var reuslt = SnapshotOperator.Compare(model);
            var value  = (HashSet <string>)reuslt["Name"].Value;
            int temp   = 5;

            foreach (var item in value)
            {
                Assert.Equal(temp.ToString(), item);
                temp++;
            }
        }
Example #3
0
        public void PropSubClassArray()
        {
            PropCloneSubNodeModel model = new PropCloneSubNodeModel
            {
                Node = new PropCloneNormalModel()
                {
                    Age = 1, Name = "111"
                }
            };

            SnapshotOperator.MakeSnapshot(model);

            model.Node = new PropCloneNormalModel()
            {
                Age = 2, Name = "222"
            };

            var result = SnapshotOperator.Compare(model);
            var value  = (Dictionary <string, DiffModel>)(result["Node"].Value);

            Assert.NotEqual(model.Node.Name, (string)(value["Name"].Value));
            Assert.NotEqual(model.Node.Age, (int)(value["Age"].Value));
            Assert.Equal("111", (string)(value["Name"].Value));
            Assert.Equal(1, (int)(value["Age"].Value));
        }
Example #4
0
        public void Normal()
        {
            FieldCloneNormalModel model = new FieldCloneNormalModel
            {
                Age   = 1000,
                Name  = "ababab",
                Timer = DateTime.Now,
                money = 100000,
                Flag  = CloneEnum.A,
                Title = false,
                Id    = 100000
            };

            SnapshotOperator.MakeSnapshot(model);
            model.Age   = 1001;
            model.Name  = "hahaha";
            model.Flag  = CloneEnum.B;
            model.Title = true;
            var reuslt = SnapshotOperator.Compare(model);


            Assert.NotEqual(model.Age, (int)(reuslt["Age"].Value));
            Assert.NotEqual(model.Title, (bool)(reuslt["Title"].Value));
            Assert.NotEqual(model.Name, (string)(reuslt["Name"].Value));
            Assert.NotEqual(model.Flag, (CloneEnum)(reuslt["Flag"].Value));


            Assert.Equal(1000, (int)(reuslt["Age"].Value));
            Assert.False((bool)(reuslt["Title"].Value));
            Assert.Equal("ababab", (string)(reuslt["Name"].Value));
            Assert.Equal(CloneEnum.A, (CloneEnum)(reuslt["Flag"].Value));
        }
Example #5
0
        public void PropClassCollectionTest()
        {
            PropCloneClassCollectionModel model = new PropCloneClassCollectionModel();

            model.Nodes = new List <PropCloneNormalModel>();
            for (int i = 0; i < 10; i++)
            {
                model.Nodes.Add(new PropCloneNormalModel()
                {
                    Age = i, Name = i.ToString()
                });
            }

            SnapshotOperator.MakeSnapshot(model);

            for (int i = 5; i < 10; i++)
            {
                model.Nodes.Add(new PropCloneNormalModel()
                {
                    Age = i + 100, Name = (i + 100).ToString()
                });
            }


            var reuslt = SnapshotOperator.Compare(model);
            var value  = (HashSet <PropCloneNormalModel>)reuslt["Nodes"].Value;
            int temp   = 5;

            foreach (var item in value)
            {
                Assert.Equal(temp.ToString(), item.Name);
                Assert.Equal(temp, item.Age);
                temp++;
            }
        }
Example #6
0
        public void PropNormal()
        {
            var tempDate = DateTime.Now;
            PropCloneNormalModel model = new PropCloneNormalModel();

            model.Age   = 1000;
            model.Name  = "ababab";
            model.Timer = tempDate;
            model.money = 100000;
            model.Title = false;
            model.Id    = 100000;
            //生成快照
            SnapshotOperator.MakeSnapshot(model);

            //更改model
            model.Age   = 1001;
            model.Name  = "hahaha";
            model.Timer = DateTime.Now;
            model.Title = true;

            //对比快照
            var reuslt = SnapshotOperator.Compare(model);


            Assert.NotEqual(model.Age, (int)(reuslt["Age"].Value));
            Assert.NotEqual(model.Title, (bool)(reuslt["Title"].Value));
            Assert.NotEqual(model.Name, (string)(reuslt["Name"].Value));
            Assert.NotEqual(model.Timer, (DateTime)(reuslt["Timer"].Value));

            Assert.Equal(1000, (int)(reuslt["Age"].Value));
            Assert.False((bool)(reuslt["Title"].Value));
            Assert.Equal("ababab", (string)(reuslt["Name"].Value));
            Assert.Equal(tempDate, (DateTime)(reuslt["Timer"].Value));
        }
Example #7
0
 public static Dictionary <string, DiffModel> Compare <T>(T instance)
 {
     return(SnapshotOperator <T> .Compare(instance));
 }
Example #8
0
 public static bool IsDiffernt <T>(T instance)
 {
     return(SnapshotOperator <T> .Compare(instance).Count != 0);
 }