Beispiel #1
0
        public void AddReplaceRemoveAndApplyChanges()
        {
            _manager1.Root.Level1             = _manager1.Create <ILevel1>();
            _manager1.Root.Level1.IntValue    = 42;
            _manager1.Root.Level1.StringValue = "43";

            _manager1.Root.Level1.Level2           = _manager1.Create <ILevel2>();
            _manager1.Root.Level1.Level2.GuidValue = Guid.NewGuid();
            _manager1.Root.Level1.Level2.Level3    = new Level3 {
                IntValue = 44
            };

            _manager1.Root.Dictionary1[10]          = _manager1.Create <ILevel1>();
            _manager1.Root.Dictionary1[10].IntValue = 40;

            var level1 = _manager1.Create <ILevel1>();

            level1.IntValue                      = 50;
            level1.Level2                        = _manager1.Create <ILevel2>();
            level1.Dictionary2["some"]           = _manager1.Create <ILevel2>();
            level1.Dictionary2["some"].GuidValue = Guid.NewGuid();

            _manager1.Root.Dictionary1[5] = level1;

            var a = _modelClient12.SerializeAndClearChanges();

            _manager2.ApplyChanges(_modelClient21, a);
            var b = _modelClient23.SerializeAndClearChanges();

            _manager3.ApplyChanges(_modelClient32, b);
            Assert.True(_manager1.IsDeepEqual(_manager1.Root, _manager2.Root));
            Assert.True(_manager1.IsDeepEqual(_manager1.Root, _manager3.Root));

            // replace
            _manager1.Root.Level1.IntValue = 43;
            _manager1.Root.Level1.Level2   = _manager1.Create <ILevel2>();
            _manager1.Root.Dictionary1[10] = _manager1.Create <ILevel1>();

            _manager2.ApplyChanges(_modelClient21, _modelClient12.SerializeAndClearChanges());
            _manager3.ApplyChanges(_modelClient32, _modelClient23.SerializeAndClearChanges());
            Assert.True(_manager1.IsDeepEqual(_manager1.Root, _manager2.Root));
            Assert.True(_manager1.IsDeepEqual(_manager1.Root, _manager3.Root));

            //remove
            _manager1.Root.Level1.StringValue = null;
            _manager1.Root.Level1.Level2      = null;
            _manager1.Root.Dictionary1.Remove(10);

            _manager2.ApplyChanges(_modelClient21, _modelClient12.SerializeAndClearChanges());
            _manager3.ApplyChanges(_modelClient32, _modelClient23.SerializeAndClearChanges());
            Assert.True(_manager1.IsDeepEqual(_manager1.Root, _manager2.Root));
            Assert.True(_manager1.IsDeepEqual(_manager1.Root, _manager3.Root));
        }
Beispiel #2
0
        public void InitAfterChanges()
        {
            _manager1.Root.Level1             = _manager1.Create <ILevel1>();
            _manager1.Root.Level1.IntValue    = 42;
            _manager1.Root.Level1.StringValue = "43";

            _manager1.Root.Level1.Level2           = _manager1.Create <ILevel2>();
            _manager1.Root.Level1.Level2.GuidValue = Guid.NewGuid();
            _manager1.Root.Level1.Level2.Level3    = new Level3 {
                IntValue = 44
            };

            _manager1.Register(_modelClient12);

            _manager2.Register(_modelClient21);
            _manager2.ApplyChanges(_modelClient21, _modelClient12.SerializeAndClearChanges());

            Assert.True(_manager1.IsDeepEqual(_manager1.Root, _manager2.Root));
        }