Example #1
0
        public async Task Return_CustomResponseObject_WhenCallIsSuccessful()
        {
            HttpResponseMessage httpResponseMessage = new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(@"{ ""result"":""success""}"),
            };

            HandlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(httpResponseMessage);

            DilibHttpClientResponse <ExampleResult> exampleResult = await DiLibHttpClient.GetAsync <ExampleResult>(
                AbsoluteUri)
                                                                    .ConfigureAwait(false);

            exampleResult.Should().BeOfType <DilibHttpClientResponse <ExampleResult> >();
            exampleResult.IsSuccess.Should().BeTrue();
            exampleResult.HttpStatusCode.Should().Be((int)HttpStatusCode.OK);
            exampleResult.Result.Should().BeOfType <ExampleResult>();
            exampleResult.Result.Result.Should().Be("success");
        }
        public async Task Return_CustomResponseObject_WhenCallIsFailed()
        {
            HttpResponseMessage httpResponseMessage = new HttpResponseMessage()
            {
                StatusCode = HttpStatusCode.BadRequest,
            };
            Example example = new Example();

            HandlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(httpResponseMessage);

            DilibHttpClientResponse <Example> result = await DiLibHttpClient.DeleteAsync <Example>(
                AbsoluteUri, example)
                                                       .ConfigureAwait(false);

            result.Should().BeOfType <DilibHttpClientResponse <Example> >();
            result.IsSuccess.Should().BeFalse();
            result.HttpStatusCode.Should().Be((int)HttpStatusCode.BadRequest);
            result.Exception.Should().BeOfType <HttpRequestException>();
        }
        public async Task RootDimensionStructureNodeIsAddedToSourceFormat(Table table)
        {
            RootDimensionStructureNodeIsAddedToSourceFormatEntity instance = table
                                                                             .CreateInstance <RootDimensionStructureNodeIsAddedToSourceFormatEntity>();

            SourceFormat sf = _scenarioContext.Get <SourceFormat>(instance.SourceFormatResultKey);

            Check.IsNotNull(sf);
            DimensionStructureNode dsn = _scenarioContext.Get <DimensionStructureNode>(
                instance.DimensionStructureNodeResultKey);

            Check.IsNotNull(dsn);

            AddRootDimensionStructureNodeViewModel vm = new AddRootDimensionStructureNodeViewModel()
            {
                DimensionStructureNodeId = dsn.Id,
                SourceFormatId           = sf.Id,
            };

            DilibHttpClientResponse <SourceFormat> result = await _masterDataHttpClient.SourceFormatHttpClient
                                                            .AddRootDimensionStructureNodeAsync(vm)
                                                            .ConfigureAwait(false);

            _scenarioContext.Add(instance.ResultKey, result);
        }
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <List <DimensionStructure> > > GetAllAsync(
            CancellationToken cancellationToken = default)
        {
            string url = $"{MasterDataApi.DimensionStructure.RouteBase}/{MasterDataApi.DimensionStructure.V1.GetAll}";
            DilibHttpClientResponse <List <DimensionStructure> > result = await _diLibHttpClient
                                                                          .GetAsync <List <DimensionStructure> >(url, cancellationToken)
                                                                          .ConfigureAwait(false);

            return(result);
        }
Example #5
0
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <List <SourceFormat> > > GetInactives(
            CancellationToken cancellationToken = default)
        {
            string url = $"{MasterDataApi.SourceFormat.BasePath}/{MasterDataApi.SourceFormat.V1.GetInActives}";
            DilibHttpClientResponse <List <SourceFormat> > result = await _diLibHttpClient
                                                                    .GetAsync <List <SourceFormat> >(url, cancellationToken)
                                                                    .ConfigureAwait(false);

            return(result);
        }
