Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/monodevelop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatt Ward <matt.ward@microsoft.com>2019-03-05 17:41:37 +0300
committermonojenkins <jo.shields+jenkins@xamarin.com>2019-03-06 16:32:27 +0300
commit093059943497345ee681ad36597bc45c968354bd (patch)
treee11fc5531cb34db1146022d280a10b36929f4aa9 /main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests
parent72efd06d586dbe36d20d1b88e53a290bebc5b290 (diff)
[NuGet] Raise install/uninstall events for PackageReference projects
The NuGet addin API has a PackageReferenceAdded event and a PackageReferenceRemoved. These were being raised if a project had a packages.config file but not if the project used PackageReferences. Fixes VSTS #807927 - Get the events working for an Android project that uses PackageReferences
Diffstat (limited to 'main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests')
-rw-r--r--main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageReferenceNuGetProjectTests.cs42
1 files changed, 42 insertions, 0 deletions
diff --git a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageReferenceNuGetProjectTests.cs b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageReferenceNuGetProjectTests.cs
index 2167100d23..23aaedc1fa 100644
--- a/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageReferenceNuGetProjectTests.cs
+++ b/main/src/addins/MonoDevelop.PackageManagement/MonoDevelop.PackageManagement.Tests/MonoDevelop.PackageManagement.Tests/PackageReferenceNuGetProjectTests.cs
@@ -24,12 +24,14 @@
// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
// THE SOFTWARE.
+using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using MonoDevelop.Core;
using MonoDevelop.PackageManagement.Tests.Helpers;
using MonoDevelop.Projects;
+using NuGet.PackageManagement;
using NuGet.Packaging.Core;
using NuGet.ProjectManagement;
using NuGet.ProjectModel;
@@ -388,5 +390,45 @@ namespace MonoDevelop.PackageManagement.Tests
int projectItemsCount = dotNetProject.Files.Count;
Assert.AreEqual (1, projectItemsCount);
}
+
+ [Test]
+ public void OnAfterExecuteActions_PackageInstallAction_PackageInstalledEventFired ()
+ {
+ CreateNuGetProject ();
+ var packageIdentity = new PackageIdentity ("Test", NuGetVersion.Parse ("1.2"));
+ var actions = new List<NuGetProjectAction> ();
+ var action = NuGetProjectAction.CreateInstallProjectAction (packageIdentity, null, project);
+ actions.Add (action);
+ PackageManagementEventArgs eventArgs = null;
+ project.PackageManagementEvents.PackageInstalled += (sender, e) => {
+ eventArgs = e;
+ };
+
+ project.OnAfterExecuteActions (actions);
+
+ Assert.AreEqual ("Test", eventArgs.Id);
+ Assert.AreEqual ("1.2", eventArgs.Version.ToString ());
+ Assert.AreEqual (packageIdentity, eventArgs.Package);
+ }
+
+ [Test]
+ public void OnAfterExecuteActions_PackageUninstallAction_PackageUninstalledEventFired ()
+ {
+ CreateNuGetProject ();
+ var packageIdentity = new PackageIdentity ("Test", NuGetVersion.Parse ("1.2"));
+ var actions = new List<NuGetProjectAction> ();
+ var action = NuGetProjectAction.CreateUninstallProjectAction (packageIdentity, project);
+ actions.Add (action);
+ PackageManagementEventArgs eventArgs = null;
+ project.PackageManagementEvents.PackageUninstalled += (sender, e) => {
+ eventArgs = e;
+ };
+
+ project.OnAfterExecuteActions (actions);
+
+ Assert.AreEqual ("Test", eventArgs.Id);
+ Assert.AreEqual ("1.2", eventArgs.Version.ToString ());
+ Assert.AreEqual (packageIdentity, eventArgs.Package);
+ }
}
}