public void GetExaminations_ReturnsOk() { // Arrange SetupAuthorize(AuthorizationResult.Success()); var examination1 = new Examination(); var examination2 = new Examination(); IEnumerable <Examination> examinationsResult = new List <Examination> { examination1, examination2 }; var locations = new List <Location>(); var users = new List <MeUser>(); var examinationOverview = new ExaminationsOverview(); _examinationsRetrievalQueryServiceMock .Setup(service => service.Handle(It.IsAny <ExaminationsRetrievalQuery>())) .Returns(Task.FromResult(examinationsResult)); _examinationsDashboardServiceMock .Setup(service => service.Handle(It.IsAny <ExaminationsRetrievalQuery>())) .Returns(Task.FromResult(examinationOverview)); _locationRetrievalByQueryHandlerMock .Setup(service => service.Handle(It.IsAny <LocationsRetrievalByQuery>())) .Returns(Task.FromResult(locations.AsEnumerable())); _usersRetrievalServiceMock .Setup(service => service.Handle(It.IsAny <UsersRetrievalQuery>())) .Returns(Task.FromResult(users.AsEnumerable())); _locationsRetrievalByQueryMock.Setup(service => service.Handle(It.IsAny <LocationsParentsQuery>())) .Returns(Task.FromResult((IDictionary <string, IEnumerable <Location> >) new Dictionary <string, IEnumerable <Location> >())); var request = new GetExaminationsRequest(); // Act var response = Controller.GetExaminations(request).Result; // Assert var taskResult = response.Should().BeOfType <ActionResult <GetExaminationsResponse> >().Subject; var okResult = taskResult.Result.Should().BeAssignableTo <OkObjectResult>().Subject; }
public void GetExaminations_PopulatesLookups() { // Arrange SetupAuthorize(AuthorizationResult.Success()); var expectedLocation = new LocationLookup { LocationId = "location1", Name = "Name1" }; var expectedUser = new UserLookup { UserId = "user1", FullName = "User 1", GmcNumber = "GmcNumber1" }; var examination1 = new Examination(); var examination2 = new Examination(); IEnumerable <Examination> examinationsResult = new List <Examination> { examination1, examination2 }; var meOfficeLocation = new Location { LocationId = "location1", Name = "Name1", IsMeOffice = true }; var locations = new List <Location> { meOfficeLocation, new Location { LocationId = "location2", Name = "Name2" } }; var users = new List <MeUser> { new MeUser { UserId = "user1", GmcNumber = "GmcNumber1", FirstName = "User", LastName = "1", Permissions = new List <MEUserPermission> { new MEUserPermission { LocationId = "location1", UserRole = UserRoles.MedicalExaminer } } } }; var examinationOverview = new ExaminationsOverview(); _examinationsRetrievalQueryServiceMock .Setup(service => service.Handle(It.IsAny <ExaminationsRetrievalQuery>())) .Returns(Task.FromResult(examinationsResult)); _examinationsDashboardServiceMock .Setup(service => service.Handle(It.IsAny <ExaminationsRetrievalQuery>())) .Returns(Task.FromResult(examinationOverview)); _locationRetrievalByQueryHandlerMock .Setup(service => service.Handle(It.IsAny <LocationsRetrievalByQuery>())) .Returns(Task.FromResult(locations.AsEnumerable())); _usersRetrievalServiceMock .Setup(service => service.Handle(It.IsAny <UsersRetrievalQuery>())) .Returns(Task.FromResult(users.AsEnumerable())); _locationsRetrievalByQueryMock.Setup(service => service.Handle(It.IsAny <LocationsParentsQuery>())) .Returns(Task.FromResult((IDictionary <string, IEnumerable <Location> >) new Dictionary <string, IEnumerable <Location> > { { meOfficeLocation.LocationId, new[] { meOfficeLocation } } })); var request = new GetExaminationsRequest(); // Act var response = Controller.GetExaminations(request).Result; // Assert var taskResult = response.Should().BeOfType <ActionResult <GetExaminationsResponse> >().Subject; var okResult = taskResult.Result.Should().BeAssignableTo <OkObjectResult>().Subject; var typedResponse = (GetExaminationsResponse)okResult.Value; // Assert typedResponse.Lookups.ContainsKey(ExaminationsController.LocationFilterLookupKey).Should().BeTrue(); typedResponse.Lookups[ExaminationsController.LocationFilterLookupKey].Should() .ContainEquivalentOf(expectedLocation); typedResponse.Lookups.ContainsKey(ExaminationsController.UserFilterLookupKey).Should().BeTrue(); typedResponse.Lookups[ExaminationsController.UserFilterLookupKey].Should() .ContainEquivalentOf(expectedUser); }