private static void PrintList(IVsLiteTreeList list, int indent = 0) { uint count; list.GetItemCount(out count); for (int i = 0; i < count; i++) { string text; list.GetText((uint)i, VSTREETEXTOPTIONS.TTO_DEFAULT, out text); Console.Write("{1}new ExpectedPreviewItem(\"{0}\"", text, new string(' ', indent * 4)); int expandable; list.GetExpandable((uint)i, out expandable); if (expandable != 0) { Console.WriteLine(", "); int canRecurse; IVsLiteTreeList subList; list.GetExpandedList((uint)i, out canRecurse, out subList); PrintList(subList, indent + 1); } VSTREEDISPLAYDATA[] data = new VSTREEDISPLAYDATA[1]; list.GetDisplayData((uint)i, data); // TODO: Validate display data uint changeCnt = 0; list.GetListChanges(ref changeCnt, null); VSTREELISTITEMCHANGE[] changes = new VSTREELISTITEMCHANGE[changeCnt]; list.GetListChanges(ref changeCnt, changes); // TODO: Valiate changes if (i != count - 1) { Console.WriteLine("),"); } else { Console.WriteLine(")"); } } }
private static void VerifyList(IVsLiteTreeList list, ExpectedPreviewItem[] expected) { uint count; list.GetItemCount(out count); Assert.AreEqual(expected.Length, (int)count); for (int i = 0; i < expected.Length; i++) { string text; list.GetText((uint)i, VSTREETEXTOPTIONS.TTO_DEFAULT, out text); Assert.AreEqual(expected[i].Name, text); int expandable; list.GetExpandable((uint)i, out expandable); if (expected[i].Children.Length != 0) { Assert.AreEqual(1, expandable); int canRecurse; IVsLiteTreeList subList; list.GetExpandedList((uint)i, out canRecurse, out subList); VerifyList(subList, expected[i].Children); } else { Assert.AreEqual(0, expandable); } } }