public void when_using_explicit_setter_on_new_object() { //setup var baseObject = TestHelper.CreateWithNonDefaultProperties<FlatPropertyBag>(); var controller = new PropertyBagVersionController<FlatPropertyBag>(baseObject, _testHelper.MakeConfiguredCloneFactoryFor<FlatPropertyBag>(), _testHelper.EmptyChangeSet(), _testHelper.MakeConfiguredVisitorFactory(), _testHelper.MakeConfiguredProxyFactory()); const string changedValue = "Change!"; //act controller.Set(baseObject.PropertyInfoFor(x => x.StringProperty), changedValue, 1); //assert controller.Mutations.Should().ContainSingle(mutation => mutation.Arguments.Single().Equals(changedValue)); }
public void when_using_explicit_setter_on_object_with_history() { //setup var baseObject = TestHelper.CreateWithNonDefaultProperties<FlatPropertyBag>(); var targetSite = baseObject.PropertyInfoFor(x => x.StringProperty).GetSetMethod(); var changeSet = TestHelper.ChangeSet("Original", targetSite, 1L, isActive:false); var controller = new PropertyBagVersionController<FlatPropertyBag>(baseObject, _testHelper.MakeConfiguredCloneFactoryFor<FlatPropertyBag>(), changeSet, _testHelper.MakeConfiguredVisitorFactory(), _testHelper.MakeConfiguredProxyFactory()); const string changedValue = "Change!"; //act controller.Set(targetSite.GetParentProperty(), changedValue, 2L); //assert controller.Mutations.Should().ContainSingle(mutation => mutation.Arguments.Single().Equals(changedValue)); controller.Mutations.Should().HaveCount(1); }
public void when_redoing_delta_thats_been_trashed() { var baseObject = TestHelper.CreateWithNonDefaultProperties<FlatPropertyBag>(); var targetSite = baseObject.PropertyInfoFor(x => x.StringProperty).GetSetMethod(); var controller = new PropertyBagVersionController<FlatPropertyBag>(baseObject, _testHelper.MakeConfiguredCloneFactoryFor<FlatPropertyBag>(), TestHelper.ChangeSet("undone value", targetSite, 1L, isActive: false), _testHelper.MakeConfiguredVisitorFactory(), _testHelper.MakeConfiguredProxyFactory()); //act controller.Set(targetSite.GetParentProperty(), "New Value", 2L); TestDelegate act = () => controller.RedoLastAssignmentTo(x => x.StringProperty); //assert Assert.Throws<VersionDeltaNotFoundException>(act); A.CallTo(() => _testHelper.ProvidedVisitorFactory.MakeDeltaApplicationVisitor(ChangeType.Unknown, false, null)) .WithAnyArguments() .MustNotHaveHappened(); }