Example #1
0
        public void Update_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
            repository.Update(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 SaveChanges_CallAfterModify_ChangesSaved()
        {
            // Arrange
            dbContext.Add(new AnyEntity
            {
                Id        = 1,
                AnyString = "AnyString"
            });
            dbContext.SaveChanges();
            var modifiedEntity = new AnyEntity
            {
                Id        = 1,
                AnyString = "AnyNewString"
            };

            // Act
            dbContext.AnyEntities.Find(modifiedEntity.Id).AnyString = modifiedEntity.AnyString;
            repository.SaveChanges();

            // Assert
            dbContext.AnyEntities.First().Should().BeEquivalentTo(modifiedEntity);
        }