Пример #1
0
        public void JsonParserInvalidJsonTest()
        {
            var testFilePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"TestFiles\InvalidJson.json");
            var context      = FileParserFactory.CreateContext(InputFileType.Json);

            Assert.Throws <Exception>(() => context.Parse(testFilePath));
        }
Пример #2
0
        public void ParserShouldErrorOnEmpty(string input, string extension)
        {
            var res = new FileParserFactory().CreateTransactionFileParser(extension).ParseStream(ToStream(input));

            Assert.False(res.Success);
            Assert.Single(res.Errors);
        }
        public FileParserFactoryTests()
        {
            this.fixture = new Fixture();

            this.fileExtensionParser = new Mock <IFileExtensionParser>();

            this.csvTestEntityAParser = new Mock <IFileParser <TestEntityA> >();
            this.csvTestEntityAParser.Setup(x => x.DataType).Returns(typeof(TestEntityA));
            this.csvTestEntityAParser.Setup(x => x.FileExtension).Returns(FileExtension.Csv);

            this.xmlTestEntityAParser = new Mock <IFileParser <TestEntityA> >();
            this.xmlTestEntityAParser.Setup(x => x.DataType).Returns(typeof(TestEntityA));
            this.xmlTestEntityAParser.Setup(x => x.FileExtension).Returns(FileExtension.Xml);

            this.csvTestEntityBParser = new Mock <IFileParser <TestEntityB> >();
            this.csvTestEntityBParser.Setup(x => x.DataType).Returns(typeof(TestEntityB));
            this.csvTestEntityBParser.Setup(x => x.FileExtension).Returns(FileExtension.Csv);

            this.xmlTestEntityBParser = new Mock <IFileParser <TestEntityB> >();
            this.xmlTestEntityBParser.Setup(x => x.DataType).Returns(typeof(TestEntityB));
            this.xmlTestEntityBParser.Setup(x => x.FileExtension).Returns(FileExtension.Xml);

            var parsers = new List <IFileParser>
            {
                this.csvTestEntityAParser.Object,
                this.xmlTestEntityAParser.Object,
                this.csvTestEntityBParser.Object,
                this.xmlTestEntityBParser.Object,
            };

            this.subject = new FileParserFactory(this.fileExtensionParser.Object, parsers);
        }
Пример #4
0
        public void ParseFile_GivenFilePath_UTF8Encoding_AndReplaceCapitalParseMode()
        {
            string       filePath = "test.txt";
            StreamWriter sw       = new StreamWriter(File.Create(filePath));

            foreach (string s in testStrings)
            {
                sw.WriteLine(s);
            }
            sw.Close();

            FileParserFactory fileParserBuilder = new FileParserFactory(filePath, Encoding.UTF8, ParseStrategy.ReplaceCapitalLetters());
            IFileParser       fileParser        = fileParserBuilder.Create();
            StreamReader      sr = fileParser.ParseFile();

            int i = 0;

            while (!sr.EndOfStream)
            {
                Assert.IsTrue(sr.ReadLine() == lowercaseResultStrings[i]);
                i++;
            }

            sr.Close();
        }
Пример #5
0
        public void ParseFile_GivenFilePath_UTF8Encoding_AndLeaveUnchangedParseMode()
        {
            string       filePath = "test.txt";
            StreamWriter sw       = new StreamWriter(File.Create(filePath));

            foreach (string s in testStrings)
            {
                sw.WriteLine(s);
            }
            sw.Close();

            FileParserFactory fileParserBuilder = new FileParserFactory(filePath, Encoding.UTF8);
            IFileParser       fileParser        = fileParserBuilder.Create();
            StreamReader      sr = fileParser.ParseFile();

            int i = 0;

            while (!sr.EndOfStream)
            {
                Assert.IsTrue(sr.ReadLine() == defaultResultStrings[i]);
                i++;
            }

            sr.Close();
        }
        public async Task <PackagesFileResult <IPackage> > ParseFileAsync(string filePath, string fileName = null)
        {
            if (string.IsNullOrEmpty(fileName))
            {
                fileName = Path.GetFileName(filePath);
            }

            IFileParser fileParser = FileParserFactory.CreateParser(fileName);
            IEnumerable <PackageMetadata> packagesMetadata = fileParser.GetPackages(filePath);

            List <Task <NuGetPackage> > tasks = new List <Task <NuGetPackage> >();

            foreach (var item in packagesMetadata)
            {
                tasks.Add(_nuGetPackagesRepository.FindPackageAsync(item.PackageId, item.Version));
            }

            await Task.WhenAll(tasks);

            List <NuGetPackage> packages = tasks.Select(p => p.Result).ToList();

            return(new PackagesFileResult <IPackage>
            {
                PackageType = fileParser.PackageType,
                FileName = fileName,
                Packages = packages.OrderBy(p => p.PackageId).ToList()
            });
        }
Пример #7
0
        public void JsonParserValidJsonTest()
        {
            var testFilePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"TestFiles\Wolferhampton_Race1.json");
            var context      = FileParserFactory.CreateContext(InputFileType.Json);
            var horses       = context.Parse(testFilePath);

            Assert.True(horses.Count > 1);
        }
