2 * Copyright 2000-2011 JetBrains s.r.o.
\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
8 * http://www.apache.org/licenses/LICENSE-2.0
\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
17 package jetbrains.buildServer.nuget.tests.agent;
\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
31 import java.io.File;
\r
32 import java.util.ArrayList;
\r
33 import java.util.List;
\r
36 * Created by Eugene Petrenko (eugene.petrenko@gmail.com)
\r
37 * Date: 21.07.11 20:38
\r
39 public class MatchFilesBuildProcessTest extends BuildProcessTestCase {
\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
48 private List<String> files;
\r
52 protected void setUp() throws Exception {
\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
62 match = new MatchFilesBuildProcess(ctx, params, cb);
\r
63 root = createTempDir();
\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
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
77 files.add("aaa.txt");
\r
78 assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);
\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
87 files.add("**/*.txt");
\r
88 assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);
\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
97 files.add(FileUtil.getCanonicalFile(dest).getPath());
\r
98 assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);
\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
107 files.add(FileUtil.getCanonicalFile(dest).getPath());
\r
108 assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);
\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
116 assertRunException(match, "fick");
\r