public async Task WhenNoMatch_ThrowsEntityException() { // Arrange var service = new TestableUserService(); // Act & Assert await Assert.ThrowsAsync <EntityException>(async() => { await service.DeleteMemberAsync(new Organization(), "member"); }); }
public async Task WhenOrganizationIsNull_ThrowsException() { // Arrange var service = new TestableUserService(); // Act & Assert await Assert.ThrowsAsync <ArgumentNullException>(async() => { await service.DeleteMemberAsync(null, "member"); }); }
public async Task WhenCollaborator_DeletesMembership() { // Arrange var fakes = new Fakes(); var service = new TestableUserService(); // Act await service.DeleteMemberAsync(fakes.Organization, fakes.OrganizationCollaborator.Username); // Assert service.MockEntitiesContext.Verify(c => c.SaveChangesAsync(), Times.Once); }
public async Task WhenNotLastAdmin_DeletesMembership() { // Arrange var fakes = new Fakes(); var service = new TestableUserService(); foreach (var m in fakes.Organization.Members) { m.IsAdmin = true; } // Act await service.DeleteMemberAsync(fakes.Organization, fakes.OrganizationAdmin.Username); // Assert service.MockEntitiesContext.Verify(c => c.SaveChangesAsync(), Times.Once); }
public async Task WhenLastAdmin_ThrowsEntityException() { // Arrange var fakes = new Fakes(); var service = new TestableUserService(); // Act & Assert var exception = await Assert.ThrowsAsync <EntityException>(async() => { await service.DeleteMemberAsync(fakes.Organization, fakes.OrganizationAdmin.Username); }); service.MockEntitiesContext.Verify(c => c.SaveChangesAsync(), Times.Never); Assert.Equal( Strings.DeleteMember_CannotRemoveLastAdmin, exception.Message); }