public void TestCorrectFilePathIsRequestedToBeReadFromFileReaderByConverter() { var path = @"C:\Test\This\path\isPassed\toTheReader.xml"; var mockValidator = CreateDummyValidatorReturningSuccess(); var mockWriter = CreateBasicFileWriterAcceptingAnyParametersAndReturningDummySuccessMessage(); var mockReader = CreateFileReaderReturingDummyXmlConent(CreateBasicXMLStructure()); var converter = new XmlToCsvConverter(mockWriter.Object, mockReader.Object, mockValidator.Object); converter.ConvertFile(path); mockReader.Verify(mock => mock.ReadDataFromFile(path), Times.Exactly(1)); }
public void TestConvertedFileIsPassedToFileWriterWithCorrectName() { var mockValidator = CreateDummyValidatorReturningSuccess(); var mockWriter = CreateBasicFileWriterAcceptingAnyParametersAndReturningDummySuccessMessage(); var mockReader = CreateFileReaderReturingDummyXmlConent(CreateBasicXMLStructure()); var converter = new XmlToCsvConverter(mockWriter.Object, mockReader.Object, mockValidator.Object); converter.ConvertFile(@"C:\Location\file.xml"); mockWriter.Verify(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), @"C:\Location\converted_file.csv"), Times.Exactly(1)); }
public void TestElementValuesAreInCorrectColumnsAfterConversion() { var mockValidator = CreateDummyValidatorReturningSuccess(); var mockReader = CreateFileReaderReturingDummyXmlConent(LoadXmlDocument(@"../../Converters/XmlTestData/MulitpleProperty.xml")); var mockWriter = new Mock <IFileWriter>(); mockWriter.Setup(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), It.IsAny <string>())) .Returns("Success") .Callback((MemoryStream memoryStream, string s) => TestColumnValuesAreInCorrectColumnInCsvStream(memoryStream)); var converter = new XmlToCsvConverter(mockWriter.Object, mockReader.Object, mockValidator.Object); converter.ConvertFile(@"C:\Location\file.xml"); }
public void TestARowIsAddedForEachChildElementOfTheRootElement() { var mockValidator = CreateDummyValidatorReturningSuccess(); var mockReader = CreateFileReaderReturingDummyXmlConent(LoadXmlDocument(@"../../Converters/XmlTestData/MultipleChildren.xml")); var mockWriter = new Mock <IFileWriter>(); mockWriter.Setup(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), It.IsAny <string>())) .Returns("Success") .Callback((MemoryStream memoryStream, string s) => TestOutputCSVContainsRowForEachFirstLevelChild(memoryStream)); var converter = new XmlToCsvConverter(mockWriter.Object, mockReader.Object, mockValidator.Object); converter.ConvertFile(@"C:\Location\file.xml"); }
public void TestValidationFailureIsReportedByTheConverter() { var mockReader = CreateFileReaderReturingDummyXmlConent(LoadXmlDocument(@"../../Converters/XmlTestData/MulitpleProperty.xml")); var mockWriter = CreateBasicFileWriterAcceptingAnyParametersAndReturningDummySuccessMessage(); var mockValidator = CreateDummyValidatorReturningFailure(); var converter = new XmlToCsvConverter(mockWriter.Object, mockReader.Object, mockValidator.Object); var result = converter.ConvertFile(@"C:\Location\file.xml"); var expectedMessage = Resources.ValidationErrorsEncountered + Environment.NewLine + "I don't like the look of this xml"; Assert.IsFalse(result.Success); Assert.AreEqual(expectedMessage, result.ResultMessage); }
public void TestConversionIsNotAttemptedAfterAValidationFailure() { var mockReader = CreateFileReaderReturingDummyXmlConent(LoadXmlDocument(@"../../Converters/XmlTestData/MulitpleProperty.xml")); var mockValidator = CreateDummyValidatorReturningFailure(); var mockWriter = new Mock <IFileWriter>(); mockWriter.Setup(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), It.IsAny <string>())) .Returns("success"); var converter = new XmlToCsvConverter(mockWriter.Object, mockReader.Object, mockValidator.Object); converter.ConvertFile(@"C:\Location\file.xml"); mockWriter.Verify(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), It.IsAny <string>()), Times.Never); }
public void TestMissingDirectoryErrorIsReportedByConverter() { var testFileName = @"C:\Somewhere\strange.csv"; var mockValidator = CreateDummyValidatorReturningSuccess(); var mockWriter = CreateBasicFileWriterAcceptingAnyParametersAndReturningDummySuccessMessage(); var mockReader = new Mock <IXMLFileReader>(); mockReader.Setup(mock => mock.ReadDataFromFile(It.IsAny <string>())).Throws(new DirectoryNotFoundException("not found")); var converter = new XmlToCsvConverter(mockWriter.Object, mockReader.Object, mockValidator.Object); var result = converter.ConvertFile(testFileName); Assert.AreEqual(false, result.Success); Assert.AreEqual(string.Format(Resources.DirectoryNotFoundMessage, Path.GetPathRoot(testFileName)), result.ResultMessage); }
public void TestSuccessIsReturnedFromConverterWhenConversionSucceeds() { var successOfWriteMessage = "This idicates if the file write was successful"; var mockValidator = CreateDummyValidatorReturningSuccess(); var mockReader = CreateFileReaderReturingDummyXmlConent(LoadXmlDocument(@"../../Converters/XmlTestData/MulitpleProperty.xml")); var mockWriter = new Mock <IFileWriter>(); mockWriter.Setup(mock => mock.SaveDataToFile(It.IsAny <MemoryStream>(), It.IsAny <string>())) .Returns(successOfWriteMessage); var converter = new XmlToCsvConverter(mockWriter.Object, mockReader.Object, mockValidator.Object); var result = converter.ConvertFile(@"C:\Location\file.xml"); Assert.IsTrue(result.Success); Assert.AreEqual(successOfWriteMessage, result.ResultMessage); }
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); }