Пример #1
0
        public async Task ShouldParseJsonFileSuccessfully()
        {
            //Arrange
            var appConfig = new AppConfig {
                JsonFilePath = "FeedData\\Wolferhampton_Race1.json", XmlFilePath = "FeedData\\Caulfield_Race1.xml"
            };
            var IOptionsMock = Options.Create(appConfig);

            var loggerMock = new Mock <ILogger <JsonFileParser> >();

            var jsonFileParser = new JsonFileParser(IOptionsMock, loggerMock.Object);

            //Act
            var horses = await jsonFileParser.ParseAsync();

            Horse horse1 = horses.First();
            Horse horse2 = horses.Skip(1).First();

            //Assert
            Assert.True(horses.Count() == 2);
            Assert.True(horse1.Name == "Toolatetodelegate" &&
                        horse1.Price == 10m);

            Assert.True(horse2.Name == "Fikhaar" &&
                        horse2.Price == 4.4m);
        }
Пример #2
0
        public PostModel(int id)
        {
            Blog        root      = JsonFileParser.LoadBlogsPosts();
            List <Post> blogPosts = root.BlogPosts;
            var         blogPost  = blogPosts.FirstOrDefault(x => x.Id == id);

            if (blogPost == null)
            {
                throw new ArgumentNullException("Blog Should Be Valid Integer");
            }

            Id          = blogPost.Id;
            Date        = blogPost.Date;
            Title       = blogPost.Title;
            Image       = blogPost.Image;
            HtmlContent = blogPost.HtmlContent;

            if (blogPost.Comments != null)
            {
                SetCommentsModel(blogPost.Comments);
            }
            else
            {
                CommentsModel = new List <CommentModel>();
            }
        }
        public static void Main(string[] args)
        {
            MainConfig app = JsonFileParser.DeserializeFile <MainConfig> ("Config/MainConfig.json");

            var cfg     = new LoggingConfiguration();
            var console = new ConsoleTarget();

            console.Layout = @"${level} [${logger}] - ${message}";
            cfg.AddTarget("console", console);
            LogLevel level = DetermineLogLevel(app.LogLevel);

            cfg.LoggingRules.Add(new LoggingRule("*", level, console));
            LogManager.Configuration = cfg;
            Logger logger = LogManager.GetCurrentClassLogger();

            var uri  = String.Format("http://localhost:{0}", app.Port);
            var host = new NancyHost(new Uri(uri));

            logger.Info("Listening on {0}", uri);
            host.Start();

            logger.Info("Connecting to zookeeper and registering service...");
            ZookeeperAccessor accessor = new ZookeeperAccessor(app.ZookeeperHost, app.ZookeeperPort);

            accessor.RegisterService("1.0", "location", app.Port, "/location");
            accessor.RegisterService("1.0", "time", app.Port, "/time");
            logger.Info("Service registration complete");

            while (true)
            {
            }
        }
        public void GivenNullFilePath_WhenGetHorsesCalled_ThenReturnEmptyList()
        {
            var jsonFileParser = new JsonFileParser();
            var horses         = jsonFileParser.GetHorses(null);

            Assert.True(horses.Count() == 0);
        }
Пример #5
0
        public bool DisplayHorsesFromFile(string path)
        {
            //TODO: Use Factory pattern
            foreach (string file in Directory.GetFiles(path))
            {
                var        fileExtension = Path.GetExtension(file).ToLower();
                FileParser fileParse     = null;
                if (fileExtension == ".xml")
                {
                    fileParse = new XmlFileParser();
                }
                else if (fileExtension == ".json")
                {
                    fileParse = new JsonFileParser();
                }

                if (fileParse != null)
                {
                    var horses = fileParse.GetRacingHorses(file);
                    Console.WriteLine("Race Name is {0}", fileParse.RaceName);
                    fileParse.DisplayHorsesInOrder(horses);
                }
                else
                {
                    return(false);
                }
            }

            return(true);
        }
Пример #6
0
        static void Main(string[] args)
        {
            IDotNetMethodsInvoker  dotNetMethodsInvoker  = new DotNetMethodsInvoker();
            IMethodDetailsObtainer methodDetailsObtainer = new JsonFileParser();

            dotNetMethodsInvoker.InvokeMethods(methodDetailsObtainer);
            Console.ReadKey();
        }
        public void GivenJSONFilePath_WhenGetHorsesCalled_ThenReturnListOfHorses()
        {
            var jsonFileParser = new JsonFileParser();
            var horses         = jsonFileParser.GetHorses(@"TestData\Wolferhampton_Race1.json");

            Assert.NotNull(horses);
            Assert.True(horses.Count() > 0);
        }
