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 }); }));
        }
Esempio n. 5
0
        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");
        }
Esempio n. 6
0
        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 }); }));
        }
Esempio n. 7
0
        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 }); }));
        }
Esempio n. 9
0
        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 });
        }
Esempio n. 11
0
        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 }); }));
        }
Esempio n. 12
0
        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);
                }
            }
        }
Esempio n. 14
0
        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);
                }
            }
        }
Esempio n. 15
0
        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);
        }
Esempio n. 16
0
        public void PackageCreation()
        {
            ComboBoxPackage package = new ComboBoxPackage();

            Assert.IsNotNull(package, "Failed to create package");
        }