public async Task AddOrUpdateAsync_WhenExisting_ReturnsEntity() { // Arrange var entities = GetDataForTests(); var context = GetContext(); foreach (var entity in entities) { context.Entities.Add(entity); } context.SaveChanges(); var entityToUpdate = entities.First(); var resultEntity = new BaseEntityImplementation() { Id = 1, RelatedEntityId = 1, Deleted = false }; var repository = GetRepository(context); // Act var result = await repository.AddOrUpdateAsync(entityToUpdate); // Assert Assert.NotNull(result); result.Should().BeEquivalentTo(resultEntity, opts => opts.Excluding(e => e.RelatedEntity)); }
private ICollection <BaseEntityImplementation> GetDataForTests() { var entity1 = new BaseEntityImplementation() { Id = 1, RelatedEntityId = 1, RelatedEntity = new BaseRelatedEntityImplementation() { Id = 1, Deleted = false }, Deleted = false }; var entity2 = new BaseEntityImplementation() { Id = 2, RelatedEntityId = 2, RelatedEntity = new BaseRelatedEntityImplementation() { Id = 2, Deleted = false }, Deleted = false }; var entity3 = new BaseEntityImplementation() { Id = 3, RelatedEntityId = 3, RelatedEntity = new BaseRelatedEntityImplementation() { Id = 3, Deleted = false }, Deleted = false }; var entities = new List <BaseEntityImplementation>() { entity1, entity2, entity3 }; return(entities); }
public async Task AddOrUpdateAsync_WhenNew_ReturnsEntityWithId() { // Arrange var entity = new BaseEntityImplementation() { Id = 0, Deleted = false }; var context = GetContext(); var repository = GetRepository(context); // Act var result = await repository.AddOrUpdateAsync(entity); // Assert Assert.NotNull(result); Assert.NotEqual(0, result.Id); Assert.Equal(entity.Deleted, result.Deleted); }