Пример #8
0
        public void GetHorseDetails_Success_Case1()
        {
            var    fileParser = new JsonFileParser();
            string path       = "TestData/Wolferhampton_Race1.json";
            var    horses     = fileParser.GetHorseDetails(path);

            Assert.NotNull(horses);
            Assert.True(horses.Count > 0);
        }
Пример #9
0
        public void GetHorseFromJsonFile()
        {
            var    jsonFileParser = new JsonFileParser();
            string path           = "TestData/Wolferhampton_Race1.json";
            var    horses         = jsonFileParser.GetParticipantHorses(path);

            Assert.NotNull(horses);
            Assert.Equal(2, horses.Count);
        }
        static LocationProvider()
        {
            Location = JsonFileParser.DeserializeFile <LocationConfig> ("Config/Location.json");
            logger.Info("Location services initialized with address '{0}'", Location.Address);
            var locationService = new GoogleLocationService();

            LatLong = locationService.GetLatLongFromAddress(Location.Address);
            logger.Info("Retrieved lat: {0} long: {1} from google", LatLong.Latitude, LatLong.Longitude);
        }
Пример #11
0
        public void GetHorsesDetails_Fail_Case2()
        {
            var    fileParser = new JsonFileParser();
            string path       = "";
            var    horses     = fileParser.GetHorseDetails(path);

            Assert.NotNull(horses);
            Assert.True(horses.Count == 0);
        }
Пример #12
0
 public void JsonFileParserTest()
 {
     try
     {
         JsonFileParser parser = new JsonFileParser();
     }
     catch (Exception)
     {
         Assert.Fail();
     }
 }
Пример #13
0
        public async Task JsonFilePerFileTest()
        {
            JsonFileParser          parser = new JsonFileParser(new JsonFormatMessageFields());
            CancellationTokenSource cts    = new CancellationTokenSource();
            string fileName = Path.Combine(Folder, "log files", "JsonFormatPerFile.clef");
            MessageHandlerForTesting forTesting = new MessageHandlerForTesting();
            var messages = (await parser.Process(fileName, cts.Token, forTesting)).ToList();

            Assert.IsTrue(messages.Count == 2);
            //Assert.IsTrue(messages[0].Text == "Hello, { Name: \"nblumhardt\", Tags: [1, 2, 3] }, 0000007b at 06/07/2016 06:44:57","got"+ messages[0].Text);
            Assert.IsTrue(messages[0].User == "{ Name: \"nblumhardt\", Tags: [1, 2, 3] }");
        }
Пример #14
0
        public async Task CompactJsonFormatFullFileTest()
        {
            JsonFileParser          parser = new JsonFileParser(new CompactJsonFormatMessageFields());
            CancellationTokenSource cts    = new CancellationTokenSource();
            string fileName = Path.Combine(Folder, "log files", "JsonFileCompactFormat.clef");
            MessageHandlerForTesting forTesting = new MessageHandlerForTesting();
            var messages = (await parser.Process(fileName, cts.Token, forTesting)).ToList();

            Assert.IsTrue(messages.Count == 2);
            Assert.IsTrue(messages[0].MachineName == "MY-MACHINE");
            Assert.IsTrue(messages[1].Text.StartsWith("An unknown error occurred"));
            Assert.IsTrue((messages[1].Module == "My process"));
        }
Пример #15
0
        public async Task ShouldParseJsonFileWithAnException()
        {
            //Arrange
            var appConfig = new AppConfig {
                JsonFilePath = "", XmlFilePath = "FeedData\\Caulfield_Race1.xml"
            };
            var IOptionsMock = Options.Create(appConfig);

            var loggerMock = new Mock <ILogger <JsonFileParser> >();

            var jsonFileParser = new JsonFileParser(IOptionsMock, loggerMock.Object);

            //Act and Assert
            await Assert.ThrowsAsync <DirectoryNotFoundException>(() => jsonFileParser.ParseAsync());
        }
Пример #16
0
        public void AddComment()
        {
            Blog    root    = JsonFileParser.LoadBlogsPosts();
            Comment comment = new Comment
            {
                Name         = NewComment.Name,
                Date         = DateTime.Now,
                EmailAddress = NewComment.EmailAddress,
                Message      = NewComment.Message
            };
            Post blogPost = root.BlogPosts.FirstOrDefault(x => x.Id == this.Id);

            comment.Id = blogPost?.Comments?.Count + 1 ?? 1;
            blogPost?.AddComment(comment);
            JsonFileParser.SaveToJson(root);
        }
