Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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>();
        }
Ejemplo n.º 4
0
        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>();
        }
Ejemplo n.º 5
0
        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);
        }