Beispiel #1
0
 private static void AssertLinkedItem(ProjectItem item1, ProjectItem item2, ProjectItemLinkDescription description)
 {
     var result = item1.GetLinkedItems();
     Assert.NotNull(result);
     var resultList = result.ToList();
     Assert.Equal(1, resultList.Count);
     Assert.Equal(item2, resultList[0].ProjectItem);
     Assert.Equal(description, resultList[0].Description);
 }
Beispiel #2
0
        public async Task TestBuilderSingleItemOnAddWithBuildInBackgroundOption()
        {
            var kind = "test";
            var projectItem = new ProjectItem("p1", kind);

            var project = new Project();

            var target = new Mock<IBuildTask>();
            const string targetName = "test";
            target.SetupGet(t => t.Name).Returns(targetName);
            target.SetupGet(t => t.DependsOn).Returns(BuildQuery.SingleFromKind(kind));
            target.SetupGet(t => t.Options).Returns(BuildOptions.BuildInBackground);

            var id = new ProjectItemIdentifier("gugus", "created");
            const string contentString = "test";
            var source = new BuildTaskResult(id, new ProjectItemContentFromAction(() => GenerateStreamFromString(contentString)));
            SetupProceed(target, projectItem).Returns(new [] { source });

            var underTest = new Builder(project);
            underTest.AddTask(target.Object);

            project.AddItem(new ProjectItem("p2"));
            project.AddItem(projectItem);

            var generatedItem = project.GetItemById(id);
            Assert.NotNull(generatedItem);
            Assert.Equal(id, generatedItem.Identifier);

            var stream = await generatedItem.OpenRead();
            //Second Stream
            var stream2 = await generatedItem.OpenRead();

            AssertStream(stream, contentString);
            AssertStream(stream2, contentString);

            var links = projectItem.GetLinkedItems();
            Assert.NotNull(links);

            var linkList = links.ToList();
            Assert.Equal(1, linkList.Count);

            Assert.Equal(generatedItem, linkList[0].ProjectItem);
            Assert.Equal(targetName, linkList[0].Description.Name);
        }
Beispiel #3
0
 private static void AssertEmptyLinkList(ProjectItem item1)
 {
     var result = item1.GetLinkedItems();
     Assert.NotNull(result);
     Assert.Empty(result);
 }
Beispiel #4
0
 private void ProceedRemove(ProjectItem item)
 {
     foreach (var linkedItemDescription in item.GetLinkedItems())
     {
         var builderDesc = linkedItemDescription.Description as ProjectItemLinkDescriptionFromBuilder;
         if (builderDesc != null && builderDesc.Builder == this && builderDesc.ParentItem == item)
         {
             if (linkedItemDescription.ProjectItem.GetLinkedItems().Count() == 1)
                 _project.RemoveItem(linkedItemDescription.ProjectItem);
             else
                 _project.Touch(item);
         }
     }
 }