Пример #17
0
        public void AddReply(int commentId)
        {
            Reply reply = new Reply
            {
                Name         = NewComment.Name,
                Date         = DateTime.Now,
                EmailAddress = NewComment.EmailAddress,
                Message      = NewComment.Message
            };

            Blog root     = JsonFileParser.LoadBlogsPosts();
            Post blogPost = root.BlogPosts.FirstOrDefault(x => x.Id == this.Id);

            if (blogPost != null)
            {
                Comment comment = blogPost.Comments.FirstOrDefault(x => x.Id == commentId);

                comment?.AddReply(reply);
            }
            JsonFileParser.SaveToJson(root);
        }
Пример #18
0
        /// <summary>
        /// Adds the json file to the configuration. Multiple different files can be added.
        /// Use root expression syntax for file selection <example>$(filename).some.path</example>
        /// </summary>
        /// <param name="configuration"></param>
        /// <param name="file">the file to use</param>
        /// <param name="eagerLoad">load the file eagerly instead of lazily</param>
        /// <returns></returns>
        public static IEnvironmentConfiguration WithJsonFile(this IEnvironmentConfiguration configuration, string file, bool eagerLoad = false)
        {
            JsonFileParser parser = null;

            if (configuration.HasValue(typeof(JsonFileParser).FullName))
            {
                parser = configuration.GetValue <JsonFileParser>(typeof(JsonFileParser).FullName);
            }
            else
            {
                configuration.SetValue(typeof(JsonFileParser).FullName, parser = new JsonFileParser());
            }
            if (parser.Files.Keys.Any(x => String.Equals(x, file, StringComparison.OrdinalIgnoreCase)))
            {
                return(configuration);
            }
            else
            {
                var data = new JsonFileParser.FileDataHolder();
                if (eagerLoad)
                {
                    try
                    {
                        data.ParsedFile = JsonManager.Parse(File.ReadAllText(file));
                    }
                    catch
                    {
                        data.ParsingFailed = true;
                    }
                }

                data.Path = file;
                parser.Files.Add(file, data);
            }

            return(configuration);
        }
        private JsonFileParser CreateTestee()
        {
            var jsonFactoryMock = A.Fake <IJsonFactory>();

            A.CallTo(() => jsonFactoryMock.CreateJsonTextReader(A <string> .Ignored)).Returns(_jsonTextReaderMock);
            A.CallTo(() => _jsonTextReaderMock.TokenType).Returns(JsonToken.String);
            A.CallTo(() => _jsonTextReaderMock.Read()).ReturnsNextFromSequence(true, true, true, true, false);
            var lineCounter = 0;
            var texts       = new[] { "A", "B", "C", "D" };

            A.CallTo(() => _jsonTextReaderMock.LineNumber).ReturnsLazily(() => ++ lineCounter);
            A.CallTo(() => _jsonTextReaderMock.Value).ReturnsLazily(() => texts[lineCounter - 1 % 4]);

            A.CallTo(() => _jsonTextReaderMock.Path).Returns(SourcePath);

            var fileHelperMock = A.Fake <IFileHelper>();

            A.CallTo(() => fileHelperMock.GetNumberOfLines(A <string> .Ignored)).Returns(4);

            var filePropertiesMock = A.Fake <IFileProperties>();

            var testee = new JsonFileParser(
                jsonFactoryMock,
                fileHelperMock,
                _embeddedContentRegexSettingsMock,
                _parsingSettingsMock,
                _paragraphUnitFactoryMock,
                _segmendDataCollectorMock)
            {
                ItemFactory = _itemFactoryMock,
                Output      = _bilingualContentHandlerMock
            };

            testee.SetFileProperties(filePropertiesMock);

            return(testee);
        }
        public void GivenInvalidFilePath_WhenGetHorsesCalled_ThenExceptionThrown()
        {
            var jsonFileParser = new JsonFileParser();

            Assert.Throws <FileNotFoundException>(() => jsonFileParser.GetHorses(@"TestData\test.json"));
        }
        public void GivenPathToTextFile_WhenGetHorsesCalled_ThenExceptionThrown()
        {
            var jsonFileParser = new JsonFileParser();

            Assert.Throws <JsonReaderException>(() => jsonFileParser.GetHorses(@"TestData\TextFile1.txt"));
        }
 public void TestClean()
 {
     _jsonFileParser = null;
 }
 public JsonParserTests()
 {
     _parser = new JsonFileParser();
 }
 public void TestInit()
 {
     _jsonFileParser = new JsonFileParser <Config>();
 }