Example #1
0
        public void AssignDescriptionToMultiple()
        {
            var action = TraverserActions.AssignDescriptions as ITraverserAction <NamedDescription>;

            var basic       = new XElement("Basic");
            var detailed    = new XElement("Detailed");
            var description = new NamedDescription("child1", basic, detailed, new List <FileLine>());
            var child1      = new TestClass("child1", CollectionUtils.Empty <IContained>());
            var child1Dash  = new TestClass("child1", CollectionUtils.Empty <IContained>());
            var subObjects  = new List <IContained>
            {
                child1,
                child1Dash,
                description
            };

            var parent = new TestClass("parent", subObjects);

            action.Act(description, new StandardErrorListener <TraverserException>());

            Assert.IsTrue(!parent.SubObjects.Contains(description));

            var newDesc = child1.SubObjects.OfType <Description>().Single();

            Assert.IsTrue(newDesc.Basic == basic);
            Assert.IsTrue(newDesc.Detailed == detailed);

            newDesc = child1Dash.SubObjects.OfType <Description>().Single();
            Assert.IsTrue(newDesc.Basic == basic);
            Assert.IsTrue(newDesc.Detailed == detailed);
        }
        public void InCorrentLink()
        {
            {
                var action = TraverserActions.CheckDescriptionLinkage as ITraverserAction <NamedDescription>;

                var basic       = new XElement("Basic");
                var detailed    = new XElement("Detailed");
                var description = new NamedDescription("wrong", basic, detailed, new List <FileLine>());
                var child1      = new TestClass("child1", new[] { description });

                Assert.Throws(typeof(TraverserException), () => action.Act(description, new StandardErrorListener <TraverserException>()));
            }
        }