Exemple #1
0
    public async Task Validate()
    {
        var invalidWidget = new WidgetDto();
        var validWidget   = new WidgetDto {
            Id = 1, Name = "one"
        };

        var createdWidget = invalidWidget;
        var api           = new DelegatingConformanceApi(async(_, _, _) => ServiceResult.Success <ServiceDto>(new CreateWidgetResponseDto {
            Widget = createdWidget
        }));

        (await api.CreateWidgetAsync(new CreateWidgetRequestDto {
            Widget = invalidWidget
        })).Should().BeSuccess();

        var validatingApi = new DelegatingConformanceApi(ServiceDelegators.Validate(api));

        (await validatingApi.CreateWidgetAsync(new CreateWidgetRequestDto {
            Widget = invalidWidget
        })).Should().BeFailure(ServiceErrors.InvalidRequest);
        (await validatingApi.CreateWidgetAsync(new CreateWidgetRequestDto {
            Widget = validWidget
        })).Should().BeFailure(ServiceErrors.InvalidResponse);

        createdWidget = validWidget;
        (await validatingApi.CreateWidgetAsync(new CreateWidgetRequestDto {
            Widget = invalidWidget
        })).Should().BeFailure(ServiceErrors.InvalidRequest);
        (await validatingApi.CreateWidgetAsync(new CreateWidgetRequestDto {
            Widget = validWidget
        })).Should().BeSuccess();
    }
Exemple #2
0
        public async Task Forward()
        {
            var inner = new CheckPathCounter();
            var api   = new DelegatingConformanceApi(ServiceDelegators.Forward(inner));

            (await api.CheckPathAsync(new CheckPathRequestDto())).Should().BeSuccess();
            inner.Count.Should().Be(1);
        }
Exemple #3
0
        public async Task CallTwice()
        {
            var inner = new CheckPathCounter();
            var api   = new DelegatingConformanceApi(
                async(method, request, cancellationToken) =>
            {
                await method.InvokeAsync(inner, request, cancellationToken);
                return(await method.InvokeAsync(inner, request, cancellationToken));
            });

            (await api.CheckPathAsync(new CheckPathRequestDto())).Should().BeSuccess();
            inner.Count.Should().Be(2);
        }
Exemple #4
0
        public async Task WrongResponse()
        {
            var api = new DelegatingConformanceApi(async(_, _, _) => ServiceResult.Success <ServiceDto>(new CheckQueryResponseDto()));

            Awaiting(async() => await api.CheckPathAsync(new CheckPathRequestDto())).Should().Throw <InvalidCastException>();
        }
Exemple #5
0
        public async Task RightResponse()
        {
            var api = new DelegatingConformanceApi(async(_, _, _) => ServiceResult.Success <ServiceDto>(new CheckPathResponseDto()));

            (await api.CheckPathAsync(new CheckPathRequestDto())).Should().BeSuccess();
        }
Exemple #6
0
        public async Task NotImplemented()
        {
            var api = new DelegatingConformanceApi(ServiceDelegators.NotImplemented);

            Awaiting(async() => await api.CheckQueryAsync(new CheckQueryRequestDto())).Should().Throw <NotImplementedException>();
        }