hide HttpClient interface
[teamcity/dotNetPackagesSupport.git] / nuget-tests / src / jetbrains / buildServer / nuget / tests / server / feed / reader / FeedPackagesParserTest.java
1 /*\r
2  * Copyright 2000-2011 JetBrains s.r.o.\r
3  *\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
7  *\r
8  * http://www.apache.org/licenses/LICENSE-2.0\r
9  *\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
15  */\r
16 \r
17 package jetbrains.buildServer.nuget.tests.server.feed.reader;\r
18 \r
19 import jetbrains.buildServer.BaseTestCase;\r
20 import jetbrains.buildServer.nuget.server.feed.reader.FeedPackage;\r
21 import jetbrains.buildServer.nuget.server.feed.reader.impl.PackagesFeedParser;\r
22 import jetbrains.buildServer.nuget.server.feed.reader.impl.PackagesFeedParserImpl;\r
23 import jetbrains.buildServer.nuget.tests.integration.Paths;\r
24 import jetbrains.buildServer.util.FileUtil;\r
25 import org.jdom.Element;\r
26 import org.jdom.JDOMException;\r
27 import org.testng.Assert;\r
28 import org.testng.annotations.Test;\r
29 \r
30 import java.io.IOException;\r
31 import java.util.Collection;\r
32 \r
33 /**\r
34  * Created by Eugene Petrenko (eugene.petrenko@gmail.com)\r
35  * Date: 12.08.11 13:44\r
36  */\r
37 public class FeedPackagesParserTest extends BaseTestCase {\r
38   private PackagesFeedParser myParser = new PackagesFeedParserImpl();\r
39 \r
40   @Test\r
41   public void test_ParseRealFeed() throws JDOMException, IOException {\r
42     final Element doc = FileUtil.parseDocument(Paths.getTestDataPath("feed/reader/feed-response.xml"));\r
43     boolean hasLatest = false;\r
44     final Collection<FeedPackage> feedPackages = myParser.readPackages(doc);\r
45     for (FeedPackage feedPackage : feedPackages) {\r
46       Assert.assertFalse(hasLatest && feedPackage.isLatestVersion(), "There could be only one latest");\r
47       hasLatest |= feedPackage.isLatestVersion();\r
48       System.out.println("feedPackage = " + feedPackage);\r
49     }\r
50   }\r
51 \r
52   @Test\r
53   public void test_ParseOnePackage() throws JDOMException, IOException {\r
54     final Element doc = FileUtil.parseDocument(Paths.getTestDataPath("feed/reader/feed-one.xml"));\r
55     final Collection<FeedPackage> packages = myParser.readPackages(doc);\r
56 \r
57     Assert.assertEquals(packages.size(), 1);\r
58     final FeedPackage pkg = packages.iterator().next();\r
59 \r
60     Assert.assertEquals(pkg.getAtomId(), "http://packages.nuget.org/v1/FeedService.svc/Packages(Id='NuGet.CommandLine',Version='1.0.11220.26')");\r
61     Assert.assertEquals(pkg.getDownloadUrl(), "http://packages.nuget.org/v1/Package/Download/NuGet.CommandLine/1.0.11220.26");\r
62     Assert.assertEquals(pkg.getInfo().getId(), "NuGet.CommandLine");\r
63     Assert.assertEquals(pkg.getInfo().getVersion(), "1.0.11220.26");\r
64     Assert.assertEquals(pkg.isLatestVersion(), false);\r
65     Assert.assertTrue(pkg.getDescription().length() > 0, "package should have deseciription");\r
66   }\r
67 \r
68   @Test\r
69   public void test_broken() {\r
70     Element el = new Element("broken");\r
71     final Collection<FeedPackage> feedPackages = myParser.readPackages(el);\r
72     Assert.assertTrue(feedPackages.isEmpty());\r
73   }\r
74 }\r