public void CompanysAllExistInDatabaseAlready() { var companyRepositoryResult = CompanyFinderResult.Select(d => Company.Create(d.Value, d.Key, Company.ConstituentOfIndex.Unknown)); this.SetupMocks(CompanyFinderResult, companyRepositoryResult); var service = new CompanyDataManagementService(companyFinderService.Object, companyRepository.Object); service.GetNewCompanies(); companyRepository.Verify(m => m.InsertAll(It.IsAny<IEnumerable<Company>>()), Times.Never); }
public void CompanyDoesntExistInDatabase() { var companyRepositoryResult = CompanyFinderResult.Select(d => Company.Create(d.Value, d.Key, Company.ConstituentOfIndex.Unknown)); this.SetupMocks(CompanyFinderResult, companyRepositoryResult.Skip(1).Take(2)); var service = new CompanyDataManagementService(companyFinderService.Object, companyRepository.Object); service.GetNewCompanies(); companyRepository.Verify(m => m.InsertAll(It.Is<IEnumerable<Company>>(c => c.Count() == 1)), Times.Once); companyRepository.Verify(m => m.InsertAll(It.Is<IEnumerable<Company>>(c => c.Count(r => r.Name == "Test 1") == 1)), Times.Once); }
public void UpdateCompanyMetaDataTest() { var ftse100 = new Dictionary<string, string> { { "TST", "Test Company"}, { "HI", "Another company"}}; var ftse250 = new Dictionary<string, string> { { "HOD", "HOD Company" }, { "HEL", "Hello company" } }; var smallCap = new Dictionary<string, string> { { "SMA", "Small Company" }, { "ASC", "Another small company" } }; this.companyFinderService.Setup(m => m.GetFtseIndex(Company.ConstituentOfIndex.Ftse100)).Returns(ftse100); this.companyFinderService.Setup(m => m.GetFtseIndex(Company.ConstituentOfIndex.Ftse250)).Returns(ftse250); this.companyFinderService.Setup(m => m.GetFtseIndex(Company.ConstituentOfIndex.SmallCap)).Returns(smallCap); var companiesInDb = new[] { Company.Create("", "TST.L", Company.ConstituentOfIndex.Unknown), Company.Create("", "HI.L", Company.ConstituentOfIndex.Unknown), Company.Create("", "HOD.L", Company.ConstituentOfIndex.Unknown), Company.Create("", "HEL.L", Company.ConstituentOfIndex.Unknown), Company.Create("", "SMA.L", Company.ConstituentOfIndex.Unknown), Company.Create("", "NOT.L", Company.ConstituentOfIndex.Unknown), }; this.companyRepository.Setup(m => m.FindAll()).Returns(companiesInDb); var service = new CompanyDataManagementService(this.companyFinderService.Object, this.companyRepository.Object); service.UpdateCompanyMetaData(); this.companyRepository.Verify(m => m.UpdateAll(It.Is<IEnumerable<Company>>(c => c.Count() == 2)), Times.Exactly(2)); this.companyRepository.Verify(m => m.UpdateAll(It.Is<IEnumerable<Company>>(c => c.Count() == 1)), Times.Exactly(1)); this.companyRepository.Verify(m => m.UpdateAll(It.Is<IEnumerable<Company>>(c => c.Any(e => e.Symbol == "TST.L" && e.Index == Company.ConstituentOfIndex.Ftse100)))); this.companyRepository.Verify(m => m.UpdateAll(It.Is<IEnumerable<Company>>(c => c.Any(e => e.Symbol == "HI.L" && e.Index == Company.ConstituentOfIndex.Ftse100)))); this.companyRepository.Verify(m => m.UpdateAll(It.Is<IEnumerable<Company>>(c => c.Any(e => e.Symbol == "HOD.L" && e.Index == Company.ConstituentOfIndex.Ftse250)))); this.companyRepository.Verify(m => m.UpdateAll(It.Is<IEnumerable<Company>>(c => c.Any(e => e.Symbol == "HEL.L" && e.Index == Company.ConstituentOfIndex.Ftse250)))); this.companyRepository.Verify(m => m.UpdateAll(It.Is<IEnumerable<Company>>(c => c.Any(e => e.Symbol == "SMA.L" && e.Index == Company.ConstituentOfIndex.SmallCap)))); this.companyRepository.Verify(m => m.UpdateAll(It.Is<IEnumerable<Company>>(c => c.Any(e => e.Symbol == "NOT.L"))), Times.Never); }