Esempio n. 1
0
        public void TestReadWithUnknownNodes()
        {
            string rmlBadFile = Path.Combine(ROOT_DIR,
                                          @"Components\Sourcecode\BSC\WSCompose\Workshare.RedlineML.Reader.Tests\TestDocuments\redlineml_extranodes.xml");

            RedlineDocument rd1, rd2;

            using (TextReader tr = new StringReader(File.ReadAllText(rmlBadFile)))
            {
                RedlineMLReader rmr = new RedlineMLReader(tr);
                Assert.NotNull(rmr);
                rd1 = rmr.Execute();
            }

            string rmlFile = Path.Combine(ROOT_DIR,
                                          @"Components\Sourcecode\BSC\WSCompose\Workshare.RedlineML.Reader.Tests\TestDocuments\redlineml.xml");

            using (TextReader tr = new StringReader(File.ReadAllText(rmlFile)))
            {
                RedlineMLReader rmr = new RedlineMLReader(tr);
                Assert.NotNull(rmr);
                rd2 = rmr.Execute();
            }

            Assert.NotNull(rd1);
            Assert.NotNull(rd2);

            Assert.AreEqual(rd1.Descendants().Count(), rd2.Descendants().Count());

            Assert.AreEqual(4, rd1.Options.Count);
        }
Esempio n. 2
0
        private static void ValidateRedlineMLRegeneratedFromRTF(string origFileName, string modFileName, string path, bool changeNumbersInRedline = true)
        {


            List<ISummaryItem> result = Helpers.ValidateSummaryList(origFileName, modFileName, path, 
                (x) => x.SetOption((int) WsCompose.OptIds.OPTID_NUMBER_CHANGES, changeNumbersInRedline ? -1 : 0));

            Dictionary<int, ChangeType> expectedChangeTypes = new Dictionary<int, ChangeType>();
            foreach (ISummaryItem isi in result)
            {
                foreach (Change ch in isi.Changes)
                {
                    expectedChangeTypes[ch.Number] = ch.Type;
                }
            }

            using (WsActivationContext ac = new WsActivationContext())
            {
                string sRedline = Helpers.LastRTFRedline;
                WsCompose.WSRTFFile file = new WsCompose.WSRTFFile();
                file.InputFileName = sRedline;
                file.ReadFile();

                var pTarget = Helpers.MakeComStreamOnHGlobal();
                file.GetRedlineML(pTarget as WsCompose.IStream);

                string sCreatedRedlineML = Helpers.ExtractTextFromIStream(pTarget);

                Assert.IsFalse(sCreatedRedlineML.Contains("Summary of deletions"));
                Assert.IsFalse(sCreatedRedlineML.Contains("Document comparison by"));
                Assert.IsFalse(sCreatedRedlineML.Contains("Redline Summary"));
                Assert.IsFalse(sCreatedRedlineML.Contains("Legend:"));
                Assert.IsFalse(sCreatedRedlineML.Contains("Statistics:"));
                Assert.IsFalse(sCreatedRedlineML.Contains(">80<"), "shouldn't be leaving change numbers in");


                Helpers.ValidateRedlineML(sCreatedRedlineML);

                RedlineMLReader reader = new RedlineMLReader(new StringReader(sCreatedRedlineML));
                RedlineDocument rd = reader.Execute();

                SummaryItemBuilder bld = new SummaryItemBuilder(rd);
                List<ISummaryItem> result2 = bld.Execute();
                Helpers.ValidateChangeNumbers(result2);

                foreach (ISummaryItem isi in result2)
                {
                    foreach (Change ch in isi.Changes)
                    {
                        Assert.AreEqual(expectedChangeTypes[ch.Number], ch.Type, "Mismatched change type on " + ch.Number.ToString());
                    }
                }

                Assert.AreEqual(result.Count, result2.Count);
            }
        }