add Publish runner test
authorEugene Petrenko <eugene.petrenko@gmail.com>
Thu, 21 Jul 2011 16:49:22 +0000 (20:49 +0400)
committerEugene Petrenko <eugene.petrenko@gmail.com>
Thu, 21 Jul 2011 16:49:22 +0000 (20:49 +0400)
nuget-agent/src/jetbrains/buildServer/nuget/agent/publish/MatchFilesBuildProcess.java
nuget-tests/src/jetbrains/buildServer/nuget/tests/agent/MatchFilesBuildProcessTest.java [new file with mode: 0644]
nuget-tests/src/testng-nuget-tests..xml

index 4598f0a92ee874be0e7d33c589c11267d30cf0e9..4bc1adc35e20e4bb856ded31507af5bc93520fcd 100644 (file)
@@ -64,7 +64,7 @@ public class MatchFilesBuildProcess extends BuildProcessBase {
       final File root = myContext.getBuild().getCheckoutDirectory();\r
       final File[] result = finder.findFiles(root);\r
       if (result.length == 0) {\r
-        throw new RunBuildException("Failed to find files to push mathing: " + files + " under " + root + ". No packages to publish. ");\r
+        throw new RunBuildException("Failed to find files to publish matching: " + files + " under " + root + ". No packages to publish. ");\r
       }\r
 \r
       for (File file : result) {\r
@@ -72,7 +72,7 @@ public class MatchFilesBuildProcess extends BuildProcessBase {
         myCallback.fileFound(file);\r
       }\r
     } catch (IOException e) {\r
-      throw new RunBuildException("Failed to find packages to push. " + e.getMessage(), e);\r
+      throw new RunBuildException("Failed to find packages to publish. " + e.getMessage(), e);\r
     }\r
 \r
     return BuildFinishedStatus.FINISHED_SUCCESS;\r
diff --git a/nuget-tests/src/jetbrains/buildServer/nuget/tests/agent/MatchFilesBuildProcessTest.java b/nuget-tests/src/jetbrains/buildServer/nuget/tests/agent/MatchFilesBuildProcessTest.java
new file mode 100644 (file)
index 0000000..c17e2ee
--- /dev/null
@@ -0,0 +1,118 @@
+/*\r
+ * Copyright 2000-2011 JetBrains s.r.o.\r
+ *\r
+ * Licensed under the Apache License, Version 2.0 (the "License");\r
+ * you may not use this file except in compliance with the License.\r
+ * You may obtain a copy of the License at\r
+ *\r
+ * http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ * Unless required by applicable law or agreed to in writing, software\r
+ * distributed under the License is distributed on an "AS IS" BASIS,\r
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ * See the License for the specific language governing permissions and\r
+ * limitations under the License.\r
+ */\r
+\r
+package jetbrains.buildServer.nuget.tests.agent;\r
+\r
+import jetbrains.buildServer.agent.AgentRunningBuild;\r
+import jetbrains.buildServer.agent.BuildFinishedStatus;\r
+import jetbrains.buildServer.agent.BuildRunnerContext;\r
+import jetbrains.buildServer.nuget.agent.parameters.NuGetPublishParameters;\r
+import jetbrains.buildServer.nuget.agent.publish.MatchFilesBuildProcess;\r
+import jetbrains.buildServer.nuget.tests.util.BuildProcessTestCase;\r
+import jetbrains.buildServer.util.FileUtil;\r
+import org.jmock.Expectations;\r
+import org.jmock.Mockery;\r
+import org.testng.annotations.BeforeMethod;\r
+import org.testng.annotations.Test;\r
+\r
+import java.io.File;\r
+import java.util.ArrayList;\r
+import java.util.List;\r
+\r
+/**\r
+ * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
+ * Date: 21.07.11 20:38\r
+ */\r
+public class MatchFilesBuildProcessTest extends BuildProcessTestCase {\r
+  private Mockery m;\r
+\r
+  private MatchFilesBuildProcess match;\r
+  private AgentRunningBuild build;\r
+  private BuildRunnerContext ctx;\r
+  private NuGetPublishParameters params;\r
+  private MatchFilesBuildProcess.Callback cb;\r
+  private File root;\r
+  private List<String> files;\r
+\r
+  @BeforeMethod\r
+  @Override\r
+  protected void setUp() throws Exception {\r
+    super.setUp();\r
+\r
+    m = new Mockery();\r
+    files = new ArrayList<String>();\r
+    build = m.mock(AgentRunningBuild.class);\r
+    ctx = m.mock(BuildRunnerContext.class);\r
+    params = m.mock(NuGetPublishParameters.class);\r
+    cb = m.mock(MatchFilesBuildProcess.Callback.class);\r
+\r
+    match = new MatchFilesBuildProcess(ctx, params, cb);\r
+    root = createTempDir();\r
+\r
+    m.checking(new Expectations(){{\r
+      allowing(params).getFiles(); will(returnValue(files));\r
+      allowing(ctx).getBuild(); will(returnValue(build));\r
+      allowing(build).getCheckoutDirectory(); will(returnValue(root));\r
+    }});\r
+  }\r
+\r
+  @Test\r
+  public void test_match_relative_file() {\r
+    final File dest = new File(root, "aaa.txt");\r
+    FileUtil.writeFile(dest, "some content");\r
+\r
+    files.add("aaa.txt");\r
+    assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
+  }\r
+\r
+  @Test\r
+  public void test_match_relative_file_wildcard() {\r
+    final File dest = new File(root, "q/e/r/t/aaa.txt");\r
+    FileUtil.createParentDirs(dest);\r
+    FileUtil.writeFile(dest, "some content");\r
+\r
+    files.add("**/*.txt");\r
+    assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
+  }\r
+\r
+\r
+  @Test\r
+  public void test_match_fullPath_file() {\r
+    final File dest = new File(root, "aaa.txt");\r
+    FileUtil.writeFile(dest, "some content");\r
+\r
+    files.add(FileUtil.getCanonicalFile(dest).getPath());\r
+    assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
+  }\r
+\r
+  @Test\r
+  public void test_match_fullPath_file2() {\r
+    final File dest = new File(root, "a/b/c/aaa.txt");\r
+    FileUtil.createParentDirs(dest);\r
+    FileUtil.writeFile(dest, "some content");\r
+\r
+    files.add(FileUtil.getCanonicalFile(dest).getPath());\r
+    assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
+  }\r
+\r
+  @Test\r
+  public void test_match_no_files() {\r
+    final File dest = new File(root, "aaa.txt");\r
+    FileUtil.writeFile(dest, "some content");\r
+\r
+    assertRunException(match, "fick");\r
+  }\r
+}\r
index 887ba7785bbafc3496ca68994c2fb7a855a0ace1..b66d774f2a490c84af84712b6361161e4ae65973 100644 (file)
@@ -24,6 +24,8 @@
 \r
       <class name="jetbrains.buildServer.nuget.tests.server.ThreadedBuildTriggerPolicyTest"/>\r
       <class name="jetbrains.buildServer.nuget.tests.server.NamedPackagesUpdateCheckerTest"/>\r
+\r
+      <class name="jetbrains.buildServer.nuget.tests.agent.MatchFilesBuildProcessTest"/>\r
     </classes>\r
   </test>\r
 \r