예제 #1
0
        public async Task PostJsonTest()
        {
            var sut = TestUtils.GenerateSut();

            //arrange
            var request = new PostJsonRequest
            {
                IntValue    = sut.CreateFixture <int>(),
                FloatValue  = sut.CreateFixture <float>(),
                DateValue   = sut.CreateFixture <DateTime>(),
                EnumValue   = sut.CreateEnumFixture <ExampleEnum>(),
                StringValue = sut.CreateFixture <string>(),
                IntList     = sut.CreateManyFixture <int>(new Random().Next(3, 20))
            };

            //act
            var res = await sut.ExecutePostAsync <PostJsonResponse, PostJsonRequest>(
                urlPath : "/api/example/post-json",
                request : request);

            //assert
            var expectedResult = new PostJsonResponse
            {
                Message = $"post-json {request.Serialize()}"
            };

            Assert.Equal(expected: expectedResult.Serialize(), actual: res.Serialize());
        }
예제 #2
0
        public async Task PostJsonExecuteThroughHttpTest()
        {
            var sut = TestUtils.GenerateSut();

            //arrange
            var request = new PostJsonRequest
            {
                IntValue    = sut.CreateFixture <int>(),
                FloatValue  = sut.CreateFixture <float>(),
                DateValue   = sut.CreateFixture <DateTime>(),
                EnumValue   = sut.CreateEnumFixture <ExampleEnum>(),
                StringValue = sut.CreateFixture <string>(),
                IntList     = sut.CreateManyFixture <int>(new Random().Next(3, 20))
            };

            var expectedResult = new PostJsonResponse
            {
                Message = $"post-json {request.Serialize()}"
            };

            var exampleHttpService = sut.GetRequiredService <IExampleHttpService>();

            exampleHttpService
            .PostJsonAsync(request: Arg.Is <PostJsonRequest>(predicate: x => x.Serialize(null) == request.Serialize(null)), callerMethodName: Arg.Any <string>())
            .Returns(expectedResult);

            //act
            var res = await sut.ExecutePostAsync <PostJsonResponse, PostJsonRequest>(
                urlPath : "/api/example/post-json-through-http",
                request : request);

            //assert
            Assert.Equal(expected: expectedResult.Serialize(), actual: res.Serialize());
        }
예제 #3
0
        public async Task ExecuteJsonPostAsync()
        {
            // Arrange
            const string expectedResponseMessage = "Item created";
            const int    expectedResponseCode    = 200;

            var jsonObject = new {
                Id    = 42,
                Name  = "Test Object",
                Delta = 56.78f
            };

            var request = new PostJsonRequest("RestArt", jsonObject, null, null);

            IRestArtClient client = new RestArtClient(this._restUrl);

            client.AddOrUpdatePersistentHeader("PersistentHeader", "ph-value");

            // Act
            IRestResponse <Models.TestResponse> response = await client.ExecuteAsync <Models.TestResponse>(request);

            // Assert
            Assert.NotNull(response);
            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.NotNull(response.Raw);
            Assert.NotNull(response.Value);
            Assert.Equal(expectedResponseCode, response.Value.Code);
            Assert.Equal(expectedResponseMessage, response.Value.Msg);
        }
예제 #4
0
        public PostJsonResponse PostJson([FromBody] PostJsonRequest request)
        {
            _logger.LogError("json readed");

            return(new PostJsonResponse {
                Message = $"post-json {request.Serialize()}"
            });
        }
예제 #5
0
        public async Task <PostJsonResponse> PostJsonExecuteThroughHttpAsync([FromBody] PostJsonRequest request)
        {
            request.RequiredNotNull(nameof(request));
            request.RequiredNotNull(() => request.StringValue);
            request.RequiredArgumentEnumIsDefinedValue(() => request.EnumValue);
            request.RequiredArgumentNotDefaultValue(() => request.IntValue);
            request.RequiredArgumentListNotEmpty(() => request.IntList);
            request.RequiredArgumentNotDefaultValue(() => request.FloatValue);

            _logger.LogError("json readed");

            return(await _exampleHttpService.PostJsonAsync(request));
        }
예제 #6
0
        public async Task <PostJsonResponse> PostJsonExecuteThroughHttpTwiceAsync([FromBody] PostJsonRequest request)
        {
            _logger.LogError("json readed");

            return(await _exampleHttpService.PostJsonExecuteThroughHttpAsync(request));
        }
예제 #7
0
 public async Task <PostJsonResponse> PostJsonExecuteThroughHttpAsync(PostJsonRequest request, [CallerMemberName] string callerMemberName = null)
 => await ExecutePostAsync <PostJsonResponse, PostJsonRequest>("api/example/post-json-through-http", request, callerMemberName : callerMemberName);