public void SetUp()
            {
                this.tournamentsToTest = new Dictionary <string, IEnumerable <GenericMatchCoupon> >();

                this.tournamentCouponUriLookup = new Dictionary <string, Uri>();
                this.tournamentCouponUriLookup.Add("VTR Open|Best Betting", new Uri("http://odds.bestbetting.com/tennis/atp-vtr-open/"));
                this.tournamentCouponUriLookup.Add("VTR Open|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-vina-del-mar"));
                this.tournamentCouponUriLookup.Add("VTR Open|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-vina-del-mar"));
                this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Best Betting", new Uri("http://odds.bestbetting.com/tennis/pbz-zagreb-indoors/"));
                this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-zagreb"));
                this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-zagreb"));
                this.tournamentCouponUriLookup.Add("Open Sud de France|Best Betting", new Uri("http://odds.bestbetting.com/tennis/open-sud-de-france/"));
                this.tournamentCouponUriLookup.Add("Open Sud de France|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-montpellier"));
                this.tournamentCouponUriLookup.Add("Open Sud de France|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-montpellier"));

                this.tennisTournaments = new List <string>()
                {
                    "VTR Open", "PBZ Zagreb Indoors", "Open Sud de France"
                };
                this.oddsSources = new List <string>()
                {
                    "Best Betting", "Odds Checker Web", "Odds Checker Mobi"
                };

                this.webRepositoryProvider = new ManifestWebRepositoryProvider();

                this.mockFixtureRepository = BuildFixtureRepository.Create()
                                             .CanGetExternalSource()
                                             .HasGetAliasWhichReturnsItself();

                this.mockBookmakerRepository = BuildBookmakerRepository.Create()
                                               .ReturnsTournamentCouponURLs(this.tournamentCouponUriLookup);

                this.valueOptions = new ValueOptions();

                this.bestBettingFootballStrategy = new BestBettingCouponStrategy <BestBettingCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);
                this.bestBettingTennisStrategy   = new BestBettingCouponStrategy <BestBettingCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);

                this.oddsCheckerMobiFootballStrategy = new OddsCheckerMobiCouponStrategy <OddsCheckerMobiCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);
                this.oddsCheckerMobiTennisStrategy   = new OddsCheckerMobiCouponStrategy <OddsCheckerMobiCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);

                this.oddsCheckerWebFootballStrategy = new OddsCheckerWebCouponStrategy <OddsCheckerWebCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);
                this.oddsCheckerWebTennisStrategy   = new OddsCheckerWebCouponStrategy <OddsCheckerWebCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);

                this.couponStrategies = new Dictionary <string, AbstractCouponStrategy>()
                {
                    { "Best Betting|Football", this.bestBettingFootballStrategy },
                    { "Best Betting|Tennis", this.bestBettingTennisStrategy },
                    { "Odds Checker Mobi|Football", this.oddsCheckerMobiFootballStrategy },
                    { "Odds Checker Mobi|Tennis", this.oddsCheckerMobiTennisStrategy },
                    { "Odds Checker Web|Football", this.oddsCheckerWebFootballStrategy },
                    { "Odds Checker Web|Tennis", this.oddsCheckerWebTennisStrategy }
                };
            }
      public void SetUp()
      {
        this.tournamentsToTest = new Dictionary<string, IEnumerable<GenericMatchCoupon>>();

        this.tournamentCouponUriLookup = new Dictionary<string, Uri>();
        this.tournamentCouponUriLookup.Add("VTR Open|Best Betting", new Uri("http://odds.bestbetting.com/tennis/atp-vtr-open/"));
        this.tournamentCouponUriLookup.Add("VTR Open|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-vina-del-mar"));
        this.tournamentCouponUriLookup.Add("VTR Open|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-vina-del-mar"));
        this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Best Betting", new Uri("http://odds.bestbetting.com/tennis/pbz-zagreb-indoors/"));
        this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-zagreb"));
        this.tournamentCouponUriLookup.Add("PBZ Zagreb Indoors|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-zagreb"));
        this.tournamentCouponUriLookup.Add("Open Sud de France|Best Betting", new Uri("http://odds.bestbetting.com/tennis/open-sud-de-france/"));
        this.tournamentCouponUriLookup.Add("Open Sud de France|Odds Checker Web", new Uri("http://www.oddschecker.com/tennis/atp-montpellier"));
        this.tournamentCouponUriLookup.Add("Open Sud de France|Odds Checker Mobi", new Uri("http://oddschecker.mobi/tennis/mens-tour/atp-montpellier"));

        this.tennisTournaments = new List<string>() { "VTR Open", "PBZ Zagreb Indoors", "Open Sud de France" };
        this.oddsSources = new List<string>() { "Best Betting", "Odds Checker Web", "Odds Checker Mobi" };

        this.webRepositoryProvider = new ManifestWebRepositoryProvider();

        this.mockFixtureRepository = BuildFixtureRepository.Create()
          .CanGetExternalSource()
          .HasGetAliasWhichReturnsItself();

        this.mockBookmakerRepository = BuildBookmakerRepository.Create()
          .ReturnsTournamentCouponURLs(this.tournamentCouponUriLookup);

        this.valueOptions = new ValueOptions();

        this.bestBettingFootballStrategy = new BestBettingCouponStrategy<BestBettingCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);
        this.bestBettingTennisStrategy = new BestBettingCouponStrategy<BestBettingCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);

        this.oddsCheckerMobiFootballStrategy = new OddsCheckerMobiCouponStrategy<OddsCheckerMobiCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);
        this.oddsCheckerMobiTennisStrategy = new OddsCheckerMobiCouponStrategy<OddsCheckerMobiCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);

        this.oddsCheckerWebFootballStrategy = new OddsCheckerWebCouponStrategy<OddsCheckerWebCompetitionFootball>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);
        this.oddsCheckerWebTennisStrategy = new OddsCheckerWebCouponStrategy<OddsCheckerWebCompetitionTennis>(this.mockBookmakerRepository.Object, this.mockFixtureRepository.Object, this.webRepositoryProvider, this.valueOptions);

        this.couponStrategies = new Dictionary<string, AbstractCouponStrategy>()
        {
          { "Best Betting|Football", this.bestBettingFootballStrategy },
          { "Best Betting|Tennis", this.bestBettingTennisStrategy },
          { "Odds Checker Mobi|Football", this.oddsCheckerMobiFootballStrategy },
          { "Odds Checker Mobi|Tennis", this.oddsCheckerMobiTennisStrategy },
          { "Odds Checker Web|Football", this.oddsCheckerWebFootballStrategy },
          { "Odds Checker Web|Tennis", this.oddsCheckerWebTennisStrategy }
        };

      }