public void GetChildren_WithTargetAndPropertyGroup_ReturnCorrectTargetAndPropertyGroupContent()
        {
            string projectXml =
                "<Project><PropertyGroup><TestProperty>Value</TestProperty></PropertyGroup><Target Name=\"TestTargetA\"></Target></Project>";

            IMsBuildProject project = new MsBuildXmlProjectImplementation(CreateFromString(projectXml));

            IList <IMsBuildTarget> target = project.GetChildren <IMsBuildTarget>();

            Assert.AreEqual("TestTargetA", target[0].Name);

            IMsBuildPropertyGroup propertyGroup = project.GetChildren <IMsBuildPropertyGroup>().First();

            Assert.AreEqual("Value", propertyGroup.First().Value);
            Assert.AreEqual("TestProperty", propertyGroup.First().Name);
        }
        public void IndexOf_ExistingItemAtIndex5_ShouldReturn5()
        {
            MsBuildXmlProjectImplementation project = CreateProjectWithMockedContent();

            IMsBuildTarget target = project.GetChildren <IMsBuildTarget>()[5];

            Assert.AreEqual(5, project.IndexOf(target));
        }
        public void RemoveAt_LastIndex_ShouldRemoveLastItemAndReturnTarget9AsLastOne()
        {
            MsBuildXmlProjectImplementation project = CreateProjectWithMockedContent();

            project.RemoveAt(9);

            Assert.AreEqual("Target9", project.GetChildren <IMsBuildTarget>().Last().Name);
        }
        public void Contains_ExistingItem_ShouldReturnTrue()
        {
            MsBuildXmlProjectImplementation project = CreateProjectWithMockedContent();

            IMsBuildTarget target = project.GetChildren <IMsBuildTarget>().First();

            Assert.IsTrue(project.Contains(target));
        }
        public void Remove_LastItem_ShouldRemoveLastItem()
        {
            MsBuildXmlProjectImplementation project = CreateProjectWithMockedContent();

            project.Remove(project.Last());

            Assert.AreEqual("Target9", project.GetChildren <IMsBuildTarget>().Last().Name);
        }
        public void GetChildren_WithOneTarget_ReturnCorrectTarget()
        {
            string projectXml = "<Project><Target Name=\"TestTargetA\"></Target></Project>";

            IMsBuildProject project = new MsBuildXmlProjectImplementation(CreateFromString(projectXml));

            IMsBuildTarget target = project.GetChildren <IMsBuildTarget>().First();

            Assert.AreEqual("TestTargetA", target.Name);
        }
        public void InsertAt_Position5_ShouldAddItemAtPosition5()
        {
            MsBuildXmlProjectImplementation project = CreateProjectWithMockedContent();

            Mock <IMsBuildTarget> targetMock = new Mock <IMsBuildTarget>();

            targetMock.Setup(x => x.Name).Returns("Target99");
            project.Insert(5, targetMock.Object);

            Assert.AreEqual("Target99", project.GetChildren <IMsBuildTarget>()[5].Name);
        }
        public void GetChildren_WithOnePropertyGroup_ReturnCorrectProperty()
        {
            string projectXml =
                "<Project><PropertyGroup><TestProperty>TestValue</TestProperty></PropertyGroup></Project>";

            IMsBuildProject project = new MsBuildXmlProjectImplementation(CreateFromString(projectXml));

            IMsBuildPropertyGroup propertyGroup = project.GetChildren <IMsBuildPropertyGroup>().First();

            Assert.AreEqual("TestProperty", propertyGroup[0].Name);
            Assert.AreEqual("TestValue", propertyGroup[0].Value);
        }
        public void SetAccessor_NewItem_ShouldReplaceExistentItem()
        {
            MsBuildXmlProjectImplementation project = CreateProjectWithMockedContent();

            Mock <IMsBuildTarget> targetMock = new Mock <IMsBuildTarget>();

            targetMock.Setup(x => x.Name).Returns("Target99");

            project[project.Count - 1] = targetMock.Object;

            Assert.AreEqual("Target99", project.GetChildren <IMsBuildTarget>().Last().Name);
        }
        public void GetChildren_WithTwoTargets_ReturnCorrectTargetsWithName()
        {
            string projectXml =
                "<Project><Target Name=\"TestTargetA\"></Target><Target Name=\"TestTargetB\"></Target></Project>";

            IMsBuildProject project = new MsBuildXmlProjectImplementation(CreateFromString(projectXml));

            IList <IMsBuildTarget> target = project.GetChildren <IMsBuildTarget>();

            Assert.AreEqual("TestTargetA", target[0].Name);
            Assert.AreEqual("TestTargetB", target[1].Name);
        }