private bool IsRegisterAdminAllowed(int centreId) { var adminUsers = userDataService.GetAdminUsersByCentreId(centreId); var hasCentreManagerAdmin = adminUsers.Any(user => user.IsCentreManager); var(autoRegistered, autoRegisterManagerEmail) = centresDataService.GetCentreAutoRegisterValues(centreId); return(!hasCentreManagerAdmin && !autoRegistered && !string.IsNullOrWhiteSpace(autoRegisterManagerEmail)); }
public void IndexGet_with_centre_autoregistered_true_shows_AccessDenied_error() { // Given const int centreId = 7; A.CallTo(() => centresDataService.GetCentreName(centreId)).Returns("My centre"); A.CallTo(() => centresDataService.GetCentreAutoRegisterValues(centreId)).Returns((true, "email@email")); A.CallTo(() => userDataService.GetAdminUsersByCentreId(centreId)).Returns(new List <AdminUser>()); // When var result = controller.Index(centreId); // Then A.CallTo(() => centresDataService.GetCentreName(centreId)).MustHaveHappened(1, Times.Exactly); A.CallTo(() => centresDataService.GetCentreAutoRegisterValues(centreId)).MustHaveHappened(1, Times.Exactly); A.CallTo(() => userDataService.GetAdminUsersByCentreId(centreId)).MustHaveHappened(1, Times.Exactly); result.Should().BeRedirectToActionResult().WithControllerName("LearningSolutions") .WithActionName("AccessDenied"); }