public void HaveItsNamesHashCode()
        {
            Privilege providerManagement = ProviderManagementPrivilege.GetInstance();
            int       privilegeHashCode  = providerManagement.GetHashCode();

            Assert.AreEqual(privilegeHashCode, providerManagement.Name.GetHashCode());
        }
        public void ReturnFalseWhenComparedWithANonPrivilegeObject()
        {
            Privilege providerManagement = ProviderManagementPrivilege.GetInstance();
            string    nonRoleObject      = "Goodbye World!";

            Assert.AreNotEqual(providerManagement, nonRoleObject);
        }
예제 #3
0
 private void SetMockDeleteRoutine1(Mock <IUnitOfWork> mockUnitOfWork, Provider toBeDeletedProvider)
 {
     mockUnitOfWork
     .Setup(un => un.ProviderRepository.GetByID(It.IsAny <int>()))
     .Returns(() => toBeDeletedProvider);
     mockUnitOfWork.Setup(un => un.CurrentSignedInUserHasRequiredPrivilege
                              (It.IsAny <string>(), ProviderManagementPrivilege.GetInstance())).Returns(true);
     mockUnitOfWork.Setup(un => un.ProviderRepository.Update(toBeDeletedProvider));
     mockUnitOfWork.Setup(un => un.Save());
 }
예제 #4
0
        public void BeAbleToCreateNewProviderInRepository()
        {
            User receivedUser   = new User("Bruno", "*****@*****.**", "#ElBizagra1996", AdminRole.GetInstance());
            var  mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(receivedUser.Email, ProviderManagementPrivilege.GetInstance())).Returns(true);
            mockUnitOfWork.Setup(un => un.ProviderRepository.Insert(It.IsAny <Provider>()));
            mockUnitOfWork.Setup(un => un.Save());
            ProviderService providerService = new ProviderService(mockUnitOfWork.Object);

            Provider oneProvider = new Provider("UTE", 60, new List <IField>());
            int      id          = providerService.CreateProvider(oneProvider, receivedUser.Email);

            mockUnitOfWork.VerifyAll();
        }
예제 #5
0
        public void FailWithUnauthorizedAccessExceptionIfUserTriesToAccessAnythingWithoutProviderManagementPrivilege()
        {
            Provider providerToCreate = new Provider("Antel", 20, new List <IField>());
            var      mockUnitOfWork   = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(It.IsAny <string>(), ProviderManagementPrivilege.GetInstance()))
            .Returns(false);
            ProviderService providerService = new ProviderService(mockUnitOfWork.Object);

            int id = providerService.CreateProvider(providerToCreate, It.IsAny <string>());
        }
예제 #6
0
        public void ReturnTrueWhenUpdatingAProviderAndToBeUpdatedProviderIsCompletelyEqualToModifiedProviderButNotModifyAnything()
        {
            Provider providerWithUpdatedInfo = new Provider("UTE", 20, new List <IField>());
            Provider providerInRepository    = new Provider("UTE", 20, new List <IField>());
            var      mockUnitOfWork          = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(un => un.ProviderRepository.GetByID(It.IsAny <int>()))
            .Returns(() => providerInRepository);
            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(It.IsAny <string>(), ProviderManagementPrivilege.GetInstance()))
            .Returns(true);
            ProviderService providerService = new ProviderService(mockUnitOfWork.Object);

            bool updated = providerService.UpdateProvider(providerInRepository.ID, providerWithUpdatedInfo, It.IsAny <string>());

            mockUnitOfWork.Verify(un => un.ProviderRepository.Update(It.IsAny <Provider>()), Times.Never());
            mockUnitOfWork.Verify(un => un.Save(), Times.Never());
            Assert.IsTrue(updated);
        }
