Example #1
0
        public void Execute_ReferenceBeingUpdatedHasLocalCopyTrue_ReferenceAddedHasLocalCopyTrue()
        {
            var originalProjectReference = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "nunit.framework");

            originalProjectReference.LocalCopy = true;
            CreateAction("Test", originalProjectReference);
            AddInstallPackageIntoProjectAction("Test", "1.2");
            var firstReferenceBeingAdded  = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NewAssembly");
            var secondReferenceBeingAdded = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NUnit.Framework");

            packageManager.BeforeExecuteActionTask = async() => {
                await nugetProject.ProjectReferenceMaintainer.RemoveReference(originalProjectReference);

                packageManagementEvents.OnReferenceRemoving(originalProjectReference);

                packageManagementEvents.OnReferenceAdding(firstReferenceBeingAdded);
                await nugetProject.ProjectReferenceMaintainer.AddReference(firstReferenceBeingAdded);

                packageManagementEvents.OnReferenceAdding(secondReferenceBeingAdded);
                await nugetProject.ProjectReferenceMaintainer.AddReference(secondReferenceBeingAdded);
            };

            action.Execute();

            var nunitFrameworkReference = project.References.FirstOrDefault(r => r.Reference == originalProjectReference.Reference);
            var newReference            = project.References.FirstOrDefault(r => r.Reference == "NewAssembly");

            Assert.IsTrue(newReference.LocalCopy);
            Assert.IsTrue(nunitFrameworkReference.LocalCopy);
        }
        public void Execute_PackageAlreadyExistsWhenInstallingItAgainAndReferenceBeingInstalledOriginallyHadLocalCopyFalse_ReferenceAddedHasLocalCopyFalse()
        {
            var originalProjectReference = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "nunit.framework");

            originalProjectReference.LocalCopy = false;
            CreateAction("Test", "2.1", originalProjectReference);
            action.PreserveLocalCopyReferences = true;
            var firstReferenceBeingAdded  = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NewAssembly");
            var secondReferenceBeingAdded = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NUnit.Framework");

            packageManager.BeforeExecuteActionTask = async() => {
                await nugetProject.ProjectReferenceMaintainer.RemoveReference(originalProjectReference);

                packageManagementEvents.OnReferenceRemoving(originalProjectReference);

                packageManagementEvents.OnReferenceAdding(firstReferenceBeingAdded);
                await nugetProject.ProjectReferenceMaintainer.AddReference(firstReferenceBeingAdded);

                packageManagementEvents.OnReferenceAdding(secondReferenceBeingAdded);
                await nugetProject.ProjectReferenceMaintainer.AddReference(secondReferenceBeingAdded);
            };

            action.Execute();

            var nunitFrameworkReference = project.References.FirstOrDefault(r => r.Reference == originalProjectReference.Reference);
            var newReference            = project.References.FirstOrDefault(r => r.Reference == "NewAssembly");

            Assert.IsTrue(newReference.LocalCopy);
            Assert.IsFalse(nunitFrameworkReference.LocalCopy);
            Assert.IsTrue(action.PreserveLocalCopyReferences);
        }
