public async void GetAllTransactionsAndUpdateAccount_RetrievePageWithValidContent_CorrectResultsReturned() { // ARRANGE int pageNumber = 1; ArrangedTypes arranged = SetupHttpMock(@"jsonTestFiles/SinglePageTestData.json", HttpStatusCode.OK, pageNumber); // ACT PageResponseDto response = await arranged.RestPagedDataProvider.GetPageOfTransactions(pageNumber, CancellationToken.None); // ASSERT response.page.ShouldEqual(1); response.totalCount.ShouldEqual(1); response.transactions[0].Date.ShouldEqual(DateTime.Parse("12/22/2013 00:00:00")); response.transactions[0].Ledger.ShouldEqual("Phone & Internet Expense"); response.transactions[0].Amount.ShouldEqual(-110.71); response.transactions[0].Company.ShouldEqual("SHAW CABLESYSTEMS CALGARY AB"); arranged.HandlerMock.Protected().Verify( "SendAsync", Times.Exactly(1), // we expected a single external request ItExpr.Is <HttpRequestMessage>(req => req.Method == HttpMethod.Get && // we expected a GET request req.RequestUri == arranged.ExpectedUri // to this uri ), ItExpr.IsAny <CancellationToken>() ); }
public async void GetAllTransactionsAndUpdateAccount_InvalidTotalCountType_CorrectResultsReturned() { // ARRANGE int pageNumber = 1; ArrangedTypes arranged = SetupHttpMock(@"jsonTestFiles/malformed.invalidTotalCountType.json", HttpStatusCode.OK, pageNumber); // ACT var taskException = await Assert.ThrowsAsync <ApplicationException>(() => arranged.RestPagedDataProvider.GetPageOfTransactions(pageNumber, CancellationToken.None)); }
public async void GetAllTransactionsAndUpdateAccount_RequestFailWith_CorrectResultsReturned() { // ARRANGE HttpStatusCode code = HttpStatusCode.NotFound; int pageNumber = 1; ArrangedTypes arranged = SetupHttpMock(@"jsonTestFiles/blank.json", code, pageNumber); // ACT and Assert var taskException = await Assert.ThrowsAsync <SimpleHttpResponseException>(() => arranged.RestPagedDataProvider.GetPageOfTransactions(pageNumber, CancellationToken.None)); taskException.StatusCode.ShouldEqual(code); }