예제 #7
0
        public void NotUpdateIfToBeUpdatedProviderInRepositoryIsMarkedAsDeleted()
        {
            Provider providerWithUpdatedInfo             = new Provider("UTE", 20, new List <IField>());
            Provider markedAsDeletedInRepositoryProvider = new Provider("UTE", 60, new List <IField>());

            markedAsDeletedInRepositoryProvider.MarkAsInactiveToShowItIsDeleted();
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(un => un.ProviderRepository.GetByID(It.IsAny <int>()))
            .Returns(() => markedAsDeletedInRepositoryProvider);
            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(It.IsAny <string>(), ProviderManagementPrivilege.GetInstance()))
            .Returns(true);
            ProviderService providerService = new ProviderService(mockUnitOfWork.Object);

            bool updated = providerService.UpdateProvider(markedAsDeletedInRepositoryProvider.ID, providerWithUpdatedInfo, It.IsAny <string>());

            mockUnitOfWork.Verify(un => un.ProviderRepository.Update(It.IsAny <Provider>()), Times.Never());
            mockUnitOfWork.Verify(un => un.Save(), Times.Never());
            Assert.IsFalse(updated);
        }
예제 #8
0
        public void NotUpdateProviderIfUpdatedInfoHasTheNameOfAnActiveProviderInRepositoryDiferentThanIt()
        {
            Provider providerWithSameName    = new Provider("UTE", 60, new List <IField>());
            Provider providerWithUpdatedInfo = new Provider("UTE", 25, new List <IField>());
            var      mockUnitOfWork          = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(un => un.ProviderRepository.GetByID(It.IsAny <int>()))
            .Returns(() => new Provider());
            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(It.IsAny <string>(), ProviderManagementPrivilege.GetInstance()))
            .Returns(true);
            mockUnitOfWork.Setup(un => un.ProviderRepository.Get(
                                     It.IsAny <System.Linq.Expressions.Expression <Func <Provider, bool> > >(), null, "")).Returns(new[] { providerWithSameName });
            ProviderService providerService = new ProviderService(mockUnitOfWork.Object);

            bool updated = providerService.UpdateProvider(0, new Provider(), It.IsAny <string>());

            mockUnitOfWork.Verify(un => un.ProviderRepository.Update(It.IsAny <Provider>()), Times.Never());
            mockUnitOfWork.Verify(un => un.Save(), Times.Never());
            Assert.IsFalse(updated);
        }
예제 #9
0
        public void FailWithArgumentExceptionIfToBeCreatedNewProviderIsMarkedAsDeleted()
        {
            Provider deletedProvider = new Provider("UTE", 60, new List <IField>());

            deletedProvider.MarkAsInactiveToShowItIsDeleted();
            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(It.IsAny <string>(), ProviderManagementPrivilege.GetInstance()))
            .Returns(true);
            ProviderService providerService = new ProviderService(mockUnitOfWork.Object);

            int id = providerService.CreateProvider(deletedProvider, It.IsAny <string>());
        }
예제 #10
0
        public void FailWithInvalidOperationExceptionIfToBeCreatedNewProviderHasTheNameOfAnActiveProviderInRepository()
        {
            Provider providerWithSameName     = new Provider("UTE", 60, new List <IField>());
            Provider providerWithRepeatedName = new Provider("UTE", 25, new List <IField>());
            var      mockUnitOfWork           = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(un => un.ProviderRepository.Get(
                                     It.IsAny <System.Linq.Expressions.Expression <Func <Provider, bool> > >(), null, "")).Returns(new[] { providerWithSameName });
            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(It.IsAny <string>(), ProviderManagementPrivilege.GetInstance()))
            .Returns(true);
            ProviderService providerService = new ProviderService(mockUnitOfWork.Object);

            int id = providerService.CreateProvider(providerWithRepeatedName, It.IsAny <string>());
        }
예제 #11
0
        public void FailWithNullArgumentExceptionIfToBeCreatedNewProviderIsNull()
        {
            Provider nullProvider   = null;
            var      mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork
            .Setup(un => un.CurrentSignedInUserHasRequiredPrivilege(It.IsAny <string>(), ProviderManagementPrivilege.GetInstance()))
            .Returns(true);
            ProviderService providerService = new ProviderService(mockUnitOfWork.Object);

            int id = providerService.CreateProvider(nullProvider, It.IsAny <string>());
        }
 private void MakeSureUserHasRequiredPrivilege(string signedInUserEmail)
 {
     if (!unitOfWork.CurrentSignedInUserHasRequiredPrivilege(signedInUserEmail, ProviderManagementPrivilege.GetInstance()))
     {
         throw new UnauthorizedAccessException();
     }
 }