예제 #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();
    }
예제 #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);
        }