public void OnParentPackageUninstalled_NoInvokeRequired_NonThreadSafeOnParentPackageUninstalledMethodCalled()
        {
            CreateEvents();
            var expectedPackage = new FakePackage();

            threadSafeEvents.OnParentPackageUninstalled(expectedPackage);

            IPackage package = fakeEvents.PackagePassedToOnParentPackageUninstalled;

            Assert.AreEqual(expectedPackage, package);
        }
        public void OnParentPackageUninstalled_NoInvokeRequired_NonThreadSafeOnParentPackageUninstalledMethodCalled()
        {
            CreateEvents();
            IPackage package = null;
            IPackageManagementProject project = null;

            unsafeEvents.ParentPackageUninstalled += (sender, e) => {
                package = e.Package;
                project = e.Project;
            };
            var expectedPackage = new FakePackage();
            var expectedProject = new FakePackageManagementProject();

            threadSafeEvents.OnParentPackageUninstalled(expectedPackage, expectedProject);

            Assert.AreEqual(expectedPackage, package);
        }