예제 #1
0
 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());
     }
 }
예제 #2
0
        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]));
        }