public void AddReplaceRemoveAndApplyChanges() { var modelClient = new ModelClient { Filter = new FilterConfigurator(true) .Allow <ILevel1>(c => c.Deny(t => t.IntValue)) .Allow <ILevel2>(c => c.Allow(t => t.Level3)) .Build() }; _manager.Register(modelClient); _manager.Root.Level1 = _manager.Create <ILevel1>(); _manager.Root.Level1.IntValue = 42; _manager.Root.Level1.StringValue = "43"; _manager.Root.Level1.Level2 = _manager.Create <ILevel2>(); _manager.Root.Level1.Level2.GuidValue = Guid.NewGuid(); _manager.Root.Level1.Level2.Level3 = new Level3 { IntValue = 44 }; _manager.Root.Dictionary1[10] = _manager.Create <ILevel1>(); _manager.Root.Dictionary1[10].IntValue = 40; _manager.Root.Dictionary1[10].StringValue = "some"; _manager.Root.Dictionary1[10].Dictionary2["some"] = _manager.Create <ILevel2>(); _manager.Root.Dictionary1[10].Dictionary2["some"].GuidValue = Guid.NewGuid(); var level1 = _manager.Create <ILevel1>(); level1.IntValue = 50; level1.StringValue = "some"; level1.Dictionary2["some"] = _manager.Create <ILevel2>(); level1.Dictionary2["some"].GuidValue = Guid.NewGuid(); level1.Dictionary2["some"].Level3 = new Level3 { IntValue = 44 }; _manager.Root.Dictionary1[5] = level1; _manager2.ApplyChanges(modelClient, modelClient.SerializeAndClearChanges()); Assert.Equal(0, _manager2.Root.Level1.IntValue); Assert.Equal("43", _manager2.Root.Level1.StringValue); Assert.Equal(Guid.Empty, _manager2.Root.Level1.Level2.GuidValue); Assert.Equal(44, _manager2.Root.Level1.Level2.Level3.IntValue); Assert.Equal(0, _manager2.Root.Dictionary1[10].IntValue); Assert.Equal("some", _manager2.Root.Dictionary1[10].StringValue); Assert.Equal(Guid.Empty, _manager2.Root.Dictionary1[10].Dictionary2["some"].GuidValue); Assert.Equal(0, _manager2.Root.Dictionary1[5].IntValue); Assert.Equal("some", _manager2.Root.Dictionary1[5].StringValue); Assert.Equal(Guid.Empty, _manager2.Root.Dictionary1[5].Dictionary2["some"].GuidValue); Assert.Equal(44, _manager2.Root.Dictionary1[5].Dictionary2["some"].Level3.IntValue); }
public ModelTest() { var b = new DeltaModelBuilder(); b.Config <ILevel2>(c => { c.HasLocal((s, m, p) => new Level2Local(m, s)); }); _manager1 = b.Build <ITestModel>(); var b2 = new DeltaModelBuilder(); b2.Config <ILevel2>(c => { c.HasLocal((s, m, p) => new Level2Local(m, s)); }); _manager2 = b2.Build <ITestModel>(); var b3 = new DeltaModelBuilder(); _manager3 = b3.Build <ITestModel>(); _modelClient12 = new ModelClient { Filter = new FilterConfigurator(true).Build() }; _modelClient21 = new ModelClient { Filter = new FilterConfigurator(true).Build() }; _modelClient23 = new ModelClient { Filter = new FilterConfigurator(true).Build() }; _modelClient32 = new ModelClient { Filter = new FilterConfigurator(true).Build() }; _manager1.Register(_modelClient12); _manager2.Register(_modelClient21); _manager2.Register(_modelClient23); _manager3.Register(_modelClient32); }
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)); }