public void UpdateActionInvalid_MissingOrNonJsonPayload_DoesNotAlterAction(string payload) { //Arrange var originalAction = new FakeAnarchyAction(); var schedulerFactory = Get.CustomBuilderFor.MockSchedulerFactory.Build(); var sut = new ActionOrchestrator <FakeAnarchyAction>(originalAction, schedulerFactory); //Act Assert.Catch(() => sut.UpdateAction(payload)); //Assert sut.AnarchyAction.Should().Be(originalAction); }
public void UpdateActionValid_EmptyObjectPayload_DoesNotAlterAction(string payload) { //Arrange var originalAction = new FakeAnarchyAction(); var schedulerFactory = Get.CustomBuilderFor.MockSchedulerFactory.Build(); var sut = new ActionOrchestrator <FakeAnarchyAction>(originalAction, schedulerFactory); //Act sut.UpdateAction(payload); //Assert sut.AnarchyAction.Should().BeEquivalentTo(originalAction); }
public void UpdateActionInvalid_NullForValueTypePayload_Throws() { //Arrange var originalAction = new FakeAnarchyAction(); var schedulerFactory = Get.CustomBuilderFor.MockSchedulerFactory.Build(); var sut = new ActionOrchestrator <FakeAnarchyAction>(originalAction, schedulerFactory); const string payload = "{ 'ThisIsAnIntegerProperty': null }"; //Act var exception = Assert.Catch(() => sut.UpdateAction(payload)); //Assert exception.Should().BeOfType <InvalidActionPayloadException>(); }
public void UpdateActionInvalid_MissingOrNonJsonPayload_Throws(string payload) { //Arrange var originalAction = new FakeAnarchyAction(); var schedulerFactory = Get.CustomBuilderFor.MockSchedulerFactory.Build(); var sut = new ActionOrchestrator <FakeAnarchyAction>(originalAction, schedulerFactory); //Act var exception = Assert.Catch(() => sut.UpdateAction(payload)); //Assert exception.Should().BeOfType <InvalidActionPayloadException>(); }
public void UpdateActionValid_SinglePublicPropertyPayload_SetsProperty() { //Arrange var originalAction = new FakeAnarchyAction(); var schedulerFactory = Get.CustomBuilderFor.MockSchedulerFactory.Build(); var sut = new ActionOrchestrator <FakeAnarchyAction>(originalAction, schedulerFactory); const string payload = "{ \"ThisIsAPublicProperty\":\"Bob\" }"; //Act sut.UpdateAction(payload); //Assert ((FakeAnarchyAction)sut.AnarchyAction).ThisIsAPublicProperty.Should().Be("Bob"); }
public void UpdateActionValid_SinglePublicPropertyPayload_DoesNotAlterOtherProperties() { //Arrange var originalAction = new FakeAnarchyAction(); var schedulerFactory = Get.CustomBuilderFor.MockSchedulerFactory.Build(); var sut = new ActionOrchestrator <FakeAnarchyAction>(originalAction, schedulerFactory); const string payload = "{ \"ThisIsAPublicProperty\":\"Bob\" }"; //Act sut.UpdateAction(payload); //Assert sut.AnarchyAction.Should().BeEquivalentTo(originalAction, e => e.Excluding(b => b.ThisIsAPublicProperty)); }
public void UpdateActionValid_ReadonlyPropertyPayload_DoesNotAlterAction() { //Arrange var originalAction = new FakeAnarchyAction(); var schedulerFactory = Get.CustomBuilderFor.MockSchedulerFactory.Build(); var sut = new ActionOrchestrator <FakeAnarchyAction>(originalAction, schedulerFactory); const string payload = "{ 'Name':'ShouldNotBeSet' }"; //Act sut.UpdateAction(payload); //Assert sut.AnarchyAction.Should().BeEquivalentTo(originalAction); }
public void UpdateActionValid_MultiplePublicPropertiesPayload_SetsProperties() { //Arrange var originalAction = new FakeAnarchyAction(); var schedulerFactory = Get.CustomBuilderFor.MockSchedulerFactory.Build(); var sut = new ActionOrchestrator <FakeAnarchyAction>(originalAction, schedulerFactory); const string payload = "{ \"ThisIsAPublicProperty\":\"Bob\", \"ThisIsAPublicDictionaryProperty\":{\"ThisIsAKey\":\"ThisIsAValue\"} }"; //Act sut.UpdateAction(payload); //Assert var alteredAction = (FakeAnarchyAction)sut.AnarchyAction; alteredAction.ThisIsAPublicProperty.Should().Be("Bob"); alteredAction.ThisIsAPublicDictionaryProperty.Should().BeEquivalentTo(new Dictionary <string, string> { { "ThisIsAKey", "ThisIsAValue" } }); }
public void UpdateActionValid_MultiplePublicPropertiesPayload_DoesNotAlterOtherProperties() { //Arrange var originalAction = new FakeAnarchyAction { ThisIsAnIntegerProperty = 43 }; var schedulerFactory = Get.CustomBuilderFor.MockSchedulerFactory.Build(); var sut = new ActionOrchestrator <FakeAnarchyAction>(originalAction, schedulerFactory); const string payload = "{ \"ThisIsAPublicProperty\":\"Bob\", \"ThisIsAPublicDictionaryProperty\":{\"ThisIsAKey\":\"ThisIsAValue\"} }"; //Act sut.UpdateAction(payload); //Assert var alteredAction = (FakeAnarchyAction)sut.AnarchyAction; alteredAction.Should().BeEquivalentTo(originalAction, e => e .Excluding(b => b.ThisIsAPublicProperty) .Excluding(b => b.ThisIsAPublicDictionaryProperty)); }