public async Task UpdateAsync_AnyAuditedEntity_EntityUpdated() { // Arrange var createdAt = DateTime.Parse($"{DateTime.Today.AddDays(-1):yyyy-MM-dd} 12:00:00"); dbContext.Add(new AnyAuditedEntity { Id = 1, AnyString = "AnyString", CreatedBy = 1, CreatedAt = createdAt } ); dbContext.SaveChanges(); var expectedTime = DateTime.UtcNow; var expected = new AnyAuditedEntity { Id = 1, AnyString = "AnyNewString", CreatedBy = 1, CreatedAt = createdAt, UpdatedBy = 1 }; // Act await repository.UpdateAsync(1, expected, 1); dbContext.SaveChanges(); // Assert var actual = dbContext.AnyAuditedEntities.First(); actual.Should().BeEquivalentTo(expected, opts => opts.Excluding(x => x.UpdatedAt)); actual.UpdatedAt.Should().BeCloseTo(expectedTime); }
public void Copy_AnyValidEntity_DefinedValuesAndUpdatedValuesCopied() { var originalCreatedAt = DateTime.Parse($"{DateTime.Today.AddDays(-1):yyyy-MM-dd} 12:00:00"); var newCreatedAt = DateTime.Parse($"{DateTime.Today.AddDays(-1):yyyy-MM-dd} 14:00:00"); var originalUpdatedAt = DateTime.Parse($"{DateTime.Today.AddDays(-1):yyyy-MM-dd} 18:00:00"); var newUpdatedAt = DateTime.Parse($"{DateTime.Today.AddDays(-1):yyyy-MM-dd} 20:00:00"); var original = new AnyAuditedEntity { Id = 1, AnyString = "AnyString", CreatedAt = originalCreatedAt, CreatedBy = 1, UpdatedAt = originalUpdatedAt, UpdatedBy = 2 }; var newEntity = new AnyAuditedEntity { Id = 2, AnyString = "AnyString", CreatedAt = newCreatedAt, CreatedBy = 2, UpdatedAt = newUpdatedAt, UpdatedBy = 3 }; newEntity.Copy(original); newEntity.Id.Should().NotBe(original.Id); newEntity.AnyString.Should().Be(original.AnyString); newEntity.CreatedAt.Should().Be(newCreatedAt); newEntity.CreatedBy.Should().Be(2); newEntity.UpdatedAt.Should().Be(originalUpdatedAt); newEntity.UpdatedBy.Should().Be(2); }
public void Copy_NullArgument_ThrowsArgumentNullException() { var newEntity = new AnyAuditedEntity { Id = 2, AnyString = "AnyString", CreatedAt = DateTime.UtcNow, CreatedBy = 2, UpdatedAt = DateTime.UtcNow, UpdatedBy = 3 }; newEntity.Invoking(e => e.Copy(null)).Should().Throw <ArgumentNullException>(); }
public void Copy_EntityNotDerivedFromBaseAuditedEntity_ThrowsArgumentException() { var original = new AnyEntity { Id = 1, AnyString = "AnyString" }; var newEntity = new AnyAuditedEntity { Id = 2, AnyString = "AnyString", CreatedAt = DateTime.UtcNow, CreatedBy = 2, UpdatedAt = DateTime.UtcNow, UpdatedBy = 3 }; newEntity.Invoking(e => e.Copy(original)).Should().Throw <ArgumentException>(); }
public void Create_AnyAuditedEntity_EntityCreated() { // Arrange var entityToCreate = new AnyAuditedEntity { AnyString = "AnyString" }; var expected = new AnyAuditedEntity { AnyString = "AnyString", CreatedBy = 1 }; var expectedTime = DateTime.UtcNow; // Act repository.Create(entityToCreate, 1); dbContext.SaveChanges(); // Assert var actual = dbContext.AnyAuditedEntities.First(); actual.Should().BeEquivalentTo(expected, opts => opts.Excluding(x => x.Id).Excluding(x => x.CreatedAt)); actual.CreatedAt.Should().BeCloseTo(expectedTime); }