add Publish runner test
[teamcity/dotNetPackagesSupport.git] / nuget-tests / src / jetbrains / buildServer / nuget / tests / agent / MatchFilesBuildProcessTest.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.agent.AgentRunningBuild;\r
20 import jetbrains.buildServer.agent.BuildFinishedStatus;\r
21 import jetbrains.buildServer.agent.BuildRunnerContext;\r
22 import jetbrains.buildServer.nuget.agent.parameters.NuGetPublishParameters;\r
23 import jetbrains.buildServer.nuget.agent.publish.MatchFilesBuildProcess;\r
24 import jetbrains.buildServer.nuget.tests.util.BuildProcessTestCase;\r
25 import jetbrains.buildServer.util.FileUtil;\r
26 import org.jmock.Expectations;\r
27 import org.jmock.Mockery;\r
28 import org.testng.annotations.BeforeMethod;\r
29 import org.testng.annotations.Test;\r
30 \r
31 import java.io.File;\r
32 import java.util.ArrayList;\r
33 import java.util.List;\r
34 \r
35 /**\r
36  * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
37  * Date: 21.07.11 20:38\r
38  */\r
39 public class MatchFilesBuildProcessTest extends BuildProcessTestCase {\r
40   private Mockery m;\r
41 \r
42   private MatchFilesBuildProcess match;\r
43   private AgentRunningBuild build;\r
44   private BuildRunnerContext ctx;\r
45   private NuGetPublishParameters params;\r
46   private MatchFilesBuildProcess.Callback cb;\r
47   private File root;\r
48   private List<String> files;\r
49 \r
50   @BeforeMethod\r
51   @Override\r
52   protected void setUp() throws Exception {\r
53     super.setUp();\r
54 \r
55     m = new Mockery();\r
56     files = new ArrayList<String>();\r
57     build = m.mock(AgentRunningBuild.class);\r
58     ctx = m.mock(BuildRunnerContext.class);\r
59     params = m.mock(NuGetPublishParameters.class);\r
60     cb = m.mock(MatchFilesBuildProcess.Callback.class);\r
61 \r
62     match = new MatchFilesBuildProcess(ctx, params, cb);\r
63     root = createTempDir();\r
64 \r
65     m.checking(new Expectations(){{\r
66       allowing(params).getFiles(); will(returnValue(files));\r
67       allowing(ctx).getBuild(); will(returnValue(build));\r
68       allowing(build).getCheckoutDirectory(); will(returnValue(root));\r
69     }});\r
70   }\r
71 \r
72   @Test\r
73   public void test_match_relative_file() {\r
74     final File dest = new File(root, "aaa.txt");\r
75     FileUtil.writeFile(dest, "some content");\r
76 \r
77     files.add("aaa.txt");\r
78     assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
79   }\r
80 \r
81   @Test\r
82   public void test_match_relative_file_wildcard() {\r
83     final File dest = new File(root, "q/e/r/t/aaa.txt");\r
84     FileUtil.createParentDirs(dest);\r
85     FileUtil.writeFile(dest, "some content");\r
86 \r
87     files.add("**/*.txt");\r
88     assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
89   }\r
90 \r
91 \r
92   @Test\r
93   public void test_match_fullPath_file() {\r
94     final File dest = new File(root, "aaa.txt");\r
95     FileUtil.writeFile(dest, "some content");\r
96 \r
97     files.add(FileUtil.getCanonicalFile(dest).getPath());\r
98     assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
99   }\r
100 \r
101   @Test\r
102   public void test_match_fullPath_file2() {\r
103     final File dest = new File(root, "a/b/c/aaa.txt");\r
104     FileUtil.createParentDirs(dest);\r
105     FileUtil.writeFile(dest, "some content");\r
106 \r
107     files.add(FileUtil.getCanonicalFile(dest).getPath());\r
108     assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
109   }\r
110 \r
111   @Test\r
112   public void test_match_no_files() {\r
113     final File dest = new File(root, "aaa.txt");\r
114     FileUtil.writeFile(dest, "some content");\r
115 \r
116     assertRunException(match, "fick");\r
117   }\r
118 }\r