Example #6
0
        public async Task WhenIRequestListOfInactiveSourceFormats(Table table)
        {
            KeyResultKeyEntity instance = table.CreateInstance <KeyResultKeyEntity>();

            DilibHttpClientResponse <List <SourceFormat> > result = await _masterDataHttpClient
                                                                    .SourceFormatHttpClient
                                                                    .GetInactives()
                                                                    .ConfigureAwait(false);

            _scenarioContext.Add(instance.ResultKey, result.Result);
        }
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <DimensionStructure> > DeleteAsync(
            DimensionStructure dimensionStructure,
            CancellationToken cancellationToken = default)
        {
            string url = $"{MasterDataApi.DimensionStructure.RouteBase}/{MasterDataApi.DimensionStructure.V1.Delete}";
            DilibHttpClientResponse <DimensionStructure> result = await _diLibHttpClient
                                                                  .DeleteAsync(url, dimensionStructure, cancellationToken)
                                                                  .ConfigureAwait(false);

            return(result);
        }
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <SourceFormat> > DeleteAsync(
            SourceFormat tobeDeleted,
            CancellationToken cancellationToken = default)
        {
            string url = $"{MasterDataApi.SourceFormat.BasePath}/{MasterDataApi.SourceFormat.V1.Delete}";
            DilibHttpClientResponse <SourceFormat> result = await _diLibHttpClient
                                                            .DeleteAsync(url, tobeDeleted, cancellationToken)
                                                            .ConfigureAwait(false);

            return(result);
        }
Example #9
0
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <DimensionStructure> > UpdateAsync(
            DimensionStructure payload,
            CancellationToken cancellationToken = default)
        {
            Check.IsNotNull(payload);
            string url = $"{MasterDataApi.DimensionStructure.RouteBase}/{MasterDataApi.DimensionStructure.V1.Update}";
            DilibHttpClientResponse <DimensionStructure> result = await _diLibHttpClient
                                                                  .PutAsync <DimensionStructure>(url, payload, cancellationToken)
                                                                  .ConfigureAwait(false);

            return(result);
        }
Example #10
0
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <SourceFormat> > GetByIdAsync(
            SourceFormat getById,
            CancellationToken cancellationToken = default)
        {
            Check.IsNotNull(getById);
            string url = $"{SourceFormatBase}/{MasterDataApi.SourceFormat.V1.GetById}";
            DilibHttpClientResponse <SourceFormat> result = await _diLibHttpClient
                                                            .PostAsync(url, getById, cancellationToken)
                                                            .ConfigureAwait(false);

            return(result);
        }
Example #11
0
        public void ItReturns(Table table)
        {
            StatusCodeEntity instance = table.CreateInstance <StatusCodeEntity>();
            DilibHttpClientResponse <SourceFormat> result = _scenarioContext[instance.ResultKey]
                                                            as DilibHttpClientResponse <SourceFormat>;

            Check.IsNotNull(result);

            int expectedStatusCode = int.Parse(instance.StatusCode);

            result.HttpStatusCode.Should().Be(expectedStatusCode);
        }
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <DimensionStructure> > GetByIdAsync(
            DimensionStructure requested,
            CancellationToken cancellationToken = default)
        {
            Check.IsNotNull(requested);
            string url = $"{MasterDataApi.DimensionStructure.RouteBase}/{MasterDataApi.DimensionStructure.V1.GetById}";
            DilibHttpClientResponse <DimensionStructure> result = await _diLibHttpClient
                                                                  .PostAsync <DimensionStructure>(url, requested, cancellationToken)
                                                                  .ConfigureAwait(false);

            return(result);
        }
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <SourceFormat> > UpdateAsync(
            SourceFormat sourceFormat,
            CancellationToken cancellationToken = default)
        {
            Check.IsNotNull(sourceFormat);

            string url = $"{SourceFormatBase}/{MasterDataApi.SourceFormat.V1.Update}";
            DilibHttpClientResponse <SourceFormat> result = await _diLibHttpClient
                                                            .PutAsync(url, sourceFormat, cancellationToken)
                                                            .ConfigureAwait(false);

            return(result);
        }
        public async Task WhenDimensionStructureDeleteEndpointIsCalled(Table table)
        {
            KeyResultKeyEntity instance = table.CreateInstance <KeyResultKeyEntity>();

            DimensionStructure dimensionStructure = _scenarioContext[instance.Key] as DimensionStructure;

            DilibHttpClientResponse <DimensionStructure> result = await _masterDataHttpClient
                                                                  .DimensionStructureHttpClient
                                                                  .DeleteAsync(dimensionStructure)
                                                                  .ConfigureAwait(false);

            _scenarioContext.Add(instance.ResultKey, result.HttpStatusCode);
        }
