public void Should_Roundtrip_Serialise()
        {
            string output = Path.GetTempFileName();
            COBieBinarySerialiser serialiser = new COBieBinarySerialiser(output);
            serialiser.Serialise(_book);

            // Deserialiser into a new workbook.
            Stopwatch timer = new Stopwatch();
            timer.Start();
            COBieBinaryDeserialiser deserialiser = new COBieBinaryDeserialiser(output);
            COBieWorkbook newBook = deserialiser.Deserialise();
            timer.Stop();
            Debug.WriteLine(string.Format("COBieBinaryDeserialiser Time = {0}", timer.Elapsed.TotalSeconds.ToString()));

            Assert.AreEqual(19, _book.Count);
        }
        public void Should_Have_HashValue_Serialise()
        {
            string hashCode1, hashCode2;
            string output = Path.GetTempFileName();
            hashCode1 = _book[Constants.WORKSHEET_FACILITY][0].RowHashValue;
            Debug.WriteLine(string.Format("Serialised Row hash Value = {0}", hashCode1));
            string hashCodeSerial1 = _book[Constants.WORKSHEET_FACILITY][0].InitialRowHashValue;
            Debug.WriteLine(string.Format("Created Row Hash Value Was = {0}", hashCodeSerial1));
            // Act
            COBieBinarySerialiser serialiser = new COBieBinarySerialiser(output);
            serialiser.Serialise(_book);

            // Deserialiser into a new workbook.
            COBieBinaryDeserialiser deserialiser = new COBieBinaryDeserialiser(output);

            COBieWorkbook newBook = deserialiser.Deserialise();
            hashCode2 = newBook[Constants.WORKSHEET_FACILITY][0].RowHashValue;
            Debug.WriteLine(string.Format("Deserialised Row hash Value = {0}", hashCode2));
            string hashCodeSerial2 = newBook[Constants.WORKSHEET_FACILITY][0].InitialRowHashValue;
            Debug.WriteLine(string.Format("Created Row Hash Value Was = {0}", hashCodeSerial2));

            // Assert
            Assert.AreEqual(hashCode1, hashCode2);
        }
        public void Should_BinarySerialiser()
        {
            COBieWorkbook workBook;
            COBieContext context;
            COBieBuilder builder;

            context = new COBieContext(null);
            context.TemplateFileName = ExcelTemplateFile;

            using (XbimModel model = new XbimModel())
            {
                model.Open(DuplexFile, XbimDBAccess.ReadWrite, delegate(int percentProgress, object userState)
                {
                    Console.Write("\rReading File {1} {0}", percentProgress, DuplexFile);
                });
                context.Model = model;

                builder = new COBieBuilder(context);
                workBook = builder.Workbook;
                COBieBinarySerialiser serialiser = new COBieBinarySerialiser(DuplexBinaryFile);
                serialiser.Serialise(workBook);
            }
            double bytes = 0;
            if (File.Exists(DuplexBinaryFile))
            {
                FileInfo fileInfo = new FileInfo(DuplexBinaryFile);
                bytes = fileInfo.Length;
            }

            Assert.IsTrue(File.Exists(DuplexBinaryFile));
        }
        public void Should_BinarySerialiser_with_roles()
        {
            COBieWorkbook workBook, workBook2;
            COBieContext context;
            COBieBuilder builder;

            context = new COBieContext(null);
            context.TemplateFileName = ExcelTemplateFile;

            using (XbimModel model = new XbimModel())
            {
                model.Open(DuplexFile, XbimDBAccess.ReadWrite, delegate(int percentProgress, object userState)
                {
                    Console.Write("\rReading File {1} {0}", percentProgress, DuplexFile);
                });
                context.Model = model;
                context.MapMergeRoles[model] = COBieMergeRoles.Mechanical;

                builder = new COBieBuilder(context);
                workBook = builder.Workbook;
                COBieBinarySerialiser serialiser = new COBieBinarySerialiser(DuplexBinaryFile);
                serialiser.Serialise(workBook);

                COBieBinaryDeserialiser deserialiser = new COBieBinaryDeserialiser(DuplexBinaryFile);
                workBook2 = deserialiser.Deserialise();

            }

            Assert.IsTrue(workBook2[Constants.WORKSHEET_COMPONENT].RemovedRows.Count() > 0);
        }