Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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>();
        }
Пример #4
0
        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>();
        }
Пример #5
0
        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");
        }
Пример #6
0
        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));
        }
Пример #7
0
        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);
        }
Пример #8
0
        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" }
            });
        }
Пример #9
0
        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));
        }