コード例 #1
0
        public void HasRoleForExamination_ReturnsFalse_WhenUserDoesNotHaveRequiredRole()
        {
            // Arrange
            var user = new Models.MeUser()
            {
                Permissions = new List <MEUserPermission>()
                {
                    new MEUserPermission()
                    {
                        LocationId = "trust1",
                        UserRole   = UserRoles.MedicalExaminer
                    },
                    new MEUserPermission()
                    {
                        LocationId = "national1",
                        UserRole   = UserRoles.ServiceAdministrator,
                    }
                }
            };

            var examination = new Models.Examination()
            {
                NationalLocationId = "national1",
                RegionLocationId   = "region1",
                TrustLocationId    = "trust1",
                SiteLocationId     = "site1"
            };

            // Act
            var hasRole = user.HasRoleForExamination(examination, UserRoles.MedicalExaminerOfficer);

            // Assert
            hasRole.Should().BeFalse();
        }
コード例 #2
0
        public void UpdateLocationCache_UpdatesNoLocations_WhenNoneProvided()
        {
            // Arrange
            var expectedNationalLocationId = "expectedNationalLocationId";
            var expectedRegionLocationId   = "expectedRegionLocationId";
            var expectedTrustLocationId    = "expectedTrustLocationId";
            var expectedSiteLocationId     = "expectedSiteLocationId";
            var examination = new Models.Examination()
            {
                NationalLocationId = expectedNationalLocationId,
                RegionLocationId   = expectedRegionLocationId,
                TrustLocationId    = expectedTrustLocationId,
                SiteLocationId     = expectedSiteLocationId,
            };

            var locations = Enumerable.Empty <Location>();

            // Act
            examination.UpdateLocationPath(locations);

            // Assert
            examination.NationalLocationId.Should().Be(expectedNationalLocationId);
            examination.RegionLocationId.Should().Be(expectedRegionLocationId);
            examination.TrustLocationId.Should().Be(expectedTrustLocationId);
            examination.SiteLocationId.Should().Be(expectedSiteLocationId);
        }
コード例 #3
0
        /// <inheritdoc/>
        public async Task <Models.Examination> Handle(Models.Examination examination, string userId)
        {
            if (examination == null)
            {
                throw new ArgumentNullException(nameof(examination));
            }

            if (!string.IsNullOrEmpty(examination.MedicalTeam.MedicalExaminerUserId))
            {
                var meUser = await GetUser(examination.MedicalTeam.MedicalExaminerUserId);

                examination.MedicalTeam.MedicalExaminerFullName  = meUser.FullName();
                examination.MedicalTeam.MedicalExaminerGmcNumber = meUser.GmcNumber;
            }

            if (!string.IsNullOrEmpty(examination.MedicalTeam.MedicalExaminerOfficerUserId))
            {
                var meoUser = await GetUser(examination.MedicalTeam.MedicalExaminerOfficerUserId);

                examination.MedicalTeam.MedicalExaminerOfficerFullName  = meoUser.FullName();
                examination.MedicalTeam.MedicalExaminerOfficerGmcNumber = meoUser.GmcNumber;
            }

            examination = examination.UpdateCaseUrgencySort(_urgencySettings.DaysToPreCalculateUrgencySort);
            examination = examination.UpdateCaseStatus();
            examination.LastModifiedBy = userId;
            examination.ModifiedAt     = DateTime.Now;

            var returnedDocument = await _databaseAccess.UpdateItemAsync(_connectionSettings, examination);

            return(returnedDocument);
        }
コード例 #4
0
        public void UpdateLocationCache_UpdatesAllLocations_WhenProvided()
        {
            // Arrange
            var examination = new Models.Examination();
            var expectedNationalLocationId = "expectedNationalLocationId";
            var expectedRegionLocationId   = "expectedRegionLocationId";
            var expectedTrustLocationId    = "expectedTrustLocationId";
            var expectedSiteLocationId     = "expectedSiteLocationId";
            var locations = new List <Location>()
            {
                new Location()
                {
                    LocationId = expectedNationalLocationId,
                    Type       = LocationType.National,
                },
                new Location()
                {
                    LocationId = expectedRegionLocationId,
                    Type       = LocationType.Region,
                },
                new Location()
                {
                    LocationId = expectedTrustLocationId,
                    Type       = LocationType.Trust,
                },
                new Location()
                {
                    LocationId = expectedSiteLocationId,
                    Type       = LocationType.Site,
                },
            };

            // Act
            examination.UpdateLocationPath(locations);

            // Assert
            examination.NationalLocationId.Should().Be(expectedNationalLocationId);
            examination.RegionLocationId.Should().Be(expectedRegionLocationId);
            examination.TrustLocationId.Should().Be(expectedTrustLocationId);
            examination.SiteLocationId.Should().Be(expectedSiteLocationId);
        }
コード例 #5
0
        public void RoleForExamination_Returns()
        {
            // Arrange
            var expectedRole = UserRoles.ServiceOwner;
            var user         = new Models.MeUser()
            {
                Permissions = new List <MEUserPermission>()
                {
                    new MEUserPermission()
                    {
                        LocationId = "site1",
                        UserRole   = UserRoles.MedicalExaminerOfficer
                    },
                    new MEUserPermission()
                    {
                        LocationId = "trust1",
                        UserRole   = UserRoles.MedicalExaminer
                    },
                    new MEUserPermission()
                    {
                        LocationId = "national1",
                        UserRole   = expectedRole
                    }
                }
            };

            var examination = new Models.Examination()
            {
                NationalLocationId = "national1",
                RegionLocationId   = "region1",
                TrustLocationId    = "trust1",
                SiteLocationId     = "site1"
            };

            // Act
            var role = user.RoleForExamination(examination);

            // Assert
            role.Should().Be(expectedRole);
        }
コード例 #6
0
 public EventCreationResult(string eventId, Models.Examination examination)
 {
     EventId     = eventId;
     Examination = examination;
 }