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);
        }
Beispiel #5
0
        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);
        }