--- /dev/null
+/*\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;\r
+\r
+/**\r
+ * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
+ * Date: 22.07.11 1:17\r
+ */\r
+public class Strings {\r
+ private static String createExoticString() {\r
+ try {\r
+ StringBuilder sb = new StringBuilder();\r
+ for (char i = Character.MIN_VALUE; i < Character.MAX_VALUE; i++) {\r
+ try {\r
+ sb.append(Character.valueOf(i));\r
+ } catch (Throwable t) {\r
+ // NOP\r
+ }\r
+ }\r
+ return sb.toString();\r
+ } catch (Throwable t) {\r
+ return "failed to create exitic string. !@#$%^&*()}{POITREWQASDFGHJKL:\"|?><MNBVCXZ`1234567890-\\/\';][/*-\t\n\r\0\1";\r
+ }\r
+ }\r
+\r
+ public static final String EXOTIC = createExoticString();\r
+}\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.Strings;\r
import jetbrains.buildServer.nuget.tests.util.BuildProcessTestCase;\r
import jetbrains.buildServer.util.FileUtil;\r
import org.jmock.Expectations;\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
+ m.checking(new Expectations() {{\r
+ allowing(params).getFiles();\r
+ will(returnValue(files));\r
+ allowing(ctx).getBuild();\r
+ will(returnValue(build));\r
+ allowing(build).getCheckoutDirectory();\r
+ will(returnValue(root));\r
}});\r
}\r
\r
final File dest = new File(root, "aaa.txt");\r
FileUtil.writeFile(dest, "some content");\r
\r
- m.checking(new Expectations(){{\r
+ m.checking(new Expectations() {{\r
oneOf(cb).fileFound(dest);\r
}});\r
\r
m.assertIsSatisfied();\r
}\r
\r
+ @Test\r
+ public void test_match_relative_file_worng_symbols() throws RunBuildException {\r
+ final File dest = new File(root, "aaa.txt");\r
+ FileUtil.writeFile(dest, "some content");\r
+\r
+ m.checking(new Expectations() {{\r
+ oneOf(cb).fileFound(dest);\r
+ }});\r
+\r
+ files.add("aaa.txt");\r
+ files.add(Strings.EXOTIC);\r
+ assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
+\r
+ m.assertIsSatisfied();\r
+ }\r
+\r
@Test\r
public void test_match_relative_file_wildcard() throws RunBuildException {\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
- m.checking(new Expectations(){{\r
+ m.checking(new Expectations() {{\r
oneOf(cb).fileFound(dest);\r
}});\r
\r
m.assertIsSatisfied();\r
}\r
\r
+ @Test\r
+ public void test_match_relative_file_wildcard3() throws RunBuildException {\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
+ final File dest2 = new File(root, "q/v/i/k/abbb.txt");\r
+ FileUtil.createParentDirs(dest2);\r
+ FileUtil.writeFile(dest2, "some content");\r
+\r
+ m.checking(new Expectations() {{\r
+ oneOf(cb).fileFound(dest);\r
+ oneOf(cb).fileFound(dest2);\r
+ }});\r
+\r
+ files.add("**/*a.txt");\r
+ files.add("**/*b.txt");\r
+ assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
+\r
+ m.assertIsSatisfied();\r
+ }\r
+\r
+ @Test\r
+ public void test_match_relative_file_wildcard2() throws RunBuildException {\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
+ final File dest2 = new File(root, "q/e/p/t/aaa.txt");\r
+ FileUtil.createParentDirs(dest2);\r
+ FileUtil.writeFile(dest2, "some content");\r
+\r
+ final File dest3 = new File(root, "q/e/p/z/bbb.txt");\r
+ FileUtil.createParentDirs(dest3);\r
+ FileUtil.writeFile(dest3, "some content");\r
+\r
+ m.checking(new Expectations() {{\r
+ oneOf(cb).fileFound(dest);\r
+ oneOf(cb).fileFound(dest2);\r
+ }});\r
+\r
+ files.add("**/a*.txt");\r
+ assertRunSuccessfully(match, BuildFinishedStatus.FINISHED_SUCCESS);\r
+\r
+ m.assertIsSatisfied();\r
+ }\r
+\r
\r
@Test\r
public void test_match_fullPath_file() throws RunBuildException {\r
final File dest = new File(root, "aaa.txt");\r
FileUtil.writeFile(dest, "some content");\r
\r
- m.checking(new Expectations(){{\r
+ m.checking(new Expectations() {{\r
oneOf(cb).fileFound(dest);\r
}});\r
\r
FileUtil.createParentDirs(dest);\r
FileUtil.writeFile(dest, "some content");\r
\r
- m.checking(new Expectations(){{\r
+ m.checking(new Expectations() {{\r
oneOf(cb).fileFound(dest);\r
}});\r
\r