コード例 #1
0
        private static UpdateContext <BasicTestEntity> GetUpdateContextWithErrorResults()
        {
            const string responseContent = @"
            {
              ""results"": {
                ""tests"": {
                  ""2739"": {
                    ""_status_code"": 409,
                    ""_status_message"": ""Conflict"",
                    ""_status_extra"":  ""User with name Lawrence already exists."",
                    ""id"": ""2739"",
                    ""name"": ""Lawrence""
                  },
                  ""2741"": {
                    ""_status_code"": 417,
                    ""_status_message"": ""Expectation Failed"",
                    ""_status_extra"": ""You forgot something."",
                    ""id"": ""2741""
                  }
                }
              }
            }";

            var item1 = new BasicTestEntity(2739, "Lawrence");
            var item2 = new BasicTestEntity(2741);

            return(new UpdateContext <BasicTestEntity>(EndpointName.Tests, new[] { item1, item2 })
            {
                ResponseContent = responseContent
            });
        }
コード例 #2
0
        private static UpdateContext <BasicTestEntity> GetUpdateContext()
        {
            const string responseContent = @"
            {
              ""results"": {
                ""tests"": {
                  ""2735"": {
                    ""_status_code"": 200,
                    ""_status_message"": ""Updated"",
                    ""id"": ""2735"",
                    ""name"": ""Lawrence""
                  },
                  ""2737"": {
                    ""_status_code"": 200,
                    ""_status_message"": ""Updated"",
                    ""id"": ""2737"",
                    ""name"": ""Muriel""
                  }
                }
              }
            }";

            var item1 = new BasicTestEntity(2735, "Lawrence");
            var item2 = new BasicTestEntity(2737, "Muriel");

            return(new UpdateContext <BasicTestEntity>(EndpointName.Tests, new[] { item1, item2 })
            {
                ResponseContent = responseContent
            });
        }
コード例 #3
0
        public void SupplementalData_AddsAndRetrieveEntityById()
        {
            var entityToAdd = new BasicTestEntity(1);

            var supplementalData = new SupplementalData();

            supplementalData.AddOrUpdate(entityToAdd);

            var entityRetrieved = supplementalData.GetById <BasicTestEntity>(1);

            Assert.AreSame(entityToAdd, entityRetrieved);
        }
コード例 #4
0
        public void SupplementalData_AddsAndRetrievesMultipleTypesOfEntities()
        {
            var entity1 = new BasicTestEntity(1, "foo");
            var entity2 = new TestEntity(1, "foo");

            var supplementalData = new SupplementalData();

            supplementalData.AddOrUpdate(entity1);
            supplementalData.AddOrUpdate(entity2);

            IReadOnlyList <IIdentifiable> allEntities = supplementalData.GetAll();

            Assert.AreEqual(2, allEntities.Count);
        }
コード例 #5
0
        public void SupplementalData_GetAllEntitiesByTypeReturnsExpectedResults()
        {
            var entity1 = new BasicTestEntity(1, "foo");
            var entity2 = new BasicTestEntity(2, "bar");
            var entity3 = new BasicTestEntity(3, "baz");

            var supplementalData = new SupplementalData();

            supplementalData.AddOrUpdate(entity1);
            supplementalData.AddOrUpdate(entity2);
            supplementalData.AddOrUpdate(entity3);

            Assert.AreEqual(3, supplementalData.GetAll <BasicTestEntity>().Count);
        }
コード例 #6
0
        public async Task GetResultsDeserializer_CorrectlyDeserializesResultsAsync()
        {
            var expectedResult0 = new BasicTestEntity(1, "Larry");
            var expectedResult1 = new BasicTestEntity(2, "Mary");

            GetContext <BasicTestEntity> context = GetContext <BasicTestEntity>();

            await this.pipelineElement.ProcessAsync(context, NullLogger.Instance, default).ConfigureAwait(false);

            const int expectedCount = 2;

            Assert.AreEqual(expectedCount, context.Results.Items.Count, $"Expected {expectedCount} results.");
            Assert.AreEqual(context.Results.Items[0], expectedResult0);
            Assert.AreEqual(context.Results.Items[1], expectedResult1);
        }
コード例 #7
0
        public void SupplementalData_UpdatesEntityById()
        {
            var initialEntityToAdd = new BasicTestEntity(1, "foo");
            var updatedEntityToAdd = new BasicTestEntity(1, "bar");

            var supplementalData = new SupplementalData();

            supplementalData.AddOrUpdate(initialEntityToAdd);
            supplementalData.AddOrUpdate(updatedEntityToAdd);

            Assert.AreEqual(1, supplementalData.GetAll <BasicTestEntity>().Count);

            var entityRetrieved = supplementalData.GetById <BasicTestEntity>(1);

            Assert.AreSame(updatedEntityToAdd, entityRetrieved);
        }
コード例 #8
0
        public async Task ModificationResultsDeserializer_CorrectlyDeserializesResultsAsync()
        {
            var expectedResult1 = new BasicTestEntity(2735, "Lawrence");
            var expectedResult2 = new BasicTestEntity(2737, "Muriel");

            UpdateContext <BasicTestEntity> context = GetUpdateContext();

            await this.pipelineElement.ProcessAsync(context, NullLogger.Instance, default).ConfigureAwait(false);

            const int expectedCount = 2;

            Assert.AreEqual(expectedCount, context.Results.Items.Count, $"Expected {expectedCount} success results.");

            Assert.AreEqual(expectedResult1, context.Results.Items[0],
                            "First success result does not match expected.");

            Assert.AreEqual(expectedResult2, context.Results.Items[1],
                            "Second success result does not match expected.");
        }
コード例 #9
0
        public async Task ModificationResultsDeserializer_CorrectlyDeserializesResultsWithErrorsAsync()
        {
            var expectedErrorStatus1 = new ErrorItem <BasicTestEntity>(
                0,
                new Status
            {
                Id      = 2739,
                Code    = 409,
                Message = "Conflict",
                Extra   = "User with name Lawrence already exists."
            });

            var expectedErrorResult1 = new BasicTestEntity(2739, "Lawrence");

            var expectedErrorStatus2 = new ErrorItem <BasicTestEntity>(
                0,
                new Status
            {
                Id      = 2741,
                Code    = 417,
                Message = "Expectation Failed",
                Extra   = "You forgot something."
            });

            UpdateContext <BasicTestEntity> context = GetUpdateContextWithErrorResults();

            await this.pipelineElement.ProcessAsync(context, NullLogger.Instance, default).ConfigureAwait(false);

            const int expectedCount = 2;

            Assert.AreEqual(expectedCount, context.Results.ErrorItems.Count, $"Expected {expectedCount} error results.");

            Assert.IsTrue(expectedErrorStatus1.StatusIsEqualTo(context.Results.ErrorItems[0]),
                          "First error status does not match expected.");

            Assert.AreEqual(expectedErrorResult1, context.Results.ErrorItems[0].Item,
                            "First error item does not match expected.");

            Assert.IsTrue(expectedErrorStatus2.StatusIsEqualTo(context.Results.ErrorItems[1]),
                          "Second error status does not match expected.");
        }