import jetbrains.buildServer.nuget.agent.install.PackageUsages;\r
import jetbrains.buildServer.nuget.agent.install.PackagesInstallerRunner;\r
import jetbrains.buildServer.nuget.agent.install.impl.NuGetActionFactoryImpl;\r
+import jetbrains.buildServer.nuget.agent.install.impl.NuGetPackagesCollectorImpl;\r
+import jetbrains.buildServer.nuget.agent.install.impl.NuGetPackagesConfigParser;\r
+import jetbrains.buildServer.nuget.agent.install.impl.PackageUsagesImpl;\r
import jetbrains.buildServer.nuget.agent.parameters.NuGetParameters;\r
import jetbrains.buildServer.nuget.agent.parameters.PackagesInstallParameters;\r
import jetbrains.buildServer.nuget.agent.parameters.PackagesParametersFactory;\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.common.PackageInfo;\r
import jetbrains.buildServer.nuget.common.PackagesUpdateMode;\r
import jetbrains.buildServer.nuget.tests.util.BuildProcessTestCase;\r
import jetbrains.buildServer.util.ArchiveUtil;\r
-import junit.framework.Assert;\r
import org.jetbrains.annotations.NotNull;\r
+import org.jetbrains.annotations.Nullable;\r
import org.jmock.Expectations;\r
import org.jmock.Mockery;\r
+import org.testng.Assert;\r
import org.testng.annotations.BeforeMethod;\r
import org.testng.annotations.Test;\r
\r
import java.io.File;\r
-import java.util.Arrays;\r
-import java.util.Collection;\r
-import java.util.Collections;\r
-import java.util.List;\r
+import java.util.*;\r
\r
/**\r
* Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
myNuGet = m.mock(NuGetParameters.class);\r
\r
m.checking(new Expectations() {{\r
- allowing(myContext).getBuild(); will(returnValue(myBuild));\r
- allowing(myBuild).getBuildLogger(); will(returnValue(myLogger));\r
- allowing(myBuild).getCheckoutDirectory(); will(returnValue(myRoot));\r
+ allowing(myContext).getBuild();\r
+ will(returnValue(myBuild));\r
+ allowing(myBuild).getBuildLogger();\r
+ will(returnValue(myLogger));\r
+ allowing(myBuild).getCheckoutDirectory();\r
+ will(returnValue(myRoot));\r
\r
allowing(myMockProcess).start();\r
- allowing(myMockProcess).waitFor(); will(returnValue(BuildFinishedStatus.FINISHED_SUCCESS));\r
+ allowing(myMockProcess).waitFor();\r
+ will(returnValue(BuildFinishedStatus.FINISHED_SUCCESS));\r
\r
allowing(myLogger).message(with(any(String.class)));\r
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(myInstall).getNuGetParameters(); will(returnValue(myNuGet));\r
- allowing(myUpdate).getNuGetParameters(); will(returnValue(myNuGet));\r
+ allowing(myInstall).getNuGetParameters();\r
+ will(returnValue(myNuGet));\r
+ allowing(myUpdate).getNuGetParameters();\r
+ will(returnValue(myNuGet));\r
}});\r
}\r
\r
public void test_01_online_sources() throws RunBuildException {\r
ArchiveUtil.unpackZip(getTestDataPath(), "", myRoot);\r
\r
- fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, false);\r
+ fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, false,\r
+ Arrays.asList(\r
+ new PackageInfo("Machine.Specifications", "0.4.13.0"),\r
+ new PackageInfo("NUnit", "2.5.7.10213"),\r
+ new PackageInfo("Ninject", "2.2.1.4"))\r
+ );\r
\r
List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
System.out.println("installed packageses = " + packageses);\r
}\r
\r
@Test\r
- public void test_01_online_sources_update() throws RunBuildException {\r
+ public void test_01_online_sources_update_forConfig() throws RunBuildException {\r
ArchiveUtil.unpackZip(getTestDataPath(), "", myRoot);\r
\r
- m.checking(new Expectations(){{\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).getUpdateMode(); will(returnValue(PackagesUpdateMode.FOR_EACH_PACKAGES_CONFIG));\r
}});\r
\r
- fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, true);\r
+ fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, true, null);\r
\r
\r
List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
public void test_01_online_sources_update_forSln() throws RunBuildException {\r
ArchiveUtil.unpackZip(getTestDataPath(), "", myRoot);\r
\r
- m.checking(new Expectations(){{\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
- allowing(myUpdate).getUpdateMode(); will(returnValue(PackagesUpdateMode.FOR_SLN));\r
+ allowing(myUpdate).getUseSafeUpdate();\r
+ will(returnValue(false));\r
+ allowing(myUpdate).getPackagesToUpdate();\r
+ will(returnValue(Collections.<String>emptyList()));\r
+ allowing(myUpdate).getUpdateMode();\r
+ will(returnValue(PackagesUpdateMode.FOR_SLN));\r
}});\r
\r
- fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, true);\r
+ fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, true, null);\r
\r
\r
List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
public void test_01_online_sources_update_safe() throws RunBuildException {\r
ArchiveUtil.unpackZip(getTestDataPath(), "", myRoot);\r
\r
- m.checking(new Expectations(){{\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
- allowing(myUpdate).getUpdateMode(); will(returnValue(PackagesUpdateMode.FOR_EACH_PACKAGES_CONFIG));\r
+ allowing(myUpdate).getUseSafeUpdate();\r
+ will(returnValue(true));\r
+ allowing(myUpdate).getPackagesToUpdate();\r
+ will(returnValue(Collections.<String>emptyList()));\r
+ allowing(myUpdate).getUpdateMode();\r
+ will(returnValue(PackagesUpdateMode.FOR_EACH_PACKAGES_CONFIG));\r
}});\r
\r
- fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, true);\r
+ fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), false, true, null);\r
\r
\r
List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
public void test_01_online_sources_ecludeVersion() throws RunBuildException {\r
ArchiveUtil.unpackZip(getTestDataPath(), "", myRoot);\r
\r
- fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), true, false);\r
+ fetchPackages(new File(myRoot, "sln1-lib.sln"), Collections.<String>emptyList(), true, false,\r
+ Arrays.asList(\r
+ new PackageInfo("Machine.Specifications", "0.4.13.0"),\r
+ new PackageInfo("NUnit", "2.5.7.10213"),\r
+ new PackageInfo("Ninject", "2.2.1.4")));\r
\r
List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
System.out.println("installed packageses = " + packageses);\r
File sourcesDir = new File(myRoot, "js");\r
ArchiveUtil.unpackZip(Paths.getTestDataPath("test-01-sources.zip"), "", sourcesDir);\r
\r
- fetchPackages(new File(myRoot, "sln1-lib.sln"), Arrays.asList("file:///" + sourcesDir.getPath()), false, false);\r
+ fetchPackages(new File(myRoot, "sln1-lib.sln"), Arrays.asList("file:///" + sourcesDir.getPath()), false, false, null);\r
\r
List<File> packageses = Arrays.asList(new File(myRoot, "packages").listFiles());\r
System.out.println("installed packageses = " + packageses);\r
private void fetchPackages(final File sln,\r
final List<String> sources,\r
final boolean excludeVersion,\r
- final boolean update) throws RunBuildException {\r
- final PackageUsages pu = m.mock(PackageUsages.class);\r
- final BuildProcess pup = m.mock(BuildProcess.class, "report usages");\r
+ final boolean update,\r
+ @Nullable Collection<PackageInfo> detectedPackages) throws RunBuildException {\r
+\r
m.checking(new Expectations() {{\r
- allowing(myParametersFactory).loadNuGetParameters(myContext); will(returnValue(myNuGet));\r
- allowing(myParametersFactory).loadInstallPackagesParameters(myContext, myNuGet); will(returnValue(myInstall));\r
+ allowing(myParametersFactory).loadNuGetParameters(myContext);\r
+ will(returnValue(myNuGet));\r
+ allowing(myParametersFactory).loadInstallPackagesParameters(myContext, myNuGet);\r
+ will(returnValue(myInstall));\r
\r
allowing(myNuGet).getNuGetExeFile();\r
will(returnValue(Paths.getPathToNuGet()));\r
- allowing(myNuGet).getSolutionFile(); will(returnValue(sln));\r
- allowing(myNuGet).getNuGetPackageSources(); will(returnValue(sources));\r
- allowing(myInstall).getExcludeVersion(); will(returnValue(excludeVersion));\r
- allowing(myParametersFactory).loadUpdatePackagesParameters(myContext, myNuGet); will(returnValue(update ? myUpdate : null));\r
-\r
- allowing(pu).createReport(with(any(File.class)));\r
- will(returnValue(pup));\r
-\r
- allowing(pup).start();\r
- allowing(pup).waitFor(); will(returnValue(BuildFinishedStatus.FINISHED_SUCCESS));\r
+ allowing(myNuGet).getSolutionFile();\r
+ will(returnValue(sln));\r
+ allowing(myNuGet).getNuGetPackageSources();\r
+ will(returnValue(sources));\r
+ allowing(myInstall).getExcludeVersion();\r
+ will(returnValue(excludeVersion));\r
+ allowing(myParametersFactory).loadUpdatePackagesParameters(myContext, myNuGet);\r
+ will(returnValue(update ? myUpdate : null));\r
}});\r
\r
+ NuGetPackagesCollectorImpl collector = new NuGetPackagesCollectorImpl();\r
+ PackageUsages pu = new PackageUsagesImpl(\r
+ collector,\r
+ new NuGetPackagesConfigParser()\r
+ );\r
+\r
BuildProcess proc = new PackagesInstallerRunner(\r
new NuGetActionFactoryImpl(executingFactory(), pu),\r
myParametersFactory\r
\r
assertRunSuccessfully(proc, BuildFinishedStatus.FINISHED_SUCCESS);\r
\r
+ System.out.println(collector.getPackages());\r
+ if (detectedPackages != null) {\r
+ Assert.assertEquals(\r
+ new TreeSet<PackageInfo>(collector.getPackages().getPackages()),\r
+ new TreeSet<PackageInfo>(detectedPackages));\r
+ }\r
+\r
m.assertIsSatisfied();\r
}\r
\r