public void TestConvertShouldReturnCorrectXml() { //Arrange var expectedResult = new XElement("Root", new XElement("Line1", new XElement("name", "Dave"), new XElement("address", new XElement("line1", "Street"), new XElement("line2", "Town") ) )).ToString(); var testData = new List <string> { "name,address_line1,address_line2", "Dave,Street,Town" }.AsQueryable(); var sut = new CsvToXmlConverter(); //Act var result = sut.Convert(testData).ToString(); //Assert Assert.Equal(expectedResult, result); }
public static void Main(string[] args) { var opts = new Options(); var result = Parser.Default.ParseArguments(args, opts); if (!result) { Console.WriteLine(HelpText.AutoBuild(opts)); return; } var settings = new CsvToXmlSettings() { RootNodeName = opts.RootName, EntryNodeName = opts.EntryName, Header = opts.HasHeader, Separator = opts.Separator }; if (opts.HeaderToKey != null) { settings.SetHeaderToKeyMappings(opts.HeaderToKey.ToArray()); } var converter = new CsvToXmlConverter(opts.Input, settings); var ret = converter.Convert(); ret.Save(opts.Output); }
public void TestCorrectFilePathIsRequestedToBeReadFromFileReaderByConverter() { var mockWriter = CreateBasicFileWriterAcceptingAnyParametersAndReturningDummySuccessMessage(); var mockReader = CreateFileReaderAcceptingAllPathAndReturningDummyContent(); var converter = new CsvToXmlConverter(mockReader.Object, mockWriter.Object); converter.ConvertFile(@"C:\Somewhere\change.csv"); mockReader.Verify(mock => mock.ReadDataFromFile(@"C:\Somewhere\change.csv"), Times.Exactly(1)); }
public void TestConvertedFileIsPassedToFileWriterWithCorrectName() { var mockWriter = CreateBasicFileWriterAcceptingAnyParametersAndReturningDummySuccessMessage(); var mockReader = CreateFileReaderAcceptingAllPathAndReturningDummyContent(); var converter = new CsvToXmlConverter(mockReader.Object, mockWriter.Object); converter.ConvertFile(@"C:\Somewhere\change.csv"); mockWriter.Verify(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), @"C:\Somewhere\converted_change.xml"), Times.Exactly(1)); }
public void TestOutputMessageFromFileWriterIsPassedUpThoughConverterToCallerInResult() { var mockReader = CreateFileReaderAcceptingAllPathAndReturningDummyContent(); var mockWriter = new Mock <IFileWriter>(); mockWriter.Setup(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), It.IsAny <string>())).Returns("I am an error message"); var converter = new CsvToXmlConverter(mockReader.Object, mockWriter.Object); var result = converter.ConvertFile(@"C:\Somehere\aFile\mightbe.csv"); Assert.AreEqual("I am an error message", result.ResultMessage); }
public void TestColumnValuesAreInCorrectElementTagsAfterConversion() { var mockReader = CreateFileReaderAcceptingAllPathAndReturningDummyContent(); var mockWriter = new Mock <IFileWriter>(); mockWriter.Setup(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), It.IsAny <string>())) .Returns("Success") .Callback((MemoryStream memoryStream, string s) => TestValuesOfColumnElementsInStream(memoryStream)); var converter = new CsvToXmlConverter(mockReader.Object, mockWriter.Object); converter.ConvertFile(@"C:\Any\Old\file.txt"); }
public void TestEachRecordsRootElementIsBasedOnFileName() { var expectedName = "element"; var mockWriter = new Mock <IFileWriter>(); mockWriter.Setup(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), It.IsAny <string>())) .Returns("Success") .Callback((MemoryStream memoryStream, string s) => TestElementStartAndEndTagsAreBasedOnFileName(memoryStream, expectedName)); var mockReader = CreateFileReaderAcceptingAllPathAndReturningDummyContent(); var converter = new CsvToXmlConverter(mockReader.Object, mockWriter.Object); converter.ConvertFile(@"C:\Somewhere\else\" + expectedName + ".csv"); }
public void TestMissingFileErrorIsReportedByConverter() { var testFileName = @"C:\Somewhere\strange.csv"; var mockWriter = CreateBasicFileWriterAcceptingAnyParametersAndReturningDummySuccessMessage(); var mockReader = new Mock <IStandardFileReader>(); mockReader.Setup(mock => mock.ReadDataFromFile(It.IsAny <string>())).Throws(new FileNotFoundException("not found")); var converter = new CsvToXmlConverter(mockReader.Object, mockWriter.Object); var result = converter.ConvertFile(testFileName); Assert.AreEqual(false, result.Success); Assert.AreEqual(string.Format(Resources.FileNotFoundMessage, testFileName), result.ResultMessage); }
public void TestContentOfConvertedFileIsCorrect() { var fileName = "file"; var mockReader = CreateFileReaderAcceptingAllPathAndReturningDummyContent(); var mockWriter = new Mock <IFileWriter>(); mockWriter.Setup(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), It.IsAny <string>())) .Returns("Success") .Callback((MemoryStream memoryStream, string s) => TestFullFileContentIsAsExpected(memoryStream, fileName)); var converter = new CsvToXmlConverter(mockReader.Object, mockWriter.Object); converter.ConvertFile(@"C:\Any\Old\" + fileName + ".txt"); }
public void TestCsvFileWithNoDataIsHandledProperly() { var path = @"C:\Pathto\anempty\file.csv"; var mockWriter = CreateBasicFileWriterAcceptingAnyParametersAndReturningDummySuccessMessage(); var mockReader = new Mock <IStandardFileReader>(); mockReader.Setup(mock => mock.ReadDataFromFile(It.IsAny <string>())).Returns(new string[0]); var converter = new CsvToXmlConverter(mockReader.Object, mockWriter.Object); var result = converter.ConvertFile(path); var expectedMessage = string.Format(Resources.NotDataInFileToConvert, path); Assert.IsFalse(result.Success); Assert.AreEqual(expectedMessage, result.ResultMessage); }
public void TestEachRowIsRepresentedAsASeparateElement() { var testFileName = "testFile"; //setup mock writer var mockWriter = new Mock <IFileWriter>(); mockWriter.Setup(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), It.IsAny <string>())) .Returns("Success") .Callback((MemoryStream memoryStream, string s) => TestSteamContentForRowsAsElements(memoryStream, testFileName)); //setup mock reader var mockReader = new Mock <IStandardFileReader>(); mockReader.Setup(mock => mock.ReadDataFromFile(It.IsAny <string>())) .Returns(new[] { "col1,col2", "item1.1,item1.2", "item1.1,item1.2" }); var converter = new CsvToXmlConverter(mockReader.Object, mockWriter.Object); converter.ConvertFile(@"C:\Somewhere\else\" + testFileName + ".csv"); }
private static void DetermineRequiredActionFromFileExtenstion(string path, string extension) { IConversionResult result; if (extension == "csv") { var converter = new CsvToXmlConverter(new StandardFileReader(), new FileWriter()); result = converter.ConvertFile(path); } else { var convrter = new XmlToCsvConverter(new FileWriter(), new XMLFileReader(), new XmlValidator()); result = convrter.ConvertFile(path); } var completeStatusMessage = result.Success ? Resources.SuccessfulConversionMessage : Resources.FailedConvrsionMessage; Console.WriteLine(completeStatusMessage); Console.WriteLine(result.ResultMessage); }