public async Task DeleteAsyncDoesntDeleteUnexistingElement() { // Arrange var films = new List <Film> { new Film { Rating = 2 }, new Film { Rating = 3 } }.AsQueryable(); var mockSet = new Mock <DbSet <Film> >(); mockSet.As <IQueryable <Film> >().Setup(m => m.Provider).Returns(films.Provider); mockSet.As <IQueryable <Film> >().Setup(m => m.Expression).Returns(films.Expression); mockSet.As <IQueryable <Film> >().Setup(m => m.ElementType).Returns(films.ElementType); mockSet.As <IQueryable <Film> >().Setup(m => m.GetEnumerator()).Returns(films.GetEnumerator()); var searchedFilm = films.First(); var mockContext = new Mock <CinemaDbContext>(); mockContext.Setup(c => c.Films).Returns(mockSet.Object); mockContext.Setup(s => s.Films.FindAsync(It.IsAny <string>())).Returns(new ValueTask <Film>((Film)null)); mockContext.Setup(m => m.Remove(It.IsAny <Film>())).Returns((EntityEntry <Film>)null); var filmBusiness = new FilmBusiness(mockContext.Object); // Act await filmBusiness.DeleteAsync(searchedFilm.Id); // Assert mockSet.Verify(m => m.Remove(It.IsAny <Film>()), Times.Never()); mockContext.Verify(m => m.SaveChangesAsync(It.IsAny <CancellationToken>()), Times.Never()); }