Example #1
0
        public void ParseSiteTest()
        {
            //Get tokens and parse it
            SiteParser siteParser = new SiteParser(Init("site/index.html : home(\"argument\")\nend"));
            Site       parsedSite = siteParser.ParseSite();

            //Test mappings of site
            Assert.AreEqual(1, parsedSite.GetMappings().Count);
            Mapping[] mappingArray = (Mapping[])parsedSite.GetMappings().ToArray();
            Mapping   mapping      = mappingArray[0];

            //Test path of site
            Assert.AreEqual("site/index.html", mapping.GetPath().ToString());

            //Test markup of site
            Markup parsedMarkup = mapping.GetMarkup();

            Assert.AreEqual("home", parsedMarkup.GetDesignator().GetIdentifier());
            Assert.AreEqual(1, parsedMarkup.GetArguments().Count);

            //Test argument
            Argument[] argumentArray = (Argument[])parsedMarkup.GetArguments().ToArray();
            Assert.AreEqual(typeof(ExpressionArgument), argumentArray[0].GetType());
            Assert.AreEqual("argument", argumentArray[0].ToString());
        }
Example #2
0
        public async Task <ReadOnlyCollection <Uri>[]> GetWebsitesLinksAsync(string[] urls)
        {
            var messageWorker      = new MessageWorker();
            var absoluteLinkParser = new AbsoluteLinkParserCore();
            var hrefLinkParserCore = new HrefLinkParserCore();
            var linkParsers        = new List <IParserLinkCore>()
            {
                absoluteLinkParser, hrefLinkParserCore
            };
            List <SiteParser>            siteParsers = new List <SiteParser>();
            Dictionary <SiteParser, Uri> dictionary  = new Dictionary <SiteParser, Uri>();

            foreach (var site in urls)
            {
                var siteParser = new SiteParser(messageWorker);
                siteParsers.Add(siteParser);
                dictionary.Add(siteParser, new Uri(site));
            }

            var tasks = siteParsers.Select(i =>
            {
                return(i.GetUrlTreeAsync(linkParsers, dictionary[i]));
            });
            var parsedLinks = await Task.WhenAll(tasks);

            Console.WriteLine("All site are parsed.");
            return(parsedLinks);
        }
Example #3
0
        public ActionResult GetValues(int?typeId)
        {
            if (typeId != null)
            {
                var model = TempData["Model"] as FoodItemViewModel;
                TempData.Keep();
                var foodType = db.FoodItemTypes.Find(typeId);
                foodType.Score = SiteParser.GetTypeScore(model.FoodItem, foodType);

                return(Json(new
                {
                    Success = "true",
                    Data = new
                    {
                        Id = foodType.Id,
                        TypeName = foodType.TypeName,
                        Unit = foodType.Unit,
                        Calories = foodType.Calories,
                        Carbs = foodType.Carbs,
                        Fats = foodType.Fats,
                        Protein = foodType.Protein,
                        Fibre = foodType.Fibre,
                        GlycemicIndex = foodType.GlycemicIndex,
                        CarbsDiff = foodType.CarbsDiff,
                        FatDiff = foodType.FatDiff,
                        ProteinDiff = foodType.ProteinDiff,
                        FibreDiff = foodType.FibreDiff
                    }
                }));
            }
            return(Json(new { Success = "false" }));
        }
        public void TestThatValidSiteObjectIsCreatedWithValidSiteInformation()
        {
            Site site = SiteParser.GenerateSiteObjectFromRow(cellList, false);

            var results = HelperTestModel.Validate(site);

            Assert.AreEqual(0, results.Count);
        }
Example #5
0
        private static async Task <MfpDay> GetDay(MfpDay mfpDay)
        {
            string searchLink = "https://www.myfitnesspal.com/food/diary/thephoenix25?date=";  // date=2020-02-14
            string date       = mfpDay.SelectedDate.ToString("yyyy-MM-dd");
            string website    = searchLink + date;

            return(await SiteParser.Parse(website, mfpDay));
        }
        public void TestThatParseSiteAddress200CharValid()
        {
            string testString = new string('a', 200);

            string address = SiteParser.ParseAddress(testString);

            Assert.IsTrue(address.Length == 200);
        }
        public void TestThatParseSiteAddressTooLongReturnsEmptyString()
        {
            string testString = new String('a', 201);

            string address = SiteParser.ParseAddress(testString);

            Assert.IsTrue(address.Length == 0);
        }