Пример #8
0
        public void XmlParserValidFileTest()
        {
            var testFilePath = Path.Combine(Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location), @"TestFiles\Caulfield_Race1.xml");
            var context      = FileParserFactory.CreateContext(InputFileType.Xml);
            var horses       = context.Parse(testFilePath);

            Assert.True(horses.Count > 1);
        }
Пример #9
0
        private StreamReader GetParsedFileStream(IParseStrategy parseStrategy)
        {
            var fileParserFactory = new FileParserFactory(_searchFile, parseStrategy);

            var fileParser   = fileParserFactory.Create();
            var streamReader = fileParser.ParseFile();

            return(streamReader);
        }
Пример #10
0
        public void GivenTXTFile_WhenParserRequested_ThenReturnNull()
        {
            var fileParserFactory = new FileParserFactory();
            var filePath          = "test.txt";

            var parser = fileParserFactory.GetParser(filePath);

            Assert.Null(parser);
        }
Пример #11
0
        public void GivenXMLFile_WhenParserRequested_ThenReturnXMLParser()
        {
            var fileParserFactory = new FileParserFactory();
            var filePath          = "test.xml";

            var parser = fileParserFactory.GetParser(filePath);

            Assert.NotNull(parser);
            Assert.IsType <XmlFileParser>(parser);
        }
Пример #12
0
        public void GivenJSONFile_WhenParserRequested_ThenReturnJSONParser()
        {
            var fileParserFactory = new FileParserFactory();
            var filePath          = "test.json";

            var parser = fileParserFactory.GetParser(filePath);

            Assert.NotNull(parser);
            Assert.IsType <JsonFileParser>(parser);
        }
Пример #13
0
        public void TestParserSuccess(string input, string extension, int count, decimal firstAmount, string lastId)
        {
            var res = new FileParserFactory().CreateTransactionFileParser(extension).ParseStream(ToStream(input));

            Assert.True(res.Success);
            Assert.Empty(res.Errors);
            Assert.Equal(count, res.Transactions.Count);
            Assert.Equal(firstAmount, res.Transactions.First().Amount);
            Assert.Equal(lastId, res.Transactions.Last().Id);
        }
Пример #14
0
        public IEnumerator <ISearchee> GetEnumerator()
        {
            var files = FileLister(_rootPath);

            foreach (var filePath in files)
            {
                var fileParserFactory = new FileParserFactory(filePath, _parseStrategy);

                yield return(new ParsedFileSearchee(filePath, fileParserFactory));
            }
        }
Пример #15
0
        public void ParseFile_GivenHtmFilePath_UTF8Encoding_AndLeaveUnchangedParseStrategy()
        {
            string       filePath = "test.htm";
            StreamWriter sw       = new StreamWriter(File.Create(filePath));

            sw.Write(htmlTest);
            sw.Close();

            FileParserFactory fileParserBuilder = new FileParserFactory(filePath, Encoding.UTF8);
            IFileParser       fileParser        = fileParserBuilder.Create();
            StreamReader      sr = fileParser.ParseFile();

            Assert.IsTrue(sr.ReadToEnd() == htmlTestResult);

            sr.Close();
        }
        /// <summary>
        /// Displays the root View.
        /// </summary>
        /// <param name="sender">Ignored.</param>
        /// <param name="e">Ignored.</param>
        protected override void OnStartup(object sender, System.Windows.StartupEventArgs e)
        {
            IExtendedWindowManager windowManager     = new ExtendedWindowManager();
            ILastFMClient          client            = new LastFMClient(APIKEY, APISECRET);
            IScrobblerFactory      scrobblerFactory  = new ScrobblerFactory();
            ILocalFileFactory      localFileFactory  = new LocalFileFactory();
            IFileOperator          fileOperator      = new FileOperator();
            IDirectoryOperator     directoryOperator = new DirectoryOperator();
            ISerializer            userSerializer    = new DCSerializer();
            ILogger                logger            = new Logger("log.txt");
            IGitHubClient          gitHubClient      = new GitHubClient(new ProductHeaderValue("Last.fm-Scrubbler-WPF"));
            IProcessManager        processManager    = new ProcessManager();
            IDiscogsDataBaseClient discogsClient     = new DiscogsClient.DiscogsClient(new TokenAuthenticationInformation("vcrTuxlCPCANcLDUDcbGSYBxbODkeyywIUtYAMxg"));
            IFileParserFactory     fileParserFactory = new FileParserFactory();

            MainViewModel mainVM = new MainViewModel(windowManager, client, scrobblerFactory, localFileFactory, fileOperator,
                                                     directoryOperator, userSerializer, logger, gitHubClient, processManager, discogsClient, fileParserFactory);

            windowManager.ShowWindow(new SystemTrayViewModel(windowManager, mainVM));
        }
Пример #17
0
 internal ParsedFileSearchee(string path, FileParserFactory fileParserFactory)
 {
     this.Path           = path;
     this._parserFactory = fileParserFactory;
 }
Пример #18
0
 public void Setup()
 {
     logger            = ConsoleLogger.Instance;
     fileParserFactory = new FileParserFactory();
     feedProvider      = new FeedProvider(logger, fileParserFactory);
 }