Example #1
0
        public async Task Should_CreateCsvFileWithNoRows_When_ParserReturnedEmptyList()
        {
            string expectedFileContent =
                @"Mnemonic,Namespace,BaseCurrency,Price,Date
";

            var settings = new PolishTreasuryBondsPriceImportGeneratorSettings()
            {
                GeneratedFilename = generatedFileName
            };

            var fakeParser = A.Fake <IPolishTreasuryBondsAccountStateFileParser>();

            A.CallTo(() => fakeParser.IsExtensionProcessable(A <string> ._)).Returns(true);
            A.CallTo(() => fakeParser.ParseFile(A <string> ._)).Returns(new List <PolishTreasuryBondsAccountStateFileRecord>());

            var fakeSettingsMonitor = A.Fake <IOptionsMonitor <PolishTreasuryBondsPriceImportGeneratorSettings> >();

            A.CallTo(() => fakeSettingsMonitor.CurrentValue).Returns(settings);

            var generator = new PolishTreasuryBondsPriceImportGenerator(GetParsersProvider(new [] { fakeParser }), fakeSettingsMonitor);

            await generator.GenerateImport(existingFilePath);

            Assert.IsTrue(File.Exists(settings.GeneratedFilename));
            Assert.AreEqual(expectedFileContent, File.ReadAllText(settings.GeneratedFilename));
        }
Example #2
0
        private async Task TestFileGeneration(string currency, string bondNamespace, string expectedFileContent, DateTime lastWriteTime,
                                              List <PolishTreasuryBondsAccountStateFileRecord> data)
        {
            var settings = new PolishTreasuryBondsPriceImportGeneratorSettings()
            {
                GeneratedFilename = generatedFileName,
                BaseCurrency      = currency, Namespace = bondNamespace
            };

            File.SetLastWriteTime(existingFilePath, lastWriteTime);

            var fakeParser = A.Fake <IPolishTreasuryBondsAccountStateFileParser>();

            A.CallTo(() => fakeParser.IsExtensionProcessable(A <string> ._)).Returns(true);
            A.CallTo(() => fakeParser.ParseFile(A <string> ._)).Returns(data);

            var fakeSettingsMonitor = A.Fake <IOptionsMonitor <PolishTreasuryBondsPriceImportGeneratorSettings> >();

            A.CallTo(() => fakeSettingsMonitor.CurrentValue).Returns(settings);

            var generator = new PolishTreasuryBondsPriceImportGenerator(GetParsersProvider(new[] { fakeParser }), fakeSettingsMonitor);

            await generator.GenerateImport(existingFilePath);

            Assert.IsTrue(File.Exists(settings.GeneratedFilename));
            Assert.AreEqual(expectedFileContent, File.ReadAllText(settings.GeneratedFilename));
        }
Example #3
0
        public async Task Should_ThrowInvalidOperationException_When_NoParserFound()
        {
            var settings = new PolishTreasuryBondsPriceImportGeneratorSettings()
            {
            };

            var fakeSettingsMonitor = A.Fake <IOptionsMonitor <PolishTreasuryBondsPriceImportGeneratorSettings> >();

            A.CallTo(() => fakeSettingsMonitor.CurrentValue).Returns(settings);

            var generator = new PolishTreasuryBondsPriceImportGenerator(GetParsersProvider(new List <Type>()), fakeSettingsMonitor);

            await generator.GenerateImport(existingFilePath);
        }
Example #4
0
        public async Task Should_ThrowInvalidOperationException_When_FileDoesNotExist()
        {
            var settings = new PolishTreasuryBondsPriceImportGeneratorSettings()
            {
            };

            var fakeSettingsMonitor = A.Fake <IOptionsMonitor <PolishTreasuryBondsPriceImportGeneratorSettings> >();

            A.CallTo(() => fakeSettingsMonitor.CurrentValue).Returns(settings);

            var generator = new PolishTreasuryBondsPriceImportGenerator(null, fakeSettingsMonitor);

            await generator.GenerateImport("not_existing_file.nef");
        }