public async Task ChangeOwner_WhenUserAndCostAreValid_ShouldSaveHistoricalOwner() { // Arrange var oldOwnerId = Guid.NewGuid(); var oldOwner = new CostUser { Id = oldOwnerId }; var newOwnerId = Guid.NewGuid(); var newOwner = new CostUser { Id = newOwnerId }; var cost = new Cost { Owner = oldOwner, OwnerId = oldOwner.Id, Id = Guid.NewGuid() }; cost.CostOwners = new List <CostOwner>(); // Act var result = await CostService.ChangeOwner(User, cost, newOwner); // Assert result.CostOwners.Should().HaveCount(1); Assert.AreEqual(result.CostOwners[0].UserId, oldOwner.Id); Assert.AreEqual(result.CostOwners[0].CostId, cost.Id); }
public async Task ChangeOwner_WhenUserAndCostAreValid_RevokeAccessForPreviousOwner() { // Arrange var previousOwner = new CostUser { Id = Guid.NewGuid() }; var costId = Guid.NewGuid(); var cost = new Cost { Id = costId, Owner = previousOwner, CostOwners = new List <CostOwner>(), }; var ownerId = Guid.NewGuid(); var owner = new CostUser { Id = ownerId }; // Act await CostService.ChangeOwner(User, cost, owner); // Assert CostStageRevisionPermissionServiceMock.Verify(p => p.RevokeCostPermission(costId, Roles.CostEditor, new[] { previousOwner }, null, false)); }
public async Task ChangeOwner_WhenUserAndCostAreValid_ShouldChageOwnerOfTheCost() { // Arrange var cost = new Cost { Owner = new CostUser(), CostOwners = new List <CostOwner>() }; var ownerId = Guid.NewGuid(); var owner = new CostUser { Id = ownerId }; // Act var result = await CostService.ChangeOwner(User, cost, owner); // Assert result.Owner.Should().Be(owner); result.OwnerId.Should().Be(ownerId); }