private MOIFile ParseMOIExpectSuccess(byte[] moiData)
        {
            MOIFileParser fileParser = new MOIFileParser(moiData);
            bool result = fileParser.Parse();

            Assert.IsTrue(result, "Parsing failed due to the following error: {0}", fileParser.ParseError);

            Assert.NotNull(fileParser.MOIFile, "No MOIFile generated.");
            Assert.Null(fileParser.ParseError, "ParseError should not have been set if parsing succeeded.");

            return fileParser.MOIFile;
        }
        /// <summary>
        /// This parses the MOI files and populates ParsedMOIFiles and ParseExceptions.
        /// </summary>
        /// <returns>If there were no parsing errors</returns>
        public bool Parse()
        {
            parsedMoiFiles = new List<MOIFile>();
            parseErrors = new List<MOIParserError>();

            //Parse each path to create an MOIFile or ParserError
            foreach (string moiFilePath in moiFilePaths)
            {
                try
                {
                    byte[] moiFileData = File.ReadAllBytes(moiFilePath);
                    MOIFileParser fileParser = new MOIFileParser(moiFileData);

                    if (fileParser.Parse())
                    {
                        fileParser.MOIFile.FileName = Path.GetFileName(moiFilePath);
                        parsedMoiFiles.Add(fileParser.MOIFile);
                    }
                    else
                    {
                        fileParser.ParseError.FilePath = moiFilePath;
                        parseErrors.Add(fileParser.ParseError);
                    }
                }
                catch (Exception e) //if an unexpected error occured, create a ParserError for it.
                {
                    MOIParserError parseError = new MOIParserError(e);
                    parseError.FilePath = moiFilePath;
                    parseErrors.Add(parseError);
                }
            }

            return parseErrors.Count == 0;
        }
        private MOIParserError ParseMOIExpectFail(byte[] moiData)
        {
            MOIFileParser fileParser = new MOIFileParser(moiData);
            bool result = fileParser.Parse();

            Assert.IsFalse(result, "Parsing should have failed");

            Assert.NotNull(fileParser.ParseError, "No ParseError generated.");
            Assert.Null(fileParser.MOIFile, "MOIFile should not have been set if parsing failed.");

            return fileParser.ParseError;
        }