Example #15
0
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <DimensionStructureNode> > CreateDimensionStructureNodeAsync(
            DimensionStructureNode dimensionStructureNode,
            CancellationToken cancellationToken = default)
        {
            Check.IsNotNull(dimensionStructureNode);

            string url = $"{SourceFormatBase}/{MasterDataApi.SourceFormat.V1.CreateDimensionStructureNode}";
            DilibHttpClientResponse <DimensionStructureNode> result = await _diLibHttpClient
                                                                      .PostAsync(url, dimensionStructureNode, cancellationToken)
                                                                      .ConfigureAwait(false);

            return(result);
        }
        public async Task WhenSourceFormatIsSentToSourceFormatEndpointDeleteMethod(Table table)
        {
            KeyResultKeyEntity instance = table.CreateInstance <KeyResultKeyEntity>();

            SourceFormat tobeDeleted = _scenarioContext[instance.Key] as SourceFormat;

            DilibHttpClientResponse <SourceFormat> result = await _masterDataHttpClient
                                                            .SourceFormatHttpClient
                                                            .DeleteAsync(tobeDeleted)
                                                            .ConfigureAwait(false);

            _scenarioContext.Add(instance.ResultKey, result.HttpStatusCode);
        }
        public async Task DimensionStructureNodeIsAddedToSourceFormatAsRootDimensionStructureNode(Table table)
        {
            DimensionStructureNodeIsAddedToSourceFormatAsRootDimensionStructureNodeEntity instance = table
                                                                                                     .CreateInstance <DimensionStructureNodeIsAddedToSourceFormatAsRootDimensionStructureNodeEntity>();

            bool doesSourceFormatExist           = GetKeyValueFromScenarioContext <bool>(ScenarioContextKeys.SourceFormatExist);
            bool doesDimensionStructureNodeExist =
                GetKeyValueFromScenarioContext <bool>(ScenarioContextKeys.DimensionStructureNodeIdExist);
            long sourceFormatIdFromContext           = GetKeyValueFromScenarioContext <long>(ScenarioContextKeys.SourceFormatId);
            long dimensionStructureNodeIdFromContext =
                GetKeyValueFromScenarioContext <long>(ScenarioContextKeys.DimensionStructureNodeId);

            long dimensionStructureNodeId = 0;
            long sourceFormatId           = 0;

            if (doesSourceFormatExist)
            {
                SourceFormat sourceFormat = await CreateSourceFormatEntity().ConfigureAwait(false);

                sourceFormatId = sourceFormat.Id;
            }
            else
            {
                sourceFormatId = sourceFormatIdFromContext;
            }

            if (doesDimensionStructureNodeExist)
            {
                DimensionStructureNode node = await CreateDimensionStructureNodeEntity().ConfigureAwait(false);

                dimensionStructureNodeId = node.Id;
            }
            else
            {
                dimensionStructureNodeId = dimensionStructureNodeIdFromContext;
            }

            AddRootDimensionStructureNodeViewModel addRootDimensionStructureNodeViewModel =
                new AddRootDimensionStructureNodeViewModel
            {
                SourceFormatId           = sourceFormatId,
                DimensionStructureNodeId = dimensionStructureNodeId,
            };

            DilibHttpClientResponse <SourceFormat> result = await _masterDataHttpClient
                                                            .SourceFormatHttpClient
                                                            .AddRootDimensionStructureNodeAsync(addRootDimensionStructureNodeViewModel)
                                                            .ConfigureAwait(false);

            _scenarioContext.Add(instance.ResultKey, result);
        }
