2131a6abb4e744240eae9f547f249f8dd41e7950
[teamcity/dotNetPackagesSupport.git] / nuget-tests / src / jetbrains / buildServer / nuget / tests / agent / NuGetUpdatePackageActionFactoryTest.java
1 /*\r
2  * Copyright 2000-2011 JetBrains s.r.o.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  * http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 \r
17 package jetbrains.buildServer.nuget.tests.agent;\r
18 \r
19 import jetbrains.buildServer.BaseTestCase;\r
20 import jetbrains.buildServer.RunBuildException;\r
21 import jetbrains.buildServer.agent.BuildRunnerContext;\r
22 import jetbrains.buildServer.nuget.agent.install.PackageUsages;\r
23 import jetbrains.buildServer.nuget.agent.parameters.NuGetParameters;\r
24 import jetbrains.buildServer.nuget.agent.parameters.PackagesUpdateParameters;\r
25 import jetbrains.buildServer.nuget.agent.install.impl.NuGetActionFactoryImpl;\r
26 import jetbrains.buildServer.nuget.agent.util.CommandlineBuildProcessFactory;\r
27 import org.jmock.Expectations;\r
28 import org.jmock.Mockery;\r
29 import org.testng.annotations.BeforeMethod;\r
30 import org.testng.annotations.Test;\r
31 \r
32 import java.io.File;\r
33 import java.io.IOException;\r
34 import java.util.Arrays;\r
35 import java.util.Collections;\r
36 \r
37 /**\r
38  * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
39  * Date: 10.07.11 14:29\r
40  */\r
41 public class NuGetUpdatePackageActionFactoryTest extends BaseTestCase {\r
42   private Mockery m;\r
43   private CommandlineBuildProcessFactory myProcessFactory;\r
44   private NuGetActionFactoryImpl i;\r
45   private BuildRunnerContext ctx;\r
46   private NuGetParameters nugetParams;\r
47   private PackagesUpdateParameters ps;\r
48   private File myTarget;\r
49   private File myConfig;\r
50 \r
51   @BeforeMethod\r
52   @Override\r
53   protected void setUp() throws Exception {\r
54     super.setUp();\r
55     m = new Mockery();\r
56     myProcessFactory = m.mock(CommandlineBuildProcessFactory.class);\r
57     PackageUsages pu = m.mock(PackageUsages.class);\r
58     i = new NuGetActionFactoryImpl(myProcessFactory, pu);\r
59     ctx = m.mock(BuildRunnerContext.class);\r
60     ps = m.mock(PackagesUpdateParameters.class);\r
61     nugetParams = m.mock(NuGetParameters.class);\r
62 \r
63     myTarget = createTempDir();\r
64     myConfig = createTempFile();\r
65     m.checking(new Expectations(){{\r
66       allowing(ps).getNuGetParameters(); will(returnValue(nugetParams));\r
67     }});\r
68   }\r
69 \r
70   @Test\r
71   public void test_no_sources() throws RunBuildException, IOException {\r
72     final File nuget = createTempFile();\r
73     m.checking(new Expectations(){{\r
74       allowing(nugetParams).getNuGetPackageSources(); will(returnValue(Collections.<String>emptyList()));\r
75       allowing(nugetParams).getNuGetExeFile();  will(returnValue(nuget));\r
76       allowing(ps).getUseSafeUpdate(); will(returnValue(false));\r
77       allowing(ps).getPackagesToUpdate(); will(returnValue(Collections.<String>emptyList()));\r
78 \r
79       oneOf(myProcessFactory).executeCommandLine(\r
80               ctx,\r
81               nuget,\r
82               Arrays.asList("update", myConfig.getPath(), "-Verbose", "-RepositoryPath", myTarget.getPath()),\r
83               myConfig.getParentFile()\r
84       );\r
85     }});\r
86 \r
87     i.createUpdate(ctx, ps, myConfig, myTarget);\r
88     m.assertIsSatisfied();\r
89   }\r
90 \r
91   @Test\r
92   public void test_packageIds() throws RunBuildException, IOException {\r
93     final File nuget = createTempFile();\r
94     m.checking(new Expectations(){{\r
95       allowing(nugetParams).getNuGetPackageSources(); will(returnValue(Collections.<String>emptyList()));\r
96       allowing(nugetParams).getNuGetExeFile();  will(returnValue(nuget));\r
97       allowing(ps).getUseSafeUpdate(); will(returnValue(false));\r
98       allowing(ps).getPackagesToUpdate(); will(returnValue(Arrays.asList("aaa", "bbb")));\r
99 \r
100       oneOf(myProcessFactory).executeCommandLine(\r
101               ctx,\r
102               nuget,\r
103               Arrays.asList("update", myConfig.getPath(), "-Verbose", "-RepositoryPath", myTarget.getPath(), "-Id", "aaa", "-Id", "bbb"),\r
104               myConfig.getParentFile()\r
105       );\r
106     }});\r
107 \r
108     i.createUpdate(ctx, ps, myConfig, myTarget);\r
109     m.assertIsSatisfied();\r
110   }\r
111 \r
112   @Test\r
113   public void test_safe() throws RunBuildException, IOException {\r
114     final File nuget = createTempFile();\r
115     m.checking(new Expectations(){{\r
116       allowing(nugetParams).getNuGetPackageSources(); will(returnValue(Collections.<String>emptyList()));\r
117       allowing(nugetParams).getNuGetExeFile();  will(returnValue(nuget));\r
118       allowing(ps).getUseSafeUpdate(); will(returnValue(true));\r
119       allowing(ps).getPackagesToUpdate(); will(returnValue(Collections.<String>emptyList()));\r
120 \r
121       oneOf(myProcessFactory).executeCommandLine(\r
122               ctx,\r
123               nuget,\r
124               Arrays.asList("update", myConfig.getPath(), "-Safe", "-Verbose", "-RepositoryPath", myTarget.getPath()),\r
125               myConfig.getParentFile()\r
126       );\r
127     }});\r
128 \r
129     i.createUpdate(ctx, ps, myConfig, myTarget);\r
130     m.assertIsSatisfied();\r
131   }\r
132 \r
133   @Test\r
134   public void test_sources() throws RunBuildException, IOException {\r
135     final File nuget = createTempFile();\r
136     m.checking(new Expectations(){{\r
137       allowing(NuGetUpdatePackageActionFactoryTest.this.nugetParams).getNuGetPackageSources(); will(returnValue(Arrays.asList("aaa", "bbb")));\r
138       allowing(NuGetUpdatePackageActionFactoryTest.this.nugetParams).getNuGetExeFile();  will(returnValue(nuget));\r
139       allowing(ps).getUseSafeUpdate(); will(returnValue(false));\r
140       allowing(ps).getPackagesToUpdate(); will(returnValue(Collections.<String>emptyList()));\r
141 \r
142       oneOf(myProcessFactory).executeCommandLine(\r
143               ctx,\r
144               nuget,\r
145               Arrays.asList("update", myConfig.getPath(), "-Verbose", "-RepositoryPath", myTarget.getPath(), "-Source", "aaa", "-Source", "bbb"),\r
146               myConfig.getParentFile()\r
147       );\r
148     }});\r
149 \r
150     i.createUpdate(ctx, ps, myConfig, myTarget);\r
151     m.assertIsSatisfied();\r
152   }\r
153 \r
154 \r
155 }\r