public async Task GetAllAsync_GetCustomersPreviewQuery_Can_Verify() { // Arrange var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.Send(It.IsAny <GetCustomersPreviewQuery>(), It.IsAny <CancellationToken>())).ReturnsAsync(Customers); var mockMapper = new Mock <IMapper>(); var mockResponseFactory = new Mock <IResponseFactory>(); var mockApiSettings = new Mock <IOptionsSnapshot <ApiSettings> >(); mockApiSettings.SetupGet(x => x.Value).Returns(ApiSettings); var sut = new CustomersController(mockMediator.Object, mockMapper.Object, mockResponseFactory.Object, mockApiSettings.Object); var pagingOptions = new PagingOptions { PageNumber = 1, PageSize = 10 }; var sortOptions = new SortOptions { OrderBy = "Name" }; var searchOptions = new SearchOptions { Query = "Jason" }; // Act await sut.GetAllCustomersAsync(pagingOptions, sortOptions, searchOptions, default(CancellationToken)); // Assert mockMediator.Verify(x => x.Send(It.IsAny <GetCustomersPreviewQuery>(), It.IsAny <CancellationToken>())); }
public async Task GetAllCustomerAsync__An_unexpected_internal_error_occurred__Should_throw_Exception() { _customerDbServiceMock.Setup(x => x.GetAllAsync()).ThrowsAsync(new Exception()); var controller = new CustomersController(_customerDbServiceMock.Object, _logger, _mapperMock.Object); Func <Task> result = async() => await controller.GetAllCustomersAsync(); await result.Should().ThrowExactlyAsync <Exception>(); }
public async Task GetAllCustomerAsync__At_least_one_element_found__Should_return_200OK_response_with_not_empty_IEnumerable() { _customerDbServiceMock.Setup(x => x.GetAllAsync()).ReturnsAsync(_customers); _mapperMock.Setup(x => x.Map <IEnumerable <CustomerDto> >(It.IsNotNull <IEnumerable <Customer> >())).Returns(_customerDtos.AsEnumerable()); var controller = new CustomersController(_customerDbServiceMock.Object, _logger, _mapperMock.Object); var result = await controller.GetAllCustomersAsync(); (result as ObjectResult).StatusCode.Should().Be(200); (((result as ObjectResult).Value as ResponseWrapper).Data as IEnumerable <CustomerDto>).Should().NotBeEmpty(); }
public async Task GetAllCustomerAsync__An_internal_error_reffered_to_the_database_occurred__Should_throw_InternalDbServiceException() { // Example of these errors: database does not exist, table does not exist etc. _customerDbServiceMock.Setup(x => x.GetAllAsync()).ThrowsAsync(new InternalDbServiceException()); var controller = new CustomersController(_customerDbServiceMock.Object, _logger, _mapperMock.Object); Func <Task> result = async() => await controller.GetAllCustomersAsync(); await result.Should().ThrowExactlyAsync <InternalDbServiceException>(); }
public async Task GetAllAsync_Returns_OK_200_Result_With_Correct_Data() { // Arrange var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.Send(It.IsAny <GetCustomersPreviewQuery>(), It.IsAny <CancellationToken>())).ReturnsAsync(Customers); var mapper = Mapper; var mockResponseFactory = new Mock <IResponseFactory>(); mockResponseFactory.Setup(x => x.CreatePagedReponse(It.IsAny <IList <Customer> >(), It.IsAny <Type>(), It.IsAny <IPreviewQuery>(), It.IsAny <ResponseStatus>(), It.IsAny <string>())).Returns(PagedCustomers); var mockApiSettings = new Mock <IOptionsSnapshot <ApiSettings> >(); mockApiSettings.SetupGet(x => x.Value).Returns(ApiSettings); var sut = new CustomersController(mockMediator.Object, mapper, mockResponseFactory.Object, mockApiSettings.Object); var pagingOptions = new PagingOptions { PageNumber = 1, PageSize = 10 }; var sortOptions = new SortOptions { OrderBy = "Name" }; var searchOptions = new SearchOptions { Query = "Jason" }; // Act var result = await sut.GetAllCustomersAsync(pagingOptions, sortOptions, searchOptions, default(CancellationToken)); // Assert var response = result.Should().BeOfType <OkObjectResult>().Subject; response.StatusCode.Should().Equals(200); var customers = response.Value.Should().BeAssignableTo <PagedResponse <Customer> >().Subject; customers.Data.Select(x => x.Id == 1).Should().NotBeNull(); customers.Data.Select(x => x.Firstname == "Jason").Should().NotBeNull(); customers.Data.Count().Should().Equals(3); }
public async Task GetAllAsync_Returns_OK_200_Result() { // Arrange var mockMediator = new Mock <IMediator>(); mockMediator.Setup(x => x.Send(It.IsAny <GetCustomersPreviewQuery>(), It.IsAny <CancellationToken>())).ReturnsAsync(Customers); var mapper = Mapper; var mockResponseFactory = new Mock <IResponseFactory>(); var mockApiSettings = new Mock <IOptionsSnapshot <ApiSettings> >(); mockApiSettings.SetupGet(x => x.Value).Returns(ApiSettings); var sut = new CustomersController(mockMediator.Object, mapper, mockResponseFactory.Object, mockApiSettings.Object); var pagingOptions = new PagingOptions { PageNumber = 1, PageSize = 10 }; var sortOptions = new SortOptions { OrderBy = "Firstname" }; var searchOptions = new SearchOptions { Query = "John" }; // Act var result = await sut.GetAllCustomersAsync(pagingOptions, sortOptions, searchOptions, default(CancellationToken)); // Assert var response = result.Should().BeOfType <OkObjectResult>().Subject; response.StatusCode.Should().Equals(200); }
public async Task TestGetAllCustomers() { // Perform API call List <Raas.Models.CustomerModel> result = null; try { result = await controller.GetAllCustomersAsync(); } catch (APIException) {}; // Test response code Assert.AreEqual(200, httpCallBackHandler.Response.StatusCode, "Status should be 200"); // Test whether the captured response is as we expected Assert.IsNotNull(result, "Result should exist"); Assert.IsTrue(TestHelper.IsArrayOfJsonObjectsProperSubsetOf( "[\n {\n \"customerIdentifier\": \"sdkautotest1\",\n \"displayName\": \"SDK Auto Testing 1\",\n \"status\": \"active\",\n \"createdAt\": \"2018-04-26T18:13:12.874Z\",\n \"accounts\": [\n {\n \"accountIdentifier\": \"sdkautotest3\",\n \"accountNumber\": \"A01335766\",\n \"displayName\": \"SDK Auto Testing 3\",\n \"createdAt\": \"2018-04-26T18:16:51.652Z\",\n \"status\": \"ACTIVE\"\n },\n {\n \"accountIdentifier\": \"sdkautotest2\",\n \"accountNumber\": \"A11720237\",\n \"displayName\": \"SDK Auto Testing 2\",\n \"createdAt\": \"2018-04-26T18:13:45.196Z\",\n \"status\": \"ACTIVE\"\n }\n ]\n }\n]", TestHelper.ConvertStreamToString(httpCallBackHandler.Response.RawBody), true, true, false), "Response body should have matching keys"); }