using System.Collections.Generic; using Centron.BusinessLogic.Administration.Rights; using Centron.BusinessLogic.WebServices.CheckListArea; using Centron.Data.Entities.Administration; using Centron.Data.Entities.Administration.Logins; using Centron.Data.Entities.ChecklistArea; using Centron.Data.Entities.EmployeeArea; using Xunit; namespace Centron.Tests.EndToEnd.Tests.Checklists; public class ChecklistItemDeleteAccessTest { [Fact] public void IsChecklistItemDeleteAllowed_ShouldReturnFalse_ForNullUser() { // Act var result = CentronChecklistWebserviceBL.IsChecklistItemDeleteAllowed(null, null); // Assert Assert.False(result); } [Fact] public void IsChecklistItemDeleteAllowed_ShouldReturnTrue_ForAdminUser() { // Arrange var appUser = new AppUser{ Groups = new List()}; appUser.Groups.Add(new AppGroup{ Name = UserRightsConst.ADMIN_ACCOUNT }); var loggedInUser = new LoggedInUser(appUser); // Act var result = CentronChecklistWebserviceBL.IsChecklistItemDeleteAllowed(null, loggedInUser); // Assert Assert.True(result); } [Fact] public void IsChecklistItemDeleteAllowed_ShouldReturnTrue_ForAdHocItemCreatedByLoggedInUser() { // Arrange var appUser = new AppUser { Employee = new EmployeeCompact { I3D = 1 } }; var loggedInUser = new LoggedInUser(appUser); var checklistItemEntity = new CentronChecklistItem { AdHocCreatedBy = new Employee { I3D = 1 } }; // Act var result = CentronChecklistWebserviceBL.IsChecklistItemDeleteAllowed(checklistItemEntity, loggedInUser); // Assert Assert.True(result); } [Fact] public void IsChecklistItemDeleteAllowed_ShouldReturnFalse_ForAdHocItemNotCreatedByLoggedInUser() { // Arrange var appUser = new AppUser { Employee = new EmployeeCompact { I3D = 1 } }; var loggedInUser = new LoggedInUser(appUser); var checklistItemEntity = new CentronChecklistItem { AdHocCreatedBy = new Employee { I3D = 2 } }; // Act var result = CentronChecklistWebserviceBL.IsChecklistItemDeleteAllowed(checklistItemEntity, loggedInUser); // Assert Assert.False(result); } [Fact] public void IsChecklistItemDeleteAllowed_ShouldReturnFalse_ForTemplateItemWithNotAdminUser() { // Arrange var appUser = new AppUser { Employee = new EmployeeCompact { I3D = 1 } }; var loggedInUser = new LoggedInUser(appUser); var checklistItemEntity = new CentronChecklistItem { AdHocCreatedBy = null }; // Act var result = CentronChecklistWebserviceBL.IsChecklistItemDeleteAllowed(checklistItemEntity, loggedInUser); // Assert Assert.False(result); } }