Example #18
0
        public void ThenSingleSourceFormatDimensionStructureNodeItemRequestResultIs(Table table)
        {
            KeyExpectedValueEntity instance = table.CreateInstance <KeyExpectedValueEntity>();

            DilibHttpClientResponse <SourceFormatDimensionStructureNode> result = _scenarioContext[instance.Key]
                                                                                  as DilibHttpClientResponse <SourceFormatDimensionStructureNode>;

            Check.IsNotNull(result);

            if (instance.ExpectedValue == "null")
            {
                result.Result.Should().BeNull();
            }
        }
        private async Task <DimensionStructureNode> CreateDimensionStructureNodeEntity()
        {
            DimensionStructureNode entity = _dimensionStructureNodeFaker.Generate();
            DilibHttpClientResponse <DimensionStructureNode> result = await _masterDataHttpClient
                                                                      .SourceFormatHttpClient
                                                                      .CreateDimensionStructureNodeAsync(entity)
                                                                      .ConfigureAwait(false);

            if (!result.IsSuccess)
            {
                throw new Exception();
            }

            return(result.Result);
        }
        private async Task <SourceFormat> CreateSourceFormatEntity()
        {
            SourceFormat entity = _sourceFormatFaker.Generate();
            DilibHttpClientResponse <SourceFormat> result = await _masterDataHttpClient
                                                            .SourceFormatHttpClient
                                                            .AddAsync(entity)
                                                            .ConfigureAwait(false);

            if (!result.IsSuccess)
            {
                throw new Exception();
            }

            return(result.Result);
        }
        public async Task WhenToBeInactivatedSourceFormatDomainObjectIsSentToSourceFormatEndpoint(Table table)
        {
            Check.IsNotNull(table);

            KeyResultKeyEntity instance = table.CreateInstance <KeyResultKeyEntity>();

            SourceFormat toBeInactivated = _scenarioContext[instance.Key] as SourceFormat;

            DilibHttpClientResponse <SourceFormat> result = await _masterDataHttpClient
                                                            .SourceFormatHttpClient
                                                            .InactivateAsync(toBeInactivated)
                                                            .ConfigureAwait(false);

            _scenarioContext.Add(instance.ResultKey, result.HttpStatusCode);
        }
Example #22
0
        public async Task WhenSourceFormatWithGivenIdIsRequested(Table table)
        {
            WhenSourceFormatWithGivenIdIsRequestedEntity instance = table
                                                                    .CreateInstance <WhenSourceFormatWithGivenIdIsRequestedEntity>();

            SourceFormat getById = _scenarioContext[instance.IdValueSource] as SourceFormat;

            Check.IsNotNull(getById);

            DilibHttpClientResponse <SourceFormat> result = await _masterDataHttpClient
                                                            .SourceFormatHttpClient
                                                            .GetByIdAsync(getById)
                                                            .ConfigureAwait(false);

            _scenarioContext.Add(instance.ResultKey, result.Result);
        }
Example #23
0
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <SourceFormat> > AddRootDimensionStructureNodeAsync(
            AddRootDimensionStructureNodeViewModel addRootDimensionStructureNodeViewModel,
            CancellationToken cancellationToken = default)
        {
            Check.IsNotNull(addRootDimensionStructureNodeViewModel);

            string url = $"{SourceFormatBase}/{MasterDataApi.SourceFormat.V1.AddRootDimensionStructureNode}";
            DilibHttpClientResponse <SourceFormat> result = await _diLibHttpClient
                                                            .PostAsync <SourceFormat, AddRootDimensionStructureNodeViewModel>(
                url,
                addRootDimensionStructureNodeViewModel,
                cancellationToken
                )
                                                            .ConfigureAwait(false);

            return(result);
        }
        public async Task WhenModifiedSourceFormatDomainObjectIsSentToSourceFormatEndpoint(Table table)
        {
            Check.IsNotNull(table);
            KeyResultKeyEntity instance = table.CreateInstance <KeyResultKeyEntity>();

            SourceFormat sourceFormat = _scenarioContext[instance.Key]
                                        as SourceFormat;

            Check.IsNotNull(sourceFormat);

            DilibHttpClientResponse <SourceFormat> result = await _masterDataHttpClient
                                                            .SourceFormatHttpClient
                                                            .UpdateAsync(sourceFormat)
                                                            .ConfigureAwait(false);

            _scenarioContext.Add(instance.ResultKey, result.Result);
        }
        /// <inheritdoc/>
        public async Task <DilibHttpClientResponse <T> > PostAsync <T>(
            string url,
            T payload,
            CancellationToken cancellationToken = default)
            where T : class
        {
            Check.IsNotNull(payload);
            Check.NotNullOrEmptyOrWhitespace(url);
            DilibHttpClientResponse <T> result = new DilibHttpClientResponse <T>();

            HttpRequestMessage httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, url);

            httpRequestMessage.Content = CreateStringContent(payload);

            HttpResponseMessage httpResponseMessage = await _httpClient.SendAsync(
                httpRequestMessage,
                cancellationToken)
                                                      .ConfigureAwait(false);

            try
            {
                httpResponseMessage.EnsureSuccessStatusCode();
                string content = await httpResponseMessage
                                 .Content
                                 .ReadAsStringAsync(cancellationToken)
                                 .ConfigureAwait(false);

                T res = JsonToObject <T>(content);

                result.Result         = res;
                result.IsSuccess      = true;
                result.HttpStatusCode = (int)httpResponseMessage.StatusCode;

                return(result);
            }
            catch (Exception e)
            {
                result.ExceptionMessage = e.Message;
                result.Exception        = e;
                result.HttpStatusCode   = (int)httpResponseMessage.StatusCode;
                result.IsSuccess        = false;

                return(result);
            }
        }
