public void RemoveEvaluatedItemSuccess() { try { string includePath = Path.Combine(ObjectModelHelpers.TempProjectDir, "*.foo"); List <string> files = CompatibilityTestHelpers.CreateFiles(4, "foo", "foo", ObjectModelHelpers.TempProjectDir); Project p = new Project(new Engine()); BuildItemGroup group = p.AddNewItemGroup(); group.AddNewItem("foos", includePath); object o = p.EvaluatedItems; files.RemoveAt(files.IndexOf(p.EvaluatedItems[0].FinalItemSpec)); p.RemoveItem(p.EvaluatedItems[0]); int i = 0; foreach (string fileName in files) { Assertion.AssertEquals(includePath, group[0].FinalItemSpec); Assertion.AssertEquals(includePath, group[0].Include); Assertion.AssertEquals(fileName, p.EvaluatedItems[i].Include); Assertion.AssertEquals(fileName, p.EvaluatedItems[i].FinalItemSpec); i++; } } finally { CompatibilityTestHelpers.CleanupDirectory(ObjectModelHelpers.TempProjectDir); } }
public void RemoveEvaluatedItem1() { try { List <string> files = CompatibilityTestHelpers.CreateFiles(4, "foo", "foo", ObjectModelHelpers.TempProjectDir); Project p = new Project(new Engine()); BuildItemGroup group = p.AddNewItemGroup(); group.AddNewItem("foos", Path.Combine(ObjectModelHelpers.TempProjectDir, "*.foo")); object o = p.EvaluatedItems; // this causes the failure group.RemoveItem(p.EvaluatedItems[0]); // Exception thrown here Assertion.Fail("success as failure"); // should not get here due to exception above } catch (Exception e) { if (!(e.GetType().ToString().Contains("InternalErrorException"))) { Assertion.Fail(e.Message + " was thrown"); } else { Assertion.Assert("InternalErrorException was thrown", true); } } finally { CompatibilityTestHelpers.CleanupDirectory(ObjectModelHelpers.TempProjectDir); } }