public async Task AllFreeAsync_SouldReturn_CollectionWithFreeProperties_FromDb() { var db = this.GetDatabase(); var mapper = this.GetMapper(); var firstRentAgreement = new RentAgreement { Id = 1, EndDate = new DateTime(2000, 12, 12) }; var secondRentAgreement = new RentAgreement { Id = 2, EndDate = new DateTime(2002, 12, 12) }; var thirdRentAgreement = new RentAgreement { Id = 3, EndDate = new DateTime(2050, 12, 12) }; var forthtRentAgreement = new RentAgreement { Id = 4, EndDate = new DateTime(2004, 12, 12) }; var fifthRentAgreement = new RentAgreement { Id = 5, EndDate = null }; var firstProp = new Property { Id = 1, Name = "Голям склад", Area = 400, IsActual = true, PropertyRents = new List <PropertyRent>() { new PropertyRent { RentAgreement = firstRentAgreement }, new PropertyRent { RentAgreement = secondRentAgreement } } }; var secondProp = new Property { Id = 2, Name = "Голям склад", Area = 300, IsActual = true, PropertyRents = new List <PropertyRent>() { new PropertyRent { RentAgreement = thirdRentAgreement } } }; var thirdProp = new Property { Id = 3, Name = "Офис", Area = 80, IsActual = true, PropertyRents = new List <PropertyRent>() { new PropertyRent { RentAgreement = forthtRentAgreement } } }; var forthProp = new Property { Id = 4, Name = "Стая", Area = 20, IsActual = true, PropertyRents = new List <PropertyRent>() { new PropertyRent { RentAgreement = fifthRentAgreement } } }; await db.Properties.AddRangeAsync(firstProp, secondProp, thirdProp, forthProp); await db.SaveChangesAsync(); var propertyService = new PropertiesService(mapper, db); var result = await propertyService.AllFreeAsync(); result .Should() .NotBeEmpty() .And .HaveCount(2) .And .Match(c => c.ElementAt(0).Id == 1 && c.ElementAt(1).Area == 80); }