public void TestRepoQueryDateBetweenContractDates() { GRMRepository repo = new GRMRepository(_mockedDistributionPartnerDataMapper.Object, _mockedMusicContractDataMapper.Object); var results = repo.Query("youtube", new DateTime(2012, 12, 26)); Assert.IsTrue(results.Count == 3); }
public void TestRepoQueryDateAfterContractEnd() { GRMRepository repo = new GRMRepository(_mockedDistributionPartnerDataMapper.Object, _mockedMusicContractDataMapper.Object); var results = repo.Query("youtube", new DateTime(2013, 1, 1)); Assert.IsTrue(results.Count == 2);//return all with usage = streaming except monkey claw xmas special }
public void TestRepoQueryShouldReturnNoResults() { GRMRepository repo = new GRMRepository(_mockedDistributionPartnerDataMapper.Object, _mockedMusicContractDataMapper.Object); var results = repo.Query("youtube", new DateTime(2012, 1, 1)); Assert.IsTrue(results.Count == 0); }
public void TestCanInstansiateRepository() { GRMRepository repo = new GRMRepository(_mockedDistributionPartnerDataMapper.Object, _mockedMusicContractDataMapper.Object); Assert.IsNotNull(repo); }
static void Main(string[] args) { Console.WriteLine("GRM Developer Test." + Environment.NewLine + "Author: Shashank Kumar"); //load data files into data mappers DistributionPartnerDataMapper distributionPartnerDataMapper = new DistributionPartnerDataMapper(); MusicContractDataMapper musicContractDataMapper = new MusicContractDataMapper(); List <string> streamErrors = new List <string>(); Console.WriteLine("Loading data... "); try { //Load input data file into memory. using (FileStream fs = File.OpenRead(musicContractDataFilePath)) { //skip the headers in the first line musicContractDataMapper.LoadData(fs, skipHeader, out streamErrors); if (streamErrors.Any()) { Console.WriteLine("Data problems reading file '{0}':", musicContractDataFilePath); streamErrors.ForEach(Console.WriteLine); } } streamErrors.Clear(); using (FileStream fs = File.OpenRead(distributionPartnerDataFilePath)) { distributionPartnerDataMapper.LoadData(fs, skipHeader, out streamErrors); if (streamErrors.Any()) { Console.WriteLine("Data problems reading file '{0}':", distributionPartnerDataFilePath); streamErrors.ForEach(Console.WriteLine); } } Console.WriteLine("Done."); var repo = new GRMRepository(distributionPartnerDataMapper, musicContractDataMapper); //listen for query. Console.WriteLine("Please enter your query, Enter Q to quit:"); var query = Console.ReadLine(); while (query != "Q") { //parse query, first space indicates separator int pos = query.IndexOf(' '); if (pos > 0) { string distributor = query.Substring(0, pos).Trim(); string dateStr = query.Substring(pos).Trim(); //Console.WriteLine("Query: Partner = {0}, Date = {1}", distributor, ParseDate(dateStr).ToString()); var results = repo.Query(distributor, ParseDate(dateStr)); results.ForEach(Console.WriteLine); Console.WriteLine("Query completed. Enter another query, or type Q to exit."); query = Console.ReadLine(); } else { Console.WriteLine("Invalid Query. Please try again."); query = Console.ReadLine(); } } } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); Environment.Exit(-1); } Environment.Exit(0); }