public async Task GetFreeSlotsByAddressIdAsyncShouldWorkCorrectly() { var options = new DbContextOptionsBuilder <ApplicationDbContext>() .UseInMemoryDatabase(databaseName: Guid.NewGuid().ToString()).Options; var dbContext = new ApplicationDbContext(options); var orderRepo = new EfDeletableEntityRepository <Order>(dbContext); var taskRepo = new EfDeletableEntityRepository <EnginieringTask>(dbContext); var slotRepo = new EfDeletableEntityRepository <InstalationSlot>(dbContext); var moqAddressService = new Mock <IAddressService>(); moqAddressService.Setup(x => x.GetCityIdByAddressIdAsync(It.IsAny <int>())).Returns(Task.FromResult(1)); var service = new TasksService( slotRepo, moqAddressService.Object, taskRepo, orderRepo); var startingTime = DateTime.UtcNow.AddDays(2); var endingTime = startingTime.AddHours(2); await slotRepo.AddAsync(new InstalationSlot { StartingTime = startingTime, EndingTime = endingTime, Team = new Team { CityId = 1, }, }); await slotRepo.AddAsync(new InstalationSlot { StartingTime = startingTime, EndingTime = endingTime, Team = new Team { CityId = 1, }, }); await slotRepo.SaveChangesAsync(); var slots = await service.GetFreeSlotsByAddressIdAsync <SlotModel>(1); Assert.Equal(2, slots.Count()); Assert.Contains(slots, x => x.TeamId == 1); Assert.Contains(slots, x => x.StartingTime == startingTime); Assert.Contains(slots, x => x.EndingTime == endingTime); }