Example #3
0
        public void Execute_ReferenceHasLocalCopyFalseWhenUninstalled_ReferenceHasLocalCopyFalseAfterBeingReinstalled()
        {
            CreateAction("MyPackage", "1.2.3.4");
            AddUninstallPackageIntoProjectAction("MyPackage", "1.2.3.4");
            AddInstallPackageIntoProjectAction("MyPackage", "1.2.3.4");
            var firstReferenceBeingAdded  = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NewAssembly");
            var secondReferenceBeingAdded = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NUnit.Framework");

            uninstallPackageManager.BeforeExecuteAction = () => {
                var referenceBeingRemoved = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NUnit.Framework");
                referenceBeingRemoved.LocalCopy = false;
                packageManagementEvents.OnReferenceRemoving(referenceBeingRemoved);
            };
            bool installActionMaintainsLocalCopyReferences = false;

            installPackageManager.BeforeExecuteAction = () => {
                installActionMaintainsLocalCopyReferences = action.InstallAction.PreserveLocalCopyReferences;
                packageManagementEvents.OnReferenceAdding(firstReferenceBeingAdded);
                packageManagementEvents.OnReferenceAdding(secondReferenceBeingAdded);
            };

            action.Execute();

            Assert.IsTrue(firstReferenceBeingAdded.LocalCopy);
            Assert.IsFalse(secondReferenceBeingAdded.LocalCopy);
            Assert.IsFalse(installActionMaintainsLocalCopyReferences, "Should be false since the reinstall action will maintain the local copies");
        }
        public void Execute_ReferenceBeingUpdatedHasLocalCopyTrue_ReferenceAddedHasLocalCopyTrue()
        {
            CreateAction();
            AddInstallPackageIntoProjectAction("Test", "1.2");
            var firstReferenceBeingAdded  = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NewAssembly");
            var secondReferenceBeingAdded = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NUnit.Framework");

            packageManager.BeforeExecuteAction = () => {
                var referenceBeingRemoved = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NUnit.Framework");
                referenceBeingRemoved.LocalCopy = true;
                packageManagementEvents.OnReferenceRemoving(referenceBeingRemoved);
                packageManagementEvents.OnReferenceAdding(firstReferenceBeingAdded);
                packageManagementEvents.OnReferenceAdding(secondReferenceBeingAdded);
            };

            action.Execute();

            Assert.IsTrue(firstReferenceBeingAdded.LocalCopy);
            Assert.IsTrue(secondReferenceBeingAdded.LocalCopy);
        }
Example #5
0
        public void Execute_PackageAlreadyExistsWhenInstallingItAgainAndReferenceBeingInstalledOriginallyHadLocalCopyFalse_ReferenceAddedHasLocalCopyFalse()
        {
            CreateAction();
            action.PreserveLocalCopyReferences = true;
            var firstReferenceBeingAdded  = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NewAssembly");
            var secondReferenceBeingAdded = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NUnit.Framework");

            packageManager.BeforeExecuteAction = () => {
                var referenceBeingRemoved = ProjectReference.CreateCustomReference(ReferenceType.Assembly, "NUnit.Framework");
                referenceBeingRemoved.LocalCopy = false;
                packageManagementEvents.OnReferenceRemoving(referenceBeingRemoved);
                packageManagementEvents.OnReferenceAdding(firstReferenceBeingAdded);
                packageManagementEvents.OnReferenceAdding(secondReferenceBeingAdded);
            };

            action.Execute();

            Assert.IsTrue(firstReferenceBeingAdded.LocalCopy);
            Assert.IsFalse(secondReferenceBeingAdded.LocalCopy);
            Assert.IsTrue(action.PreserveLocalCopyReferences);
        }
 public Task RemoveReferenceAsync(string name)
 {
     return(GuiSyncDispatchAsync(async() => {
         ProjectReference referenceProjectItem = FindReference(name);
         if (referenceProjectItem != null)
         {
             packageManagementEvents.OnReferenceRemoving(referenceProjectItem);
             await ProjectReferenceMaintainer.RemoveReference(referenceProjectItem);
             LogRemovedReferenceFromProject(referenceProjectItem);
         }
     }));
 }
Example #7
0
 public void RemoveReference(string name)
 {
     GuiSyncDispatch(() => {
         ProjectReference referenceProjectItem = FindReference(name);
         if (referenceProjectItem != null)
         {
             packageManagementEvents.OnReferenceRemoving(referenceProjectItem);
             project.References.Remove(referenceProjectItem);
             project.Save();
             LogRemovedReferenceFromProject(referenceProjectItem);
         }
     });
 }
 public void OnReferenceRemoving(ProjectReference reference)
 {
     unsafeEvents.OnReferenceRemoving(reference);
 }