private void CompleteOptions(RequestOptions options, GetStatementRequest request) { if (request.StatementId.HasValue) { options.QueryStringParameters.Add("statementId", request.StatementId.Value.ToString()); } if (request.VoidedStatementId.HasValue) { options.QueryStringParameters.Add("voidedStatementId", request.VoidedStatementId.Value.ToString()); } foreach (string language in request.GetAcceptedLanguages()) { options.CustomHeaders.Add("Accept-Language", language); } }
public async Task cannot_get_single_statement_when_it_does_not_exist() { // Arrange var request = new GetStatementRequest() { StatementId = STATEMENT_ID_2 }; this._mockHttp .When(HttpMethod.Get, this.GetApiUrl("statements")) .WithQueryString("statementId", STATEMENT_ID_2.ToString()) .WithHeaders("Accept-Language", "*") .Respond(HttpStatusCode.NotFound); // Act Statement statement = await this._client.Statements.Get(request); // Assert statement.Should().BeNull(); }
public async Task can_get_single_statement() { // Arrange var request = new GetStatementRequest() { StatementId = STATEMENT_ID }; this._mockHttp .When(HttpMethod.Get, this.GetApiUrl("statements")) .WithQueryString("statementId", STATEMENT_ID.ToString()) .WithHeaders("Accept-Language", "*") .Respond(HttpStatusCode.OK, "application/json", this.ReadDataFile(Constants.STATEMENT_FULL)); // Act Statement statement = await this._client.Statements.Get(request); // Assert statement.Should().NotBeNull(); statement.Id.Should().Be(STATEMENT_ID); }
public void cannot_get_single_statement_when_unauthorized() { // Arrange var request = new GetStatementRequest() { StatementId = STATEMENT_ID }; this._mockHttp .When(HttpMethod.Get, this.GetApiUrl("statements")) .WithQueryString("statementId", STATEMENT_ID.ToString()) .WithHeaders("Accept-Language", "*") .Respond(HttpStatusCode.Forbidden); // Act Func <Task> action = async() => { await this._client.Statements.Get(request); }; // Assert action.ShouldThrow <ForbiddenException>(); }
async Task <Statement> IStatementsApi.Get(GetStatementRequest request) { if (request == null) { throw new ArgumentNullException(nameof(request)); } request.Validate(); var options = new RequestOptions(ENDPOINT); this.CompleteOptions(options, request); try { HttpResponseMessage response = await this._client.GetJson(options); return(await response.Content.ReadAsAsync <Statement>(new[] { new StrictJsonMediaTypeFormatter() })); } catch (NotFoundException) { return(null); } }