Example #26
0
        public async Task WhenDimensionStructureGetAllEndpointIsCalled(Table table)
        {
            KeyResultKeyEntity instance = table.CreateInstance <KeyResultKeyEntity>();

            DilibHttpClientResponse <List <DimensionStructure> > result = await _masterDataHttpClient
                                                                          .DimensionStructureHttpClient
                                                                          .GetAllAsync()
                                                                          .ConfigureAwait(false);

            if (result.IsSuccess)
            {
                _scenarioContext.Add(instance.ResultKey, result.Result);
            }
            else
            {
                _scenarioContext.Add(instance.ResultKey, result.HttpStatusCode);
            }
        }
Example #27
0
        public async Task GivenThereIsASavedDimensionStructureNodeDomainObject(Table table)
        {
            KeyResultKeyEntity instance = table.CreateInstance <KeyResultKeyEntity>();

            DimensionStructureNode node = _dimensionStructureNodeFaker.Generate();

            DilibHttpClientResponse <DimensionStructureNode> result = await _masterDataHttpClient
                                                                      .SourceFormatHttpClient
                                                                      .CreateDimensionStructureNodeAsync(node)
                                                                      .ConfigureAwait(false);

            if (!result.IsSuccess)
            {
                throw new Exception(result.ExceptionMessage);
            }

            _scenarioContext.Add(instance.ResultKey, result.Result);
        }
        public async Task GivenThereIsASavedSourceFormatDomainObject(Table table)
        {
            ThereIsASavedSourceFormatDomainObjectEntity instance = table
                                                                   .CreateInstance <ThereIsASavedSourceFormatDomainObjectEntity>();

            SourceFormat sourceFormat = _masterDataTestHelper
                                        .SourceFormatFactory
                                        .Create(instance);

            DilibHttpClientResponse <SourceFormat> result = await _masterDataHttpClient
                                                            .SourceFormatHttpClient
                                                            .AddAsync(sourceFormat)
                                                            .ConfigureAwait(false);

            if (result.IsSuccess)
            {
                _scenarioContext.Add(instance.ResultKey, result.Result);
            }
        }
        public async Task WhenADimensionStructureIsRequested(Table table)
        {
            KeyResultKeyEntity instance = table.CreateInstance <KeyResultKeyEntity>();

            DimensionStructure requested = _scenarioContext[instance.Key] as DimensionStructure;

            DilibHttpClientResponse <DimensionStructure> result = await _masterDataHttpClient
                                                                  .DimensionStructureHttpClient
                                                                  .GetByIdAsync(requested)
                                                                  .ConfigureAwait(false);

            if (result.IsSuccess)
            {
                _scenarioContext.Add(instance.ResultKey, result.Result);
            }
            else
            {
                _scenarioContext.Add(instance.ResultKey, result.HttpStatusCode);
            }
        }
Example #30
0
        public async Task GivenThereAreInactiveSavedDimensionStructures(int p0)
        {
            for (int i = 0; i < p0; i++)
            {
                IDimensionStructureDomainObject dimensionStructureDomainObject =
                    new ThereIsADimensionStructureDomainObjectEntity
                {
                    IsActive = 0,
                };

                DimensionStructure dimensionStructure = _masterDataTestHelper
                                                        .DimensionStructureFactory
                                                        .Create(dimensionStructureDomainObject);

                DilibHttpClientResponse <DimensionStructure> result = await _masterDataHttpClient
                                                                      .DimensionStructureHttpClient
                                                                      .AddAsync(dimensionStructure)
                                                                      .ConfigureAwait(false);
            }
        }