public void ExpandAllIntoTaskItems1() { PropertyDictionary<ProjectPropertyInstance> pg = new PropertyDictionary<ProjectPropertyInstance>(); Expander<ProjectPropertyInstance, ProjectItemInstance> expander = new Expander<ProjectPropertyInstance, ProjectItemInstance>(pg); IList<TaskItem> itemsOut = expander.ExpandIntoTaskItemsLeaveEscaped("foo", ExpanderOptions.ExpandProperties, MockElementLocation.Instance); ObjectModelHelpers.AssertItemsMatch(@"foo", GetTaskArrayFromItemList(itemsOut)); }
/// <summary> /// Expands the properties and items in the specified expression into a list of taskitems. /// </summary> /// <param name="expression">The expression to expand.</param> /// <returns>A list of items.</returns> public IList <TaskItem> ExpandIntoTaskItems(string expression) { var originalValue = _expander.WarnForUninitializedProperties; var items = _expander.ExpandIntoTaskItemsLeaveEscaped(expression, _expanderOptions, ElementLocation); _expander.WarnForUninitializedProperties = originalValue; return(items); }
public void ExpandAllIntoTaskItems3() { ProjectInstance project = ProjectHelpers.CreateEmptyProjectInstance(); PropertyDictionary<ProjectPropertyInstance> pg = new PropertyDictionary<ProjectPropertyInstance>(); List<ProjectItemInstance> ig = new List<ProjectItemInstance>(); ig.Add(new ProjectItemInstance(project, "Compile", "foo.cs", project.FullPath)); ig.Add(new ProjectItemInstance(project, "Compile", "bar.cs", project.FullPath)); List<ProjectItemInstance> ig2 = new List<ProjectItemInstance>(); ig2.Add(new ProjectItemInstance(project, "Resource", "bing.resx", project.FullPath)); ItemDictionary<ProjectItemInstance> itemsByType = new ItemDictionary<ProjectItemInstance>(); itemsByType.ImportItems(ig); itemsByType.ImportItems(ig2); Expander<ProjectPropertyInstance, ProjectItemInstance> expander = new Expander<ProjectPropertyInstance, ProjectItemInstance>(pg, itemsByType); IList<TaskItem> itemsOut = expander.ExpandIntoTaskItemsLeaveEscaped("foo;bar;@(compile);@(resource)", ExpanderOptions.ExpandPropertiesAndItems, MockElementLocation.Instance); ObjectModelHelpers.AssertItemsMatch(@" foo bar foo.cs bar.cs bing.resx ", GetTaskArrayFromItemList(itemsOut)); }
public void ExpandAllIntoTaskItemsComplex() { ReadOnlyLookup lookup; StringMetadataTable itemMetadata; CreateComplexPropertiesItemsMetadata(out lookup, out itemMetadata); Expander<ProjectPropertyInstance, ProjectItemInstance> expander = new Expander<ProjectPropertyInstance, ProjectItemInstance>(lookup, lookup, itemMetadata); IList<TaskItem> taskItems = expander.ExpandIntoTaskItemsLeaveEscaped( "@(Resource->'%(Filename)') ; @(Content) ; @(NonExistent) ; $(NonExistent) ; %(NonExistent) ; " + "$(OutputPath) ; $(TargetPath) ; %(Language)_%(Culture)", ExpanderOptions.ExpandAll, MockElementLocation.Instance); // the following items are passed to the TaskItem constructor, and thus their ItemSpecs should be // in escaped form. ObjectModelHelpers.AssertItemsMatch(@" string$(p): ddd=444 dialogs%253b: eee=555 splash.bmp: ccc=333 \jk l\mno%253bpqr\stu subdir1\: aaa=111 subdir2\: bbb=222 english_abc%253bdef ghi ", GetTaskArrayFromItemList(taskItems)); }
public void ExpandAllIntoTaskItems4() { PropertyDictionary<ProjectPropertyInstance> pg = new PropertyDictionary<ProjectPropertyInstance>(); pg.Set(ProjectPropertyInstance.Create("a", "aaa")); pg.Set(ProjectPropertyInstance.Create("b", "bbb")); pg.Set(ProjectPropertyInstance.Create("c", "cc;dd")); Expander<ProjectPropertyInstance, ProjectItemInstance> expander = new Expander<ProjectPropertyInstance, ProjectItemInstance>(pg); IList<TaskItem> itemsOut = expander.ExpandIntoTaskItemsLeaveEscaped("foo$(a);$(b);$(c)", ExpanderOptions.ExpandProperties, MockElementLocation.Instance); ObjectModelHelpers.AssertItemsMatch(@" fooaaa bbb cc dd ", GetTaskArrayFromItemList(itemsOut)); }