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);
        }
Esempio n. 9
0
        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);
        }