/// <summary>
        /// Creates a new implemented object of the given interface type. Also checks if
        /// the given element is assignable to the given msbuild type.
        /// </summary>
        /// <param name="element"><seealso cref="XmlElement"/> to create a msbuild element from</param>
        /// <typeparam name="T">Type to create a new object from</typeparam>
        /// <returns>Created object if the given element is assignable to the given type</returns>
        public virtual T Create <T>(XmlElement element) where T : IMsBuildElement
        {
            IMsBuildElement createdObject = null;

            if (typeof(T) == typeof(IMsBuildTarget) &&
                MsBuildXmlTargetImplementation.XmlElementName.Equals(element.Name,
                                                                     StringComparison.OrdinalIgnoreCase))
            {
                createdObject = new MsBuildXmlTargetImplementation(element);
            }

            if (typeof(T) == typeof(IMsBuildOnError) &&
                MsBuildXmlOnErrorTaskImplementation.XmlElementName.Equals(element.Name,
                                                                          StringComparison.OrdinalIgnoreCase))
            {
                createdObject = new MsBuildXmlOnErrorTaskImplementation(element);
            }

            if (typeof(T) == typeof(IMsBuildPropertyGroup) &&
                MsBuildXmlPropertyGroupImplementation.XmlElementName.Equals(element.Name,
                                                                            StringComparison.OrdinalIgnoreCase))
            {
                createdObject = new MsBuildXmlPropertyGroupImplementation(element);
            }

            return((T)createdObject);
        }
Exemple #2
0
        public void TestMethod5()
        {
            IMsBuildTarget target = new MsBuildXmlTargetImplementation(_defaultTargetElement);

            Assert.IsTrue(target.IsConditional);
            Assert.AreEqual("'String A' == 'String B'", target.Condition);
        }
Exemple #3
0
        public void TestMethod12()
        {
            IMsBuildTarget target = new MsBuildXmlTargetImplementation(_extendedTargetElement);

            Assert.AreEqual("BeforeTargets1", target.BeforeTargets[0]);
            Assert.AreEqual("BeforeTargets2", target.BeforeTargets[1]);
        }
Exemple #4
0
        public void TestMethod7()
        {
            IMsBuildTarget target = new MsBuildXmlTargetImplementation(_defaultTargetElement);

            Assert.AreEqual("This is a test target", target.Help.LookUp("SYNOPSIS").First().Content);
            Assert.AreEqual("Does nothing really cool but, yeah, well...",
                            target.Help.LookUp("DESCRIPTION").First().Content);
        }
Exemple #5
0
        public void TestMethod13()
        {
            IMsBuildTarget target = new MsBuildXmlTargetImplementation(_extendedTargetElement);

            Assert.AreEqual("AfterTargets1", target.AfterTargets[0]);
            Assert.AreEqual("AfterTargets2", target.AfterTargets[1]);
            Assert.AreEqual("AfterTargets3", target.AfterTargets[2]);
        }
Exemple #6
0
        public void HasTargetDependencies_FromTargetWithoutDependsOnTarget_ShouldReturnTrue()
        {
            string testTargetImplementation =
                "<Project><Target Name=\"Test\"><CallTarget Targets=\"AnotherTest\" /></Target></Project>";

            XmlDocument document = new XmlDocument();

            document.LoadXml(testTargetImplementation);
            XmlElement targetElement = (XmlElement)document.GetElementsByTagName("Target")[0];

            IMsBuildTarget target = new MsBuildXmlTargetImplementation(targetElement);

            Assert.IsFalse(target.HasTargetDependencies);
        }
Exemple #7
0
        public void GetChildren_FromTargetWithCommentInBody_ShouldNotThrowException()
        {
            string testTargetImplementation =
                "<Project><Target Name=\"Test\"><!-- This is a comment --><CallTarget Targets=\"AnotherTest\" /></Target></Project>";

            XmlDocument document = new XmlDocument();

            document.LoadXml(testTargetImplementation);
            XmlElement targetElement = (XmlElement)document.GetElementsByTagName("Target")[0];

            IMsBuildTarget target = new MsBuildXmlTargetImplementation(targetElement);

            target.GetChildren <IMsBuildOnError>();
        }
Exemple #8
0
        public void TestMethod11()
        {
            IMsBuildTarget target = new MsBuildXmlTargetImplementation(_extendedTargetElement);

            Assert.AreEqual("ExtendedTarget", target.Name);
        }
Exemple #9
0
        public void TestMethod6()
        {
            IMsBuildTarget target = new MsBuildXmlTargetImplementation(_defaultTargetElement);

            Assert.AreEqual("OnErrorTargetName", target.OnErrorTargets.First());
        }
Exemple #10
0
        public void TestMethod4()
        {
            IMsBuildTarget target = new MsBuildXmlTargetImplementation(_defaultTargetElement);

            Assert.AreEqual("AfterTargets", target.AfterTargets.First());
        }
Exemple #11
0
        public void TestMethod2()
        {
            IMsBuildTarget target = new MsBuildXmlTargetImplementation(_defaultTargetElement);

            Assert.AreEqual("DependentTarget", target.DependsOnTargets.First());
        }
Exemple #12
0
        public void TestMethod1()
        {
            IMsBuildTarget target = new MsBuildXmlTargetImplementation(_defaultTargetElement);

            Assert.AreEqual("DefaultTarget", target.Name);
        }