Example #8
0
        private void button_Click(object sender, RoutedEventArgs e)
        {
            SiteParser siteParser = new SiteParser();

            siteParser.CompleteConvertEvent += SiteParser_CompleteConvertEvent;
            siteParser.BeginParse();
            comboBoxGoods.SelectionChanged += ComboBoxGoods_SelectionChanged;
        }
Example #9
0
        public void ParseFileNameTest()
        {
            //Get tokens and parse it
            TokenIterator tokens     = Init("filename.ext");
            SiteParser    siteParser = new SiteParser(tokens);
            FileName      output     = siteParser.ParseFileName();

            Assert.AreEqual("filename", output.GetName().GetPathElement());
            Assert.AreEqual("ext", output.GetFileExtension().GetFileExtension());
        }
        public void TestThatSiteObjectWithAddressOf200PassesValidation()
        {
            // Address field
            cellList[7] = new string('a', 200);

            Site site = SiteParser.GenerateSiteObjectFromRow(cellList, false);

            var results = HelperTestModel.Validate(site);

            Assert.AreEqual(0, results.Count);
        }
Example #11
0
        public void ParseMappingsTest()
        {
            //Set up parser
            TokenIterator tokens     = Init("site/home.html : home(); site2/home.html : home2()");
            SiteParser    siteParser = new SiteParser(tokens);

            Mapping[] parsedMappings = (Mapping[])siteParser.ParseMappings().ToArray();

            //Test mappings
            Assert.AreEqual(2, parsedMappings.Length);
        }
Example #12
0
        public void Stop()
        {
            if (this._parser == null)
            {
                return;
            }
            var prsr = this._parser;

            this._parser = null;
            prsr.Dispose();
        }
        public void TestThatSiteObjectWithPickupDayOfInvalidFailsValidation()
        {
            // PickupDay field
            cellList[15] = "sdfafa";

            Site site = SiteParser.GenerateSiteObjectFromRow(cellList, false);

            var results = HelperTestModel.Validate(site);

            Assert.AreEqual(1, results.Count);
            Assert.AreEqual("Specified Pickup Days are invalid", results[0].ErrorMessage);
        }
        public void TestThatSiteObjectWithFrequencyOfInvalidFailsValidation()
        {
            // Frequency field
            cellList[10] = "sdfafa";

            Site site = SiteParser.GenerateSiteObjectFromRow(cellList, false);

            var results = HelperTestModel.Validate(site);

            Assert.AreEqual(1, results.Count);
            Assert.AreEqual("Pickup Frequency must be Weekly or BiWeekly", results[0].ErrorMessage);
        }
        public void TestThatSiteObjectWithAddressOf201FailsValidation()
        {
            // Address field
            cellList[7] = new string('a', 201);

            Site site = SiteParser.GenerateSiteObjectFromRow(cellList, false);

            var results = HelperTestModel.Validate(site);

            Assert.AreEqual(1, results.Count);
            Assert.AreEqual("Address must be 1 to 200 characters", results[0].ErrorMessage);
        }
Example #16
0
 private void CreateParser()
 {
     if (this._parser != null)
     {
         return;
     }
     this._parser = new SiteParser("https://vk.com/feed");
     this._parser.MainDataParsed += this.OnMainDataParsed;
     this._parser.LinksParsed    += this.OnLinksParsed;
     this._parser.ImagesParsed   += this.OnImagesParsed;
     this._parser.Done           += this.OnFinished;
 }
        public void TestThatParseSitePickupDaysValidPickupDays()
        {
            string[] collectionDays = new string[4];

            collectionDays[0] = "1005";
            collectionDays[1] = "2005";
            collectionDays[2] = "";
            collectionDays[3] = "";

            Site.PickupDays pickupDays = SiteParser.ParsePickupDays(collectionDays);

            Assert.IsTrue(pickupDays == Site.PickupDays.Friday);
        }
