support packages update. Tests, Integration tests
[teamcity/dotNetPackagesSupport.git] / nuget-tests / src / jetbrains / buildServer / nuget / tests / integration / InstallPackageIntegtatoinTest.java
index 6b4ba3b0cfad58e53a9a7c7233b65c18da375ee5..a6802e44108dec1aff0ee7c946cf5777248fe273 100644 (file)
@@ -26,6 +26,7 @@ import jetbrains.buildServer.nuget.agent.parameters.PackagesParametersFactory;
 import jetbrains.buildServer.nuget.agent.parameters.PackagesInstallParameters;\r
 import jetbrains.buildServer.nuget.agent.install.PackagesInstallerRunner;\r
 import jetbrains.buildServer.nuget.agent.install.impl.NuGetActionFactoryImpl;\r
+import jetbrains.buildServer.nuget.agent.parameters.PackagesUpdateParameters;\r
 import jetbrains.buildServer.nuget.agent.util.BuildProcessBase;\r
 import jetbrains.buildServer.nuget.agent.util.CommandlineBuildProcessFactory;\r
 import jetbrains.buildServer.nuget.tests.util.BuildProcessTestCase;\r
@@ -55,7 +56,8 @@ public class InstallPackageIntegtatoinTest extends BuildProcessTestCase {
   private BuildRunnerContext myContext;\r
   private BuildProgressLogger myLogger;\r
   private PackagesParametersFactory myParametersFactory;\r
-  private PackagesInstallParameters myParameters;\r
+  private PackagesInstallParameters myInstall;\r
+  private PackagesUpdateParameters myUpdate;\r
   private NuGetParameters myNuGet;\r
   private BuildProcess myMockProcess;\r
 \r
@@ -69,7 +71,8 @@ public class InstallPackageIntegtatoinTest extends BuildProcessTestCase {
     myContext = m.mock(BuildRunnerContext.class);\r
     myLogger = m.mock(BuildProgressLogger.class);\r
     myParametersFactory = m.mock(PackagesParametersFactory.class);\r
-    myParameters = m.mock(PackagesInstallParameters.class);\r
+    myInstall = m.mock(PackagesInstallParameters.class);\r
+    myUpdate = m.mock(PackagesUpdateParameters.class);\r
     myMockProcess = m.mock(BuildProcess.class);\r
     myNuGet = m.mock(NuGetParameters.class);\r
 \r
@@ -85,7 +88,8 @@ public class InstallPackageIntegtatoinTest extends BuildProcessTestCase {
       allowing(myLogger).activityStarted(with(equal("install")), with(any(String.class)), with(any(String.class)));\r
       allowing(myLogger).activityFinished(with(equal("install")), with(any(String.class)));\r
 \r
-      allowing(myParameters).getNuGetParameters(); will(returnValue(myNuGet));\r
+      allowing(myInstall).getNuGetParameters(); will(returnValue(myNuGet));\r
+      allowing(myUpdate).getNuGetParameters(); will(returnValue(myNuGet));\r
     }});\r
   }\r
 \r
