public async Task AllWithCompaniesAsync_SouldReturn_CollectionWithAllPropertiesForEachCompany_FromDb() { var db = this.GetDatabase(); var mapper = this.GetMapper(); var firstProp = new Property { Id = 1, Name = "Голям склад", Area = 400, IsActual = true }; var secondProp = new Property { Id = 2, Name = "Голям склад", Area = 300, IsActual = true }; var thirdProp = new Property { Id = 3, Name = "Офис", Area = 80, IsActual = true }; var forthProp = new Property { Id = 4, Name = "Стая", Area = 20, IsActual = true }; var companyOne = new Company { Id = 1, Name = "First", Properties = new List <Property>() { firstProp } }; var companyTwo = new Company { Id = 2, Name = "Second", Properties = new List <Property>() { thirdProp, forthProp, secondProp } }; await db.Companies.AddRangeAsync(companyOne, companyTwo); await db.SaveChangesAsync(); var propertyService = new PropertiesService(mapper, db); var result = await propertyService.AllWithCompaniesAsync(); result .Should() .NotBeEmpty() .And .HaveCount(2) .And .Match(c => c.ElementAt(0).CompanyId == 1 && c.ElementAt(1).CompanyName == "Second" && c.ElementAt(0).Properties.Count() == 1); }