Example #18
0
        public void ParseDirectoryTest()
        {
            //Get tokens and parse it
            TokenIterator tokens     = Init("directory1\\directory2\\filename.ext");
            SiteParser    siteParser = new SiteParser(tokens);
            Dir           output     = siteParser.ParseDirectory();

            //Check output
            Assert.AreEqual(2, output.GetDirectoryElements().Count);

            //Check directory's
            Assert.AreEqual("directory1", output.GetDirectoryElements().Get(0).ToString());
            Assert.AreEqual("directory2", output.GetDirectoryElements().Get(1).ToString());
        }
        public void TestThatParseSitePickupDaysWithInvalidDaysReturnsInvalid()
        {
            string[] collectionDays = new string[]
            {
                "SomeRandomString",
                "String",
                "1092",
                "12321"
            };

            Site.PickupDays pickupDays = SiteParser.ParsePickupDays(collectionDays);

            Assert.IsTrue(pickupDays == Site.PickupDays.Invalid);
        }
        public void TestThatTooFewColumnsInExcelSheetReturnsASiteObjectWithIDOfNegativeTwo()
        {
            cellList.Remove(cellList[5]);
            cellList.Remove(cellList[6]);

            Site site = SiteParser.GenerateSiteObjectFromRow(cellList, true);

            var results = HelperTestModel.Validate(site);

            Assert.AreEqual(3, results.Count);
            Assert.AreEqual("The siteID must be a valid integer", results[0].ErrorMessage);
            Assert.AreEqual("Pickup Frequency must be Weekly or BiWeekly", results[1].ErrorMessage);
            Assert.AreEqual("Specified Pickup Days are invalid", results[2].ErrorMessage);
        }
        public void TestThatTooManyColumnsInExcelSheetReturnsASiteObjectWithIDOfNegativeTwo()
        {
            // Adding an extra column (which is 1 too many)
            cellList.Add("Sdawdawdawdaw");

            Site site = SiteParser.GenerateSiteObjectFromRow(cellList, true);

            var results = HelperTestModel.Validate(site);

            Assert.AreEqual(3, results.Count);
            Assert.AreEqual("The siteID must be a valid integer", results[0].ErrorMessage);
            Assert.AreEqual("Pickup Frequency must be Weekly or BiWeekly", results[1].ErrorMessage);
            Assert.AreEqual("Specified Pickup Days are invalid", results[2].ErrorMessage);
        }
        public void TestThatParseSitePickupDaysWithMultipleDaysIsValid()
        {
            string[] collectionDays = new string[]
            {
                "1002",
                "1005",
                "2002",
                "2005",
            };

            Site.PickupDays pickupDays = SiteParser.ParsePickupDays(collectionDays);

            Assert.IsTrue(pickupDays == (Site.PickupDays.Tuesday | Site.PickupDays.Friday));
        }
Example #23
0
        public void ParseSingleMappingTest()
        {
            //Set up parser
            TokenIterator tokens     = Init("site/home.html : home()");
            SiteParser    siteParser = new SiteParser(tokens);
            Mapping       mapping    = siteParser.ParseMapping();

            //Test path of site
            Assert.AreEqual("site/home.html", mapping.GetPath().ToString());

            //Test markup of site
            Markup parsedMarkup = mapping.GetMarkup();

            Assert.AreEqual("home", parsedMarkup.GetDesignator().GetIdentifier());
            Assert.AreEqual(0, parsedMarkup.GetArguments().Count);
        }
        public void TestThatHeaderRowWithValidDataReturnsASiteObjectWithSiteIDOf1()
        {
            cellList[1]  = "Site ID";
            cellList[7]  = "Full Address";
            cellList[10] = "Frequency";
            cellList[15] = "Collection1";
            cellList[16] = "Collection2";
            cellList[17] = "Collection3";
            cellList[18] = "Collection4";

            Site site = SiteParser.GenerateSiteObjectFromRow(cellList, true);

            Assert.AreEqual(1, site.siteID);
            var results = HelperTestModel.Validate(site);

            Assert.AreEqual(0, results.Count);
        }
        public void TestThatHeaderRowWithInValidDataReturnsAnInvalidSiteObject()
        {
            cellList[1]  = "Site ID";
            cellList[7]  = "Full Address";
            cellList[10] = "Frequency";
            cellList[15] = "Colleasdasction1";
            cellList[16] = "Collection2";
            cellList[17] = "Collection3";
            cellList[18] = "Collection4";

            Site site = SiteParser.GenerateSiteObjectFromRow(cellList, true);

            var results = HelperTestModel.Validate(site);

            Assert.AreEqual(3, results.Count);
            Assert.AreEqual("The siteID must be a valid integer", results[0].ErrorMessage);
            Assert.AreEqual("Pickup Frequency must be Weekly or BiWeekly", results[1].ErrorMessage);
            Assert.AreEqual("Specified Pickup Days are invalid", results[2].ErrorMessage);
        }
