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)); }
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)); }
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); }
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"); }