public void TestDropDownComboGetList() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyDropDownComboGetList", BindingFlags.NonPublic | BindingFlags.Instance); object inParam = null; IntPtr outParam = Marshal.AllocCoTaskMem(64); //64 == size of a variant + a little extra padding try { OleMenuCmdEventArgs eventArgs = new OleMenuCmdEventArgs(inParam, outParam); object result = method.Invoke(packageObject, new object[] { null, eventArgs }); string[] retrieved = (string[])Marshal.GetObjectForNativeVariant(outParam); Utilities.SameArray <string>(expectedDropDownComboChoices, retrieved); } finally { if (outParam != IntPtr.Zero) { Marshal.FreeCoTaskMem(outParam); } } }
public void TestDropDownComboBothInOutParamsGiven() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyDropDownCombo", BindingFlags.NonPublic | BindingFlags.Instance); object inParam = "Oranges"; IntPtr outParam = Marshal.AllocCoTaskMem(64); //64 == size of a variant + a little extra padding; try { OleMenuCmdEventArgs eventArgs = new OleMenuCmdEventArgs(inParam, outParam); bool hasThrown = Utilities.HasFunctionThrown <ArgumentException>(delegate { method.Invoke(packageObject, new object[] { null, eventArgs }); }); Assert.IsTrue(hasThrown); } finally { if (outParam != IntPtr.Zero) { Marshal.FreeCoTaskMem(outParam); } } }
public void TestDynamicComboGetCurVal() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyDynamicCombo", BindingFlags.NonPublic | BindingFlags.Instance); object inParam = null; IntPtr outParam = Marshal.AllocCoTaskMem(64); //64 == size of a variant + a little extra padding try { OleMenuCmdEventArgs eventArgs = new OleMenuCmdEventArgs(inParam, outParam); object result = method.Invoke(packageObject, new object[] { null, eventArgs }); string retrieved = (string)Marshal.GetObjectForNativeVariant(outParam); Assert.AreEqual <string>(expectedInitialZoomFactor, retrieved); } finally { if (outParam != IntPtr.Zero) { Marshal.FreeCoTaskMem(outParam); } } }
public void TestDropDownComboNoParams() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyDropDownCombo", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsTrue(Utilities.HasFunctionThrown <ArgumentException>(delegate { method.Invoke(packageObject, new object[] { null, null }); })); }
public void PackageInitializeWithNull() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); IVsPackage package = packageObject as IVsPackage; Assert.IsNotNull(package, "Can not get the package interface from the package object."); Assert.AreEqual(0, package.SetSite(null), "SetSite returned an unexpected value"); }
public void TestIndexComboGetListEmptyEventArgs() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyIndexComboGetList", BindingFlags.NonPublic | BindingFlags.Instance); Assert.IsTrue(Utilities.HasFunctionThrown <ArgumentException>(delegate { method.Invoke(packageObject, new object[] { null, EventArgs.Empty }); })); }
public void PackageInitialize() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); IVsPackage package = packageObject as IVsPackage; Assert.IsNotNull(package, "Can not get the package interface from the package object."); using (OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices()) { Assert.AreEqual(0, package.SetSite(serviceProvider), "Can not get the package interface from the package object."); } }
public void TestDropDownComboInvalidInParamValue() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyDropDownCombo", BindingFlags.NonPublic | BindingFlags.Instance); object inParam = "Non-valid string"; IntPtr outParam = IntPtr.Zero; OleMenuCmdEventArgs eventArgs = new OleMenuCmdEventArgs(inParam, outParam); Assert.IsTrue(Utilities.HasFunctionThrown <ArgumentException>(delegate { method.Invoke(packageObject, new object[] { null, eventArgs }); })); }
public void TestIndexComboInvalidInParamNumber() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyIndexCombo", BindingFlags.NonPublic | BindingFlags.Instance); object inParam = expectedIndexComboChoices.GetLength(0) + 1; IntPtr outParam = IntPtr.Zero; OleMenuCmdEventArgs eventArgs = new OleMenuCmdEventArgs(inParam, outParam); Assert.IsTrue(Utilities.HasFunctionThrown <ArgumentOutOfRangeException>(delegate { method.Invoke(packageObject, new object[] { null, eventArgs }); })); }
public void TestDynamicComboInvalidInParamValue() { // NOTE: invalid input is ignored and treated as a NOP ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyDynamicCombo", BindingFlags.NonPublic | BindingFlags.Instance); object inParam = "Non-valid string"; IntPtr outParam = IntPtr.Zero; OleMenuCmdEventArgs eventArgs = new OleMenuCmdEventArgs(inParam, outParam); object result = method.Invoke(packageObject, new object[] { null, eventArgs }); }
public void TestMRUComboInvalidInParamEmptyString() { // NOTE: invalid input is ignored and treated as a NOP ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyMRUCombo", BindingFlags.NonPublic | BindingFlags.Instance); object inParam = String.Empty; IntPtr outParam = IntPtr.Zero; OleMenuCmdEventArgs eventArgs = new OleMenuCmdEventArgs(inParam, outParam); Assert.IsTrue(Utilities.HasFunctionThrown <ArgumentException>(delegate { method.Invoke(packageObject, new object[] { null, eventArgs }); })); }
public void TestIndexComboSetCurValWithInt() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices(); // Add site support to create and enumerate tool windows GenericMockFactory mockFactory = new GenericMockFactory("MockUIShell", new Type[] { typeof(IVsUIShell) }); BaseMock uiShell = mockFactory.GetInstance(); serviceProvider.AddService(typeof(SVsUIShell), uiShell, false); // Site the package Assert.AreEqual(0, ((IVsPackage)packageObject).SetSite(serviceProvider), "SetSite did not return S_OK"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyIndexCombo", BindingFlags.NonPublic | BindingFlags.Instance); int inChoice = 1; object inParam1 = inChoice; IntPtr outParam1 = IntPtr.Zero; object inParam2 = null; IntPtr outParam2 = Marshal.AllocCoTaskMem(64); //64 == size of a variant + a little extra padding try { // Set IndexCombo to 2nd choice in list OleMenuCmdEventArgs eventArgs1 = new OleMenuCmdEventArgs(inParam1, outParam1); object result = method.Invoke(packageObject, new object[] { null, eventArgs1 }); // Retrieve current value of Index and verify it is "Oranges" OleMenuCmdEventArgs eventArgs2 = new OleMenuCmdEventArgs(inParam2, outParam2); result = method.Invoke(packageObject, new object[] { null, eventArgs2 }); string retrieved = (string)Marshal.GetObjectForNativeVariant(outParam2); Assert.AreEqual <string>(expectedIndexComboChoices[inChoice], retrieved); Assert.AreEqual(1, uiShell.FunctionCalls(String.Format("{0}.{1}", typeof(IVsUIShell).FullName, "ShowMessageBox")), "IVsUIShell.ShowMessageBox was not called"); } finally { if (outParam2 != IntPtr.Zero) { Marshal.FreeCoTaskMem(outParam2); } } }
public void TestDynamicComboSetCurValWithOverflowInt() { // NOTE: invalid input is ignored and treated as a NOP ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices(); // Add site support to create and enumerate tool windows GenericMockFactory mockFactory = new GenericMockFactory("MockUIShell", new Type[] { typeof(IVsUIShell) }); BaseMock uiShell = mockFactory.GetInstance(); serviceProvider.AddService(typeof(SVsUIShell), uiShell, false); // Site the package Assert.AreEqual(0, ((IVsPackage)packageObject).SetSite(serviceProvider), "SetSite did not return S_OK"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyDynamicCombo", BindingFlags.NonPublic | BindingFlags.Instance); Int64 inChoice = Int64.MaxValue; object inParam1 = inChoice.ToString() + inChoice.ToString() + inChoice.ToString(); IntPtr outParam1 = IntPtr.Zero; object inParam2 = null; IntPtr outParam2 = Marshal.AllocCoTaskMem(64); //64 == size of a variant + a little extra padding try { // Set DynamicCombo to overflow value OleMenuCmdEventArgs eventArgs1 = new OleMenuCmdEventArgs(inParam1, outParam1); object result = method.Invoke(packageObject, new object[] { null, eventArgs1 }); // Retrieve current value of Zoom and verify OleMenuCmdEventArgs eventArgs2 = new OleMenuCmdEventArgs(inParam2, outParam2); result = method.Invoke(packageObject, new object[] { null, eventArgs2 }); string retrieved = (string)Marshal.GetObjectForNativeVariant(outParam2); } finally { if (outParam2 != IntPtr.Zero) { Marshal.FreeCoTaskMem(outParam2); } } }
public void TestIndexComboSetCurValWithOverflowInt() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); OleServiceProvider serviceProvider = OleServiceProvider.CreateOleServiceProviderWithBasicServices(); // Add site support to create and enumerate tool windows GenericMockFactory mockFactory = new GenericMockFactory("MockUIShell", new Type[] { typeof(IVsUIShell) }); BaseMock uiShell = mockFactory.GetInstance(); serviceProvider.AddService(typeof(SVsUIShell), uiShell, false); // Site the package Assert.AreEqual(0, ((IVsPackage)packageObject).SetSite(serviceProvider), "SetSite did not return S_OK"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyIndexCombo", BindingFlags.NonPublic | BindingFlags.Instance); Int64 inChoice = Int64.MaxValue; object inParam1 = inChoice; IntPtr outParam1 = IntPtr.Zero; object inParam2 = null; IntPtr outParam2 = Marshal.AllocCoTaskMem(64); //64 == size of a variant + a little extra padding try { // Set IndexCombo to 2nd choice in list OleMenuCmdEventArgs eventArgs1 = new OleMenuCmdEventArgs(inParam1, outParam1); bool hasTrown = Utilities.HasFunctionThrown <ArgumentException>(delegate { method.Invoke(packageObject, new object[] { null, eventArgs1 }); }); Assert.IsTrue(hasTrown); OleMenuCmdEventArgs eventArgs2 = new OleMenuCmdEventArgs(inParam2, outParam2); object result = method.Invoke(packageObject, new object[] { null, eventArgs2 }); } finally { if (outParam2 != IntPtr.Zero) { Marshal.FreeCoTaskMem(outParam2); } } }
public void TestIndexComboInvalidInParamEmptyString() { ComboBoxPackage packageObject = new ComboBoxPackage(); Assert.IsNotNull(packageObject, "Failed to create package"); MethodInfo method = typeof(ComboBoxPackage).GetMethod("OnMenuMyIndexCombo", BindingFlags.NonPublic | BindingFlags.Instance); object inParam = String.Empty; IntPtr outParam = IntPtr.Zero; OleMenuCmdEventArgs eventArgs = new OleMenuCmdEventArgs(inParam, outParam); bool hasThrown = Utilities.HasFunctionThrown <ArgumentException>(delegate { method.Invoke(packageObject, new object[] { null, eventArgs }); }); Assert.IsTrue(hasThrown); eventArgs = new OleMenuCmdEventArgs(null, outParam); hasThrown = Utilities.HasFunctionThrown <ArgumentException>(delegate { method.Invoke(packageObject, new object[] { null, eventArgs }); }); Assert.IsTrue(hasThrown); }
public void PackageCreation() { ComboBoxPackage package = new ComboBoxPackage(); Assert.IsNotNull(package, "Failed to create package"); }