Example #26
0
        public void ParseDirectoryNameTest()
        {
            //Get tokens and parse it
            TokenIterator tokens     = Init("home\\site\\test.wae");
            SiteParser    siteParser = new SiteParser(tokens);
            DirName       output     = siteParser.ParseDirectoryName();
            Dir           directory  = output.GetDirectory();

            //Check output
            Assert.AreEqual(2, directory.GetDirectoryElements().Count);

            //Get directory's and transfer to array to provide walking
            List <ISyntaxNode> .Enumerator directoryEnumerator = directory.GetDirectoryElements().GetEnumerator();

            //Check directory's
            directoryEnumerator.MoveNext();
            Assert.AreEqual("home", ((PathElement)directoryEnumerator.Current).GetPathElement());
            directoryEnumerator.MoveNext();
            Assert.AreEqual("site", ((PathElement)directoryEnumerator.Current).GetPathElement());
        }
Example #27
0
        public void TestMust_ParseCalcResponseSuccess()
        {
            //arrange
            ValidateCalcRequest validation = new ValidateCalcRequest("MOW", "LED", "01.08.2016", "01.09.2016", "1");

            validation.Validate();
            CalcRequest request = validation.GetCalcRequest();

            //act
            //ISiteParser aeroflotParser = new FakeParser();
            ISiteRequests aeroflotRequests = new FakeRequests();
            SiteParser    parser           = new SiteParser(new AeroflotParser(), aeroflotRequests);

            parser.CalcRequestData = request;
            parser.GetCalc();
            CalcResponse response = parser.GetCalcResponse();

            //assert
            Assert.IsTrue(response != null);
        }
Example #28
0
        public void ParsePathTest()
        {
            //Get tokens and parse it
            TokenIterator tokens     = Init("site/home.html");
            SiteParser    siteParser = new SiteParser(tokens);
            Pth           path       = siteParser.ParsePath();

            //Get structures of path
            Dir         directory   = path.GetDirectoryName().GetDirectory();
            PathElement pathElement = (PathElement)directory.GetDirectoryElements().Get(0);
            FileName    filename    = path.GetFilename();


            //Check directory
            Assert.AreEqual(1, directory.GetDirectoryElements().Count);
            Assert.AreEqual("site", pathElement.GetPathElement());

            //Check filename
            Assert.AreEqual("home", filename.GetName().GetPathElement());
            Assert.AreEqual("html", filename.GetFileExtension().GetFileExtension());
        }
        public void TestThatInvalidSiteObjectIsCreatedWithInvalidSiteInformation()
        {
            // Site ID
            cellList[1] = "jdasdfa";
            // Address
            cellList[7] = "";
            // Frequency
            cellList[10] = "jdfsal";
            // Collection1
            cellList[15] = "23kjl32";

            Site site = SiteParser.GenerateSiteObjectFromRow(cellList, false);

            var results = HelperTestModel.Validate(site);

            Assert.AreEqual(4, results.Count);

            Assert.AreEqual("The siteID must be a valid integer", results[0].ErrorMessage);
            Assert.AreEqual("Address must be 1 to 200 characters", results[1].ErrorMessage);
            Assert.AreEqual("Pickup Frequency must be Weekly or BiWeekly", results[2].ErrorMessage);
            Assert.AreEqual("Specified Pickup Days are invalid", results[3].ErrorMessage);
        }
Example #30
0
        public CalcResponse Get(string origin, string destination, string departureDate, string returnDate, string numAdults)
        {
            CalcResponse        calcResponse = new CalcResponse();
            ValidateCalcRequest validation   = new ValidateCalcRequest(origin, destination, departureDate, returnDate, numAdults);

            validation.NumAdults = 1;
            string validateResult = validation.Validate();

            if (validation.RequestValidated)
            {
                CalcRequest   request          = validation.GetCalcRequest();
                ISiteRequests aeroflotRequests = new AeroflotRequests();
                SiteParser    parser           = new SiteParser(new AeroflotParser(), aeroflotRequests);
                parser.CalcRequestData = request;
                parser.GetCalc();
                calcResponse = parser.GetCalcResponse();
            }
            else
            {
                calcResponse.Error = validateResult;
            }
            return(calcResponse);
        }