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); }
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); }
private static void AssertEmptyLinkList(ProjectItem item1) { var result = item1.GetLinkedItems(); Assert.NotNull(result); Assert.Empty(result); }
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); } } }