public IActionResult DeleteDashboard(string dashboardGUID) { try { if (string.IsNullOrEmpty(dashboardGUID)) { throw new BasicException("Empty GUID!"); } User user = _userRep.GetByEmailAdd(this.User.Claims.SingleOrDefault(x => x.Type == "EmailAddress").Value); _manager.DeleteDashboard(dashboardGUID, user); return(NoContent()); } catch (BasicException ex) { _logger.LogError(ex.Message); return(BadRequest(ex.Message)); } catch (NotFoundException ex) { _logger.LogError(ex.Message); return(NotFound(ex.Message)); } catch (PermissionException ex) { _logger.LogError(ex.Message); return(Unauthorized()); } catch (Exception ex) { _logger.LogError(ex.Message); return(BadRequest()); } }
public void Test_RemoveDashboard_Should_ThrowPermissionException_When_UnAuthorizedUserAdded() { // Arrange Mock <IDashboardRepository> dashboardRep = new Mock <IDashboardRepository>(); dashboardRep.Setup(x => x.Get(It.IsAny <string>())).Returns <string>((x) => _dashboards.SingleOrDefault(z => z.DashBoardGUID.Equals(x))); dashboardRep.Setup(x => x.Add(It.IsAny <Dashboard>())).Callback <Dashboard>((x) => _dashboards.Add(x)); dashboardRep.Setup(x => x.Update(It.IsAny <Dashboard>())).Callback <Dashboard>((z) => { var dash = _dashboards.Find(x => x.DashBoardGUID == z.DashBoardGUID); dash = z; }); dashboardRep.Setup(x => x.Remove(It.IsAny <string>())).Returns <string>((z) => _dashboards.RemoveAll(x => x.DashBoardGUID == z) > 0); Mock <IUserDashboardRelRepository> userDashRelRep = new Mock <IUserDashboardRelRepository>(); userDashRelRep.Setup(x => x.Add(It.IsAny <UserDashboardRel>())).Callback <UserDashboardRel>((z) => _dashUserRel.Add(z)); userDashRelRep.Setup(x => x.Get(It.IsAny <int>(), It.IsAny <int>())).Returns <int, int>((dashId, userId) => _dashUserRel.SingleOrDefault(z => z.Dashboard.Id == dashId && z.User.Id == userId)); Mock <IReportRepository> reportRep = new Mock <IReportRepository>(); reportRep.Setup(x => x.Get(It.IsAny <string>())).Returns <string>((z) => _reports.SingleOrDefault(x => x.ReportGUID.Equals(z))); Mock <IReportDashboardRelRepository> repDashRel = new Mock <IReportDashboardRelRepository>(); repDashRel.Setup(x => x.Add(It.IsAny <ReportDashboardRel>())).Callback <ReportDashboardRel>(z => _reportDashRel.Add(z)); repDashRel.Setup(x => x.GetDashboardReports(It.IsAny <int>())).Returns <int>(z => _reportDashRel.Where(x => x.Dashboard.Id == z).ToList()); repDashRel.Setup(x => x.Remove(It.IsAny <int>())).Callback <int>(z => _reportDashRel.RemoveAll(x => x.Id == z)); // Act DashboardManager manager = new DashboardManager(dashboardRep.Object, repDashRel.Object, reportRep.Object, userDashRelRep.Object); // Assert Assert.Throws(typeof(PermissionException), () => manager.DeleteDashboard("Valid", _users[1])); }