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(); }
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); }
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); }
public async Task WrongResponse() { var api = new DelegatingConformanceApi(async(_, _, _) => ServiceResult.Success <ServiceDto>(new CheckQueryResponseDto())); Awaiting(async() => await api.CheckPathAsync(new CheckPathRequestDto())).Should().Throw <InvalidCastException>(); }
public async Task RightResponse() { var api = new DelegatingConformanceApi(async(_, _, _) => ServiceResult.Success <ServiceDto>(new CheckPathResponseDto())); (await api.CheckPathAsync(new CheckPathRequestDto())).Should().BeSuccess(); }
public async Task NotImplemented() { var api = new DelegatingConformanceApi(ServiceDelegators.NotImplemented); Awaiting(async() => await api.CheckQueryAsync(new CheckQueryRequestDto())).Should().Throw <NotImplementedException>(); }