some tests on the logins of nuget packages
authorEugene Petrenko <eugene.petrenko@gmail.com>
Mon, 15 Aug 2011 21:59:01 +0000 (01:59 +0400)
committerEugene Petrenko <eugene.petrenko@gmail.com>
Mon, 15 Aug 2011 21:59:01 +0000 (01:59 +0400)
nuget-tests/src/jetbrains/buildServer/nuget/tests/server/tools/ToolPackerTest.java [new file with mode: 0644]
nuget-tests/src/testng-nuget-fast.xml

diff --git a/nuget-tests/src/jetbrains/buildServer/nuget/tests/server/tools/ToolPackerTest.java b/nuget-tests/src/jetbrains/buildServer/nuget/tests/server/tools/ToolPackerTest.java
new file mode 100644 (file)
index 0000000..d84f397
--- /dev/null
@@ -0,0 +1,95 @@
+/*\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.server.tools;\r
+\r
+import jetbrains.buildServer.BaseTestCase;\r
+import jetbrains.buildServer.nuget.server.toolRegistry.impl.ToolPacker;\r
+import jetbrains.buildServer.util.FileUtil;\r
+import org.jetbrains.annotations.NotNull;\r
+import org.testng.Assert;\r
+import org.testng.annotations.BeforeMethod;\r
+import org.testng.annotations.Test;\r
+\r
+import java.io.*;\r
+import java.util.Arrays;\r
+import java.util.Set;\r
+import java.util.TreeSet;\r
+import java.util.zip.ZipEntry;\r
+import java.util.zip.ZipInputStream;\r
+\r
+/**\r
+ * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
+ * Date: 16.08.11 1:50\r
+ */\r
+public class ToolPackerTest extends BaseTestCase {\r
+  private ToolPacker myPacker;\r
+\r
+  @BeforeMethod\r
+  @Override\r
+  protected void setUp() throws Exception {\r
+    super.setUp();\r
+    myPacker = new ToolPacker();\r
+  }\r
+\r
+  @Test\r
+  public void testPack() throws IOException {\r
+    final String toolId = "3.4.56.3";\r
+    final File root = createTempDir();\r
+    final File plugin = myPacker.packTool(toolId, root);\r
+\r
+    assertZip(plugin, "teamcity-plugin.xml");\r
+  }\r
+\r
+  @Test\r
+  public void testPack_oneFile() throws IOException {\r
+    final String toolId = "3.4.56.3";\r
+    final File root = createTempDir();\r
+    FileUtil.writeFile(new File(root, "aaa.txt"), "content");\r
+    final File plugin = myPacker.packTool(toolId, root);\r
+\r
+    assertZip(plugin, "teamcity-plugin.xml", "aaa.txt");\r
+  }\r
+\r
+  @Test\r
+  public void testPack_oneFile2() throws IOException {\r
+    final String toolId = "3.4.56.3";\r
+    final File root = createTempDir();\r
+    FileUtil.writeFile(new File(root, "a/b/c/d/aaa.txt"){{getParentFile().mkdirs();}}, "content");\r
+    final File plugin = myPacker.packTool(toolId, root);\r
+\r
+    assertZip(plugin, "teamcity-plugin.xml", "a/b/c/d/aaa.txt");\r
+  }\r
+\r
+  private void assertZip(@NotNull final File zip, @NotNull String... paths) throws IOException {\r
+    Set<String> pathsToContain = new TreeSet<String>(Arrays.asList(paths));\r
+    Set<String> actualPaths = new TreeSet<String>();\r
+    ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(zip)));\r
+    try {\r
+      ZipEntry e;\r
+      while((e = zis.getNextEntry()) != null) {\r
+        pathsToContain.remove(e.getName());\r
+        actualPaths.add(e.getName());\r
+      }\r
+    } finally {\r
+      FileUtil.close(zis);\r
+    }\r
+\r
+    Assert.assertTrue(pathsToContain.isEmpty(), "Should contain: " + pathsToContain + ", but was: " + actualPaths);\r
+  }\r
+\r
+\r
+}\r
index 1a0b53fd539a8f25d80e71a9cbc4b6182f0d5eb9..d915c12afe8c977c9e5ebfdb127e12b7563c45e4 100644 (file)
@@ -28,6 +28,8 @@
 \r
       <class name="jetbrains.buildServer.nuget.tests.server.feed.reader.FeedPackagesParserTest"/>\r
       <class name="jetbrains.buildServer.nuget.tests.server.feed.reader.FeedGetMethodFactoryTest"/>\r
+\r
+      <class name="jetbrains.buildServer.nuget.tests.server.tools.ToolPackerTest"/>\r
     </classes>\r
   </test>\r
 </suite>\r