Beispiel #1
0
        public void TestWolferhamptonFeed()
        {
            var aFeedDataLoaders = new List <IFeedDataLoader>();

            aFeedDataLoaders.Add(new WolferhamptonFeedDataLoader());
            var aHorseRaceDataProvicer = new HorseRaceDataProvider(aFeedDataLoaders);

            var aRawData     = "{ \"RawData\": { \"Tags\": { \"TrackCode\": \"Wolverhampton\", \"Sport\": \"HorseRacing\" }, \"Markets\": [ { \"Selections\": [ { \"Price\": 10.0, \"Tags\": { \"name\": \"Toolatetodelegate\" } }, { \"Price\": 4.4, \"Tags\": { \"name\": \"Fikhaar\" } } ] } ] } } ";
            var aRawRaceFeed = new RawRaceFeed
            {
                FileName   = "Wolferhampton_Race1.json",
                FeedStream = new MemoryStream(Encoding.UTF8.GetBytes(aRawData))
            };

            var aHorseRace = aHorseRaceDataProvicer.GetHorseRace(aRawRaceFeed);

            Assert.NotNull(aHorseRace);
            Assert.Equal("Wolverhampton", aHorseRace.Track);
            Assert.Equal(2, aHorseRace.Horses.Count);
            Assert.NotNull(aHorseRace.Horses.FirstOrDefault(theHorse => theHorse.Name.Equals("Fikhaar")));
            Assert.NotNull(aHorseRace.Horses.FirstOrDefault(theHorse => theHorse.Name.Equals("Toolatetodelegate")));
            Assert.Equal((decimal)4.4, aHorseRace.Horses.FirstOrDefault(theHorse => theHorse.Name.Equals("Fikhaar")).Price);
            Assert.Equal((decimal)10.0, aHorseRace.Horses.FirstOrDefault(theHorse => theHorse.Name.Equals("Toolatetodelegate")).Price);

            var aHorcesByPriceAsc = aHorseRace.Horses.OrderBy(theHorce => theHorce.Price).ToList();

            Assert.Equal("Fikhaar", aHorcesByPriceAsc[0].Name);
            Assert.Equal("Toolatetodelegate", aHorcesByPriceAsc[1].Name);
        }
Beispiel #2
0
        public void TestCaulfieldFeed()
        {
            var aFeedDataLoaders = new List <IFeedDataLoader>();

            aFeedDataLoaders.Add(new CaulfieldFeedDataLoader());
            var aHorseRaceDataProvicer = new HorseRaceDataProvider(aFeedDataLoaders);

            var aRawData     = "<?xml version=\"1.0\"?> <meeting xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\"> <MeetingType>HorseRacing</MeetingType> <track name=\"Caulfield\"/> <races> <race> <horses> <horse name=\"Advancing\"> <number>1</number> </horse> <horse name=\"Coronel\"> <number>2</number> </horse> </horses> <prices> <price> <horses> <horse number=\"1\" Price=\"4.2\"/> <horse number=\"2\" Price=\"12\"/> </horses> </price> </prices> </race> </races> </meeting>";
            var aRawRaceFeed = new RawRaceFeed
            {
                FileName   = "Caulfield_Race1.xml",
                FeedStream = new MemoryStream(Encoding.UTF8.GetBytes(aRawData))
            };

            var aHorseRace = aHorseRaceDataProvicer.GetHorseRace(aRawRaceFeed);

            Assert.NotNull(aHorseRace);
            Assert.Equal("Caulfield", aHorseRace.Track);
            Assert.Equal(2, aHorseRace.Horses.Count);
            Assert.NotNull(aHorseRace.Horses.FirstOrDefault(theHorse => theHorse.Name.Equals("Advancing")));
            Assert.NotNull(aHorseRace.Horses.FirstOrDefault(theHorse => theHorse.Name.Equals("Coronel")));
            Assert.Equal((decimal)4.2, aHorseRace.Horses.FirstOrDefault(theHorse => theHorse.Name.Equals("Advancing")).Price);
            Assert.Equal(12, aHorseRace.Horses.FirstOrDefault(theHorse => theHorse.Name.Equals("Coronel")).Price);

            var aHorcesByPriceAsc = aHorseRace.Horses.OrderBy(theHorce => theHorce.Price).ToList();

            Assert.Equal("Advancing", aHorcesByPriceAsc[0].Name);
            Assert.Equal("Coronel", aHorcesByPriceAsc[1].Name);
        }