public MannDBExecutionPlan(IInitialPageDocumentRequestor drInitialPage, string[] columnStrings, VehicleTypes?vehicleType = null)
 {
     this.drInitialPage        = drInitialPage;
     this.vehicleType          = vehicleType;
     this.parserInitialPage    = new InitialPageParser(drInitialPage);
     this.vehicleTypeProducers = new Dictionary <string, ITitleLinkPair[]>();
     this.columnStrings        = columnStrings;
 }
        /*
         * [TestMethod]
         * public void CreatePlan_NoTypeGiven_VehicleTypesLengthEquals4()
         * {
         *  try
         *  {
         *      //Arrange
         *      IInitialPageDocumentRequestor drInitialPage = createInitialPageDRObj();
         *      string vehicleType1Url = "http://catalog.mann-filter.com/EU/tur/vehicle/MANN-FILTER%20Katalog%20Europa/Ara%C3%A7lar/Otomobiller%20%2B%20Ticari%20Ara%C3%A7lar";
         *      string vehicleType2Url = "http://catalog.mann-filter.com/EU/tur/vehicle/MANN-FILTER%20Katalog%20Europa/Ara%C3%A7lar/Kamyon%20%2B%20Otob%C3%BCs";
         *      string vehicleType3Url = "http://catalog.mann-filter.com/EU/tur/vehicle/MANN-FILTER%20Katalog%20Europa/Ara%C3%A7lar/Off%20Highway%20uygulamalar%C4%B1";
         *      string vehicleType4Url = "http://catalog.mann-filter.com/EU/tur/vehicle/MANN-FILTER%20Katalog%20Europa/Ara%C3%A7lar/Motosiklet";
         *      IVehicleTypeDocumentRequestor drVehicleType1 = createVehicleTypeDRObj(vehicleType1Url, Resources.MANNFILTER_Araclar_Otomobiller_Ticari_Araclar);
         *      IVehicleTypeDocumentRequestor drVehicleType2 = createVehicleTypeDRObj(vehicleType2Url, Resources.MANNFILTER_Araclar_Kamyon_Otobus);
         *      IVehicleTypeDocumentRequestor drVehicleType3 = createVehicleTypeDRObj(vehicleType3Url, Resources.MANNFILTER_Araclar_Off_Highway_uygulamalari);
         *      IVehicleTypeDocumentRequestor drVehicleType4 = createVehicleTypeDRObj(vehicleType4Url, Resources.MANNFILTER_Araclar_Motosiklet);
         *
         *      //Act
         *      var executionPlan = new MannDBExecutionPlan(drInitialPage, new[]{ "Kategori", "Üretici", "Model Adı", "Tipi", "Motor Kodu", "kW", "PS", "Yıl", "Hava Filtresi", "Ölçü Hava", "Yağ Filtresi", "Ölçü Yağ", "Benzin Filtresi", "Ölçü Benzin", "İç Mekan Filtresi", "Ölçü İç Mekan", "Diğer Filtreler", "Ölçü Diğer" });
         *      executionPlan.CreatePlan();
         *      executionPlan.ExecutePlan();
         *
         *      //Assert
         *      Assert.IsTrue(executionPlan.VehicleTypes.Length == 4);
         *      Assert.IsTrue(executionPlan.VehicleTypeProducers.Count == 4);
         *      Assert.IsTrue(executionPlan.VehicleTypeProducers["Otomobiller + Ticari Araçlar"].Length == 123);
         *      Assert.IsTrue(executionPlan.VehicleTypeProducers["Kamyon + Otobüs"].Length == 129);
         *      Assert.IsTrue(executionPlan.VehicleTypeProducers["Off Highway uygulamaları"].Length == 404);
         *      Assert.IsTrue(executionPlan.VehicleTypeProducers["Motosiklet"].Length == 48);
         *  }
         *  catch (Exception exc)
         *  {
         *      Assert.Fail(exc.Message);
         *  }
         * }
         */
        private IInitialPageDocumentRequestor createInitialPageDRObj()
        {
            string initialPageUrl = "http://catalog.mann-filter.com/EU/tur/vehicle/MANN-FILTER%20Katalog%20Europa/Ara%C3%A7lar";
            Mock <InitialPageDocumentRequestor> mockDocumentRequester = new Mock <InitialPageDocumentRequestor>(initialPageUrl);
            WebRequestor webRequestor = new WebRequestor();
            HtmlDocument initialPage  = webRequestor.CreateHtmlDocument(Resources.mannfilter_initial_page);

            mockDocumentRequester.Setup(dr => dr.GetHtml()).Returns(initialPage);
            IInitialPageDocumentRequestor documentRequester = mockDocumentRequester.Object;

            return(documentRequester);
        }