@@ -93,7 +97,55 @@ public class InstallPackageIntegtatoinTest extends BuildProcessTestCase {
   public void test_01_online_sources() throws RunBuildException {\r
     ArchiveUtil.unpackZip(getTestDataPath("test-01.zip"), "", myRoot);\r
 \r
-    fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false);\r
+    fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, false);\r
+\r
+    List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
+    System.out.println("installed packageses = " + packageses);\r
+\r
+    Assert.assertTrue(new File(myRoot, "packages/NUnit.2.5.7.10213").isDirectory());\r
+    Assert.assertTrue(new File(myRoot, "packages/NInject.2.2.1.4").isDirectory());\r
+    Assert.assertTrue(new File(myRoot, "packages/Machine.Specifications.0.4.13.0").isDirectory());\r
+    Assert.assertEquals(4, packageses.size());\r
+  }\r
+\r
+  @Test\r
+  public void test_01_online_sources_update() throws RunBuildException {\r
+    ArchiveUtil.unpackZip(getTestDataPath("test-01.zip"), "", myRoot);\r
+\r
+    m.checking(new Expectations(){{\r
+      allowing(myLogger).activityStarted(with(equal("update")), with(any(String.class)), with(equal("nuget")));\r
+      allowing(myLogger).activityFinished(with(equal("update")), with(equal("nuget")));\r
+\r
+      allowing(myUpdate).getUseSafeUpdate(); will(returnValue(false));\r
+      allowing(myUpdate).getPackagesToUpdate(); will(returnValue(Collections.<String>emptyList()));\r
+    }});\r
+\r
+    fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, true);\r
+\r
+\r
+    List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
+    System.out.println("installed packageses = " + packageses);\r
+\r
+    Assert.assertTrue(new File(myRoot, "packages/NUnit.2.5.7.10213").isDirectory());\r
+    Assert.assertTrue(new File(myRoot, "packages/NInject.2.2.1.4").isDirectory());\r
+    Assert.assertTrue(new File(myRoot, "packages/Machine.Specifications.0.4.13.0").isDirectory());\r
+    Assert.assertEquals(4, packageses.size());\r
+  }\r
+\r
+  @Test\r
+  public void test_01_online_sources_update_safe() throws RunBuildException {\r
+    ArchiveUtil.unpackZip(getTestDataPath("test-01.zip"), "", myRoot);\r
+\r
+    m.checking(new Expectations(){{\r
+      allowing(myLogger).activityStarted(with(equal("update")), with(any(String.class)), with(equal("nuget")));\r
+      allowing(myLogger).activityFinished(with(equal("update")), with(equal("nuget")));\r
+\r
+      allowing(myUpdate).getUseSafeUpdate(); will(returnValue(true));\r
+      allowing(myUpdate).getPackagesToUpdate(); will(returnValue(Collections.<String>emptyList()));\r
+    }});\r
+\r
+    fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, true);\r
+\r
 \r
     List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
     System.out.println("installed packageses = " + packageses);\r
@@ -108,7 +160,7 @@ public class InstallPackageIntegtatoinTest extends BuildProcessTestCase {
   public void test_01_online_sources_ecludeVersion() throws RunBuildException {\r
     ArchiveUtil.unpackZip(getTestDataPath("test-01.zip"), "", myRoot);\r
 \r
-    fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), true);\r
+    fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), true, false);\r
 \r
     List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
     System.out.println("installed packageses = " + packageses);\r
@@ -125,7 +177,7 @@ public class InstallPackageIntegtatoinTest extends BuildProcessTestCase {
     File sourcesDir = new File(myRoot, "js");\r
     ArchiveUtil.unpackZip(getTestDataPath("test-01-sources.zip"), "", sourcesDir);\r
 \r
-    fetchPackages(new File(myRoot, "sln1-lib.sln"), Arrays.asList("file:///" + sourcesDir.getPath()), false);\r
+    fetchPackages(new File(myRoot, "sln1-lib.sln"), Arrays.asList("file:///" + sourcesDir.getPath()), false, false);\r
 \r
     List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
     System.out.println("installed packageses = " + packageses);\r
@@ -136,15 +188,19 @@ public class InstallPackageIntegtatoinTest extends BuildProcessTestCase {
     Assert.assertEquals(4, packageses.size());\r
   }\r
 \r
-  private void fetchPackages(final File sln, final List<String> sources, final boolean excludeVersion) throws RunBuildException {\r
+  private void fetchPackages(final File sln,\r
+                             final List<String> sources,\r
+                             final boolean excludeVersion,\r
+                             final boolean update) throws RunBuildException {\r
     m.checking(new Expectations() {{\r
       allowing(myParametersFactory).loadNuGetParameters(myContext);  will(returnValue(myNuGet));\r
-      allowing(myParametersFactory).loadInstallPackagesParameters(myContext, myNuGet);  will(returnValue(myParameters));\r
+      allowing(myParametersFactory).loadInstallPackagesParameters(myContext, myNuGet);  will(returnValue(myInstall));\r
 \r
       allowing(myNuGet).getNuGetExeFile(); will(returnValue(getPathToNuGet()));\r
       allowing(myNuGet).getSolutionFile(); will(returnValue(sln));\r
       allowing(myNuGet).getNuGetPackageSources(); will(returnValue(sources));\r
-      allowing(myParameters).getExcludeVersion(); will(returnValue(excludeVersion));\r
+      allowing(myInstall).getExcludeVersion(); will(returnValue(excludeVersion));\r
+      allowing(myParametersFactory).loadUpdatePackagesParameters(myContext, myNuGet);  will(returnValue(update ? myUpdate : null));\r
     }});\r
 \r
     BuildProcess proc = new PackagesInstallerRunner(\r