Exemplo n.º 1
0
        internal HttpMessage AddDeleteEntityRequest(MultipartContent changeset, string table, string partitionKey, string rowKey, string ifMatch, int?timeout, string requestId, QueryOptions queryOptions)
        {
            var message = CreateDeleteEntityRequest(table, partitionKey, rowKey, ifMatch, timeout, requestId, queryOptions);

            changeset.AddContent(new RequestRequestContent(message.Request));
            return(message);
        }
Exemplo n.º 2
0
        internal HttpMessage AddUpdateEntityRequest(MultipartContent changeset, string table, string partitionKey, string rowKey, int?timeout, string requestId, string ifMatch, IDictionary <string, object> tableEntityProperties, QueryOptions queryOptions)
        {
            var message = CreateUpdateEntityRequest(table, partitionKey, rowKey, timeout, requestId, ifMatch, tableEntityProperties, queryOptions);

            changeset.AddContent(new RequestRequestContent(message.Request));
            return(message);
        }
Exemplo n.º 3
0
        internal HttpMessage AddInsertEntityRequest(MultipartContent changeset, string table, int?timeout, string requestId, ResponseFormat?responsePreference, IDictionary <string, object> tableEntityProperties, QueryOptions queryOptions)
        {
            var message = CreateInsertEntityRequest(table, timeout, requestId, responsePreference, tableEntityProperties, queryOptions);

            changeset.AddContent(new RequestRequestContent(message.Request));
            return(message);
        }
Exemplo n.º 4
0
        public async Task Import(string correlationKey)
        {
            var factory = new WebApplicationFactory <Startup>();
            var moqRepo = new Mock <IRebalanceRepository>();
            var client  = factory.WithWebHostBuilder(bldr =>
            {
                bldr.ConfigureServices(services =>
                {
                    services.AddSingleton(moqRepo.Object)
                    .AddTransient(provider => moqRepo.Object);
                });
            }).CreateClient();

            using var content = new MultipartContent("mixed", "========");
            content.Headers.Add("correlationKey", correlationKey);

            using var portfolioContent = new MultipartContent("mixed", "++++++++");
            using var templateStream   = await "Household.xml".AsStreamContent();
            using var dataStream       = await "Household.txt".AsStreamContent();
            portfolioContent.AddContent(
                "Household",
                templateStream,
                dataStream);

            using var streamContent           = new StreamContent(await portfolioContent.ReadAsStreamAsync());
            streamContent.Headers.ContentType = MediaTypeHeaderValue.Parse("multipart/mixed");
            streamContent.Headers.Add("AggregateType", "Portfolio");
            content.Add(streamContent);
            moqRepo.Setup((lst, id) => Task.FromResult((long)lst.Count));
            var response = await client.PostAsync("/api/Import", content);

            Assert.True(response.IsSuccessStatusCode);
            moqRepo.Verify <Portfolio>();
        }
Exemplo n.º 5
0
        public async Task ImportStream(string aggregateType, long recordCount)
        {
            var moqRepo = new Mock <IRebalanceRepository>();

            moqRepo.Setup((lst, id) =>
            {
                Assert.Equal(recordCount, lst.Count);
                return(Task.FromResult(recordCount));
            });
            using var modelContent   = new MultipartContent("mixed", "++++++++");
            using var templateStream = await $"{aggregateType}.xml".AsStreamContent();
            using var dataStream     = await $"{aggregateType}.txt".AsStreamContent();
            modelContent.AddContent(
                aggregateType,
                templateStream,
                dataStream);

            var section = new MultipartSection
            {
                Body = await modelContent.ReadAsStreamAsync()
            };

            var sut = new ImportController(_loggerFactory.CreateLogger <ImportController>(), moqRepo.Object);
            await sut.ImportStream(section);
        }
Exemplo n.º 6
0
        public async Task ThrowFromImportStreamWhenRecordTypeIsNotADomainObject()
        {
            var moqRepo = new Mock <IRebalanceRepository>();

            moqRepo.Setup((lst, id) => Task.FromResult((long)lst.Count));
            using var modelContent   = new MultipartContent("mixed", "++++++++");
            using var templateStream = await $"Model.Bad.xml".AsStreamContent();
            using var dataStream     = await $"Model.txt".AsStreamContent();
            modelContent.AddContent(
                "Model",
                templateStream,
                dataStream);

            var section = new MultipartSection
            {
                Body = await modelContent.ReadAsStreamAsync()
            };

            var sut = new ImportController(_loggerFactory.CreateLogger <ImportController>(), moqRepo.Object);
            var ex  = await Assert.ThrowsAsync <InvalidOperationException>(async() => await sut.ImportStream(section));

            Assert.Equal("Cannot import records into object of type BadModel", ex.Message);
        }