コード例 #1
0
        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;
        }
コード例 #2
0
        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);
        }