public void Invoke_FromSuperAdminToSuperAdmin_NotSavedInDatabase() { // Prepare var dataUser = new DataAccess.Models.User { IsSuperAdmin = true }; var getAllResults = new List <UserApps>(); var mockedUserAppsRepository = new Mock <IUserAppRepository>(); var mockedUserRepository = new Mock <IUserRepository>(); var mockedAddNewUserApp = new Mock <IAddNewUserApp>(); mockedUserRepository.Setup(r => r.GetById(It.IsAny <int>())) .Returns(dataUser); mockedUserAppsRepository.Setup(r => r.FindBy(It.IsAny <Expression <Func <UserApps, bool> > >())) .Returns(getAllResults.AsQueryable()); var action = new RevokeRole(mockedUserAppsRepository.Object, mockedUserRepository.Object, mockedAddNewUserApp.Object); // Action var actionResult = action.Invoke(1, 1, Enums.UserRole.SuperAdmin); // Check Assert.False(actionResult); mockedUserAppsRepository.Verify(r => r.Edit(It.IsAny <UserApps>()), Times.Never); mockedUserAppsRepository.Verify(r => r.Save(), Times.Never); mockedUserRepository.Verify(r => r.Edit(It.IsAny <DataAccess.Models.User>()), Times.Never); mockedUserRepository.Verify(r => r.Save(), Times.Never); mockedAddNewUserApp.Verify(r => r.Invoke(It.IsAny <UserAppModel>()), Times.Never); }
public void Invoke_UserNotHaveAnyApp_NotSavedInDatabase() { // Prepare var dataUser = new DataAccess.Models.User { IsSuperAdmin = false }; var mockedUserAppsRepository = new Mock <IUserAppRepository>(); var mockedUserRepository = new Mock <IUserRepository>(); var mockedAddNewUserApp = new Mock <IAddNewUserApp>(); mockedUserRepository.Setup(r => r.GetById(It.IsAny <int>())) .Returns(dataUser); var action = new RevokeRole(mockedUserAppsRepository.Object, mockedUserRepository.Object, mockedAddNewUserApp.Object); // Action var actionResult = action.Invoke(1, 1, Enums.UserRole.Manager); // Check Assert.False(actionResult); mockedUserRepository.Verify(r => r.Edit(It.IsAny <DataAccess.Models.User>()), Times.Never); mockedUserRepository.Verify(r => r.Save(), Times.Never); mockedAddNewUserApp.Verify(r => r.Invoke(It.IsAny <UserAppModel>()), Times.Never); mockedUserAppsRepository.Verify(r => r.Edit(It.IsAny <UserApps>()), Times.Never); mockedUserAppsRepository.Verify(r => r.Save(), Times.Never); }
public void Invoke_LowerRoleThanSuperAdminNotInApp_SavedInDatabase() { // Prepare var dataUser = new DataAccess.Models.User { IsSuperAdmin = true }; var mockedUserAppsRepository = new Mock <IUserAppRepository>(); var mockedUserRepository = new Mock <IUserRepository>(); var mockedAddNewUserApp = new Mock <IAddNewUserApp>(); var savedUser = dataUser; mockedUserRepository.Setup(r => r.GetById(It.IsAny <int>())) .Returns(dataUser); mockedUserRepository.Setup(r => r.Edit(It.IsAny <DataAccess.Models.User>())) .Callback <DataAccess.Models.User>(user => savedUser = user); var action = new RevokeRole(mockedUserAppsRepository.Object, mockedUserRepository.Object, mockedAddNewUserApp.Object); // Action var actionResult = action.Invoke(1, 1, Enums.UserRole.Manager); // Check Assert.True(actionResult); mockedUserRepository.Verify(r => r.Edit(It.IsAny <DataAccess.Models.User>()), Times.Once); mockedUserRepository.Verify(r => r.Save(), Times.Once); mockedAddNewUserApp.Verify(r => r.Invoke(It.IsAny <UserAppModel>()), Times.Once); mockedUserAppsRepository.Verify(r => r.Edit(It.IsAny <UserApps>()), Times.Never); mockedUserAppsRepository.Verify(r => r.Save(), Times.Never); Assert.False(savedUser.IsSuperAdmin); }
public void Can_grant_and_revoke_roles_between_users() { var capture = new PlaintextKeyCapture("rosebud", "rosebud"); var service = new TempKeyFileService(); var rootPubKey = CryptoTestHarness.GenerateKeyFile(_output, capture, service); capture.Reset(); var userPubKey = CryptoTestHarness.GenerateKeyFile(_output, capture, new TempKeyFileService()); capture.Reset(); var grant = new GrantRole("admin", rootPubKey, userPubKey); grant.Sign(service, capture); Assert.True(grant.Authority.SequenceEqual(rootPubKey)); Assert.True(grant.Subject.SequenceEqual(userPubKey)); Assert.True(grant.Verify(), "grant was not verified"); capture.Reset(); var revoke = new RevokeRole(Constants.DefaultOwnerRole, rootPubKey, userPubKey); revoke.Sign(service, capture); Assert.True(revoke.Authority.SequenceEqual(rootPubKey)); Assert.True(revoke.Subject.SequenceEqual(userPubKey)); Assert.True(revoke.Verify(), "revoke was not verified"); }
public async Task Cannot_revoke_only_owner_grant() { var capture = new PlaintextKeyCapture("rosebud", "rosebud"); var service = new TempKeyFileService(); var publicKey = CryptoTestHarness.GenerateKeyFile(_output, capture, service); capture.Reset(); var revoke = new RevokeRole(Constants.DefaultOwnerRole, publicKey, publicKey); revoke.Sign(service, capture); Assert.True(revoke.Verify(), "revocation did not verify"); using var fixture = new LogStoreFixture(); var @default = LogEntryFactory.CreateNamespaceEntry(Constants.DefaultNamespace, default); await fixture.Store.AddEntryAsync(@default); var ontology = new MemoryOntologyLog(new OntologyEvents(), publicKey); Assert.Single(ontology.Roles[Constants.DefaultNamespace]); await fixture.Store.AddEntryAsync(LogEntryFactory.CreateEntry(revoke)); await Assert.ThrowsAsync <CannotRemoveSingleOwnerException>(() => ontology.MaterializeAsync(fixture.Store)); }
public void Invoke_LowerRoleThanSuperAdminInApp_SavedInDatabase() { // Prepare var dataUser = new DataAccess.Models.User { IsSuperAdmin = true }; var dataUserApp = new UserApps { User = new DataAccess.Models.User { Id = 1 }, App = new DataAccess.Models.App { Id = 1 }, Role = UserRole.Manager }; var mockedUserAppsRepository = new Mock <IUserAppRepository>(); var mockedUserRepository = new Mock <IUserRepository>(); var mockedAddNewUserApp = new Mock <IAddNewUserApp>(); var savedUser = dataUser; var dataUserAppSaved = dataUserApp; var getUserAppResults = new List <UserApps> { dataUserApp }; mockedUserRepository.Setup(r => r.GetById(It.IsAny <int>())) .Returns(dataUser); mockedUserRepository.Setup(r => r.Edit(It.IsAny <DataAccess.Models.User>())) .Callback <DataAccess.Models.User>(user => savedUser = user); mockedUserAppsRepository.Setup(r => r.FindBy(It.IsAny <Expression <Func <UserApps, bool> > >())) .Returns(getUserAppResults.AsQueryable()); mockedUserAppsRepository.Setup(r => r.Edit(It.IsAny <UserApps>())) .Callback <UserApps>(userApp => dataUserAppSaved = userApp); var action = new RevokeRole(mockedUserAppsRepository.Object, mockedUserRepository.Object, mockedAddNewUserApp.Object); // Action var actionResult = action.Invoke(1, 1, Enums.UserRole.Manager); // Check Assert.True(actionResult); mockedUserRepository.Verify(r => r.Edit(It.IsAny <DataAccess.Models.User>()), Times.Once); mockedUserRepository.Verify(r => r.Save(), Times.Once); mockedAddNewUserApp.Verify(r => r.Invoke(It.IsAny <UserAppModel>()), Times.Never); mockedUserAppsRepository.Verify(r => r.Edit(It.IsAny <UserApps>()), Times.Never); mockedUserAppsRepository.Verify(r => r.Save(), Times.Never); Assert.False(savedUser.IsSuperAdmin); Assert.Equal(UserRole.Manager, dataUserAppSaved.Role); }
public void Invoke_IncorrectUserData_NotSavedInDatabase() { // Prepare var mockedUserAppsRepository = new Mock <IUserAppRepository>(); var mockedUserRepository = new Mock <IUserRepository>(); var mockedAddNewUserApp = new Mock <IAddNewUserApp>(); var action = new RevokeRole(mockedUserAppsRepository.Object, mockedUserRepository.Object, mockedAddNewUserApp.Object); // Action var actionResult = action.Invoke(1, 1, Enums.UserRole.User); // Check Assert.False(actionResult); mockedUserAppsRepository.Verify(r => r.Edit(It.IsAny <UserApps>()), Times.Never); mockedUserAppsRepository.Verify(r => r.Save(), Times.Never); mockedUserRepository.Verify(r => r.Edit(It.IsAny <DataAccess.Models.User>()), Times.Never); mockedUserRepository.Verify(r => r.Save(), Times.Never); mockedAddNewUserApp.Verify(r => r.Invoke(It.IsAny <UserAppModel>()), Times.Never); }