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.integration;
\r
19 import jetbrains.buildServer.BaseTestCase;
\r
20 import jetbrains.buildServer.nuget.server.feed.reader.FeedConstants;
\r
21 import jetbrains.buildServer.nuget.server.feed.reader.FeedPackage;
\r
22 import jetbrains.buildServer.nuget.server.feed.reader.NuGetFeedReader;
\r
23 import jetbrains.buildServer.nuget.server.feed.reader.impl.*;
\r
24 import jetbrains.buildServer.util.FileUtil;
\r
25 import org.testng.Assert;
\r
26 import org.testng.annotations.AfterMethod;
\r
27 import org.testng.annotations.BeforeMethod;
\r
28 import org.testng.annotations.Test;
\r
30 import java.io.BufferedInputStream;
\r
31 import java.io.File;
\r
32 import java.io.FileInputStream;
\r
33 import java.io.IOException;
\r
34 import java.util.Collection;
\r
35 import java.util.zip.ZipEntry;
\r
36 import java.util.zip.ZipInputStream;
\r
39 * Created by Eugene Petrenko (eugene.petrenko@gmail.com)
\r
40 * Date: 11.08.11 16:04
\r
42 public class FeedReaderTest extends BaseTestCase {
\r
43 private NuGetFeedReader myReader;
\r
44 private FeedClient myClient;
\r
48 protected void setUp() throws Exception {
\r
50 myClient = new FeedClient();
\r
51 final FeedGetMethodFactory methods = new FeedGetMethodFactory();
\r
52 myReader = new NuGetFeedReaderImpl(myClient, new UrlResolver(myClient, methods), methods, new PackagesFeedParser());
\r
57 protected void tearDown() throws Exception {
\r
63 public void testRead() throws IOException {
\r
64 final Collection<FeedPackage> feedPackages = myReader.queryPackageVersions(FeedConstants.FEED_URL, "NuGet.CommandLine");
\r
65 Assert.assertTrue(feedPackages.size() > 0);
\r
67 boolean hasLatest = false;
\r
68 for (FeedPackage feedPackage : feedPackages) {
\r
69 Assert.assertFalse(hasLatest && feedPackage.isLatestVersion(), "There could be only one latest");
\r
70 hasLatest |= feedPackage.isLatestVersion();
\r
71 System.out.println("feedPackage = " + feedPackage);
\r
76 public void testDownloadLatest() throws IOException {
\r
77 final Collection<FeedPackage> packages = myReader.queryPackageVersions(FeedConstants.FEED_URL, "NuGet.CommandLine");
\r
78 FeedPackage latest = null;
\r
79 for (FeedPackage aPackage : packages) {
\r
80 if (aPackage.isLatestVersion()) {
\r
84 Assert.assertNotNull(latest, "there should be the latest package");
\r
86 final File pkd = createTempFile();
\r
87 myReader.downloadPackage(latest, pkd);
\r
89 Assert.assertTrue(pkd.length() > 100);
\r
90 boolean hasNuGetExe = false;
\r
91 ZipInputStream zip = new ZipInputStream(new BufferedInputStream(new FileInputStream(pkd)));
\r
93 for (ZipEntry ze = zip.getNextEntry(); ze != null; ze = zip.getNextEntry()) {
\r
94 String name = ze.getName();
\r
95 System.out.println("ze = " + name);
\r
96 name = name.toLowerCase();
\r
97 hasNuGetExe |= name.endsWith("/NuGet.exe".toLowerCase());
\r
98 hasNuGetExe |= name.endsWith("\\NuGet.exe".toLowerCase());
\r
101 FileUtil.close(zip);
\r
104 Assert.assertTrue(hasNuGetExe, "package should contain nuget.exe");
\r