package sagan.tools.support; import sagan.tools.DownloadLink; import sagan.tools.EclipseDownloads; import sagan.tools.EclipsePackage; import sagan.tools.EclipseRelease; import java.util.Arrays; import java.util.Collections; import java.util.List; import org.junit.Before; import org.junit.Test; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; public class EclipseDownloadsXmlConverter_TwoDownloadsForDifferentPlatformsTests { private EclipseDownloads eclipseDownloads; @Before public void setup() { EclipseXmlDownload macDownload = new EclipseXmlDownload(); macDownload.setOs("mac"); macDownload.setDescription("Mac OS X (Cocoa)"); macDownload.setFile("release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-macosx-cocoa.tar.gz"); macDownload.setBucket("http://eclipseXmlDownload.springsource.com/"); EclipseXmlDownload windowsDownload = new EclipseXmlDownload(); windowsDownload.setOs("windows"); windowsDownload.setDescription("Windows (64bit)"); windowsDownload.setFile("release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-win32-x86_64.zip"); windowsDownload.setBucket("http://eclipseXmlDownload.springsource.com/"); EclipseXmlPackage eclipseXmlPackage = new EclipseXmlPackage(); eclipseXmlPackage.setName("Eclipse Standard 4.3 (Win32, 0MB)"); eclipseXmlPackage.setEclipseXmlDownloads(Arrays.asList(macDownload, windowsDownload)); EclipseXmlProduct eclipseXmlProduct = new EclipseXmlProduct(); eclipseXmlProduct.setName("Eclipse Kepler Package Downloads (based on Eclipse 4.3)"); eclipseXmlProduct.setPackages(Collections.singletonList(eclipseXmlPackage)); EclipseXml eclipseXml = new EclipseXml(); eclipseXml.setEclipseXmlProducts(Collections.singletonList(eclipseXmlProduct)); EclipseDownloadsXmlConverter converter = new EclipseDownloadsXmlConverter(); eclipseDownloads = converter.convert(eclipseXml); } @Test public void addsTwoPlatforms() throws Exception { assertThat(eclipseDownloads.getPlatforms().size(), equalTo(2)); assertThat(eclipseDownloads.getPlatforms().get("mac").getName(), equalTo("Mac")); assertThat(eclipseDownloads.getPlatforms().get("windows").getName(), equalTo("Windows")); } @Test public void addsAProductToEachPlatform() throws Exception { List<EclipseRelease> macProducts = eclipseDownloads.getPlatforms().get("mac").getReleases(); assertThat(macProducts.size(), equalTo(1)); assertThat(macProducts.get(0).getName(), equalTo("Eclipse Kepler")); List<EclipseRelease> windowsProducts = eclipseDownloads.getPlatforms().get("windows").getReleases(); assertThat(windowsProducts.size(), equalTo(1)); assertThat(windowsProducts.get(0).getName(), equalTo("Eclipse Kepler")); } @Test public void addsTwoPackages() throws Exception { List<EclipsePackage> macPackages = eclipseDownloads.getPlatforms().get("mac").getReleases().get(0).getPackages(); assertThat(macPackages.size(), equalTo(1)); assertThat(macPackages.get(0).getName(), equalTo("Eclipse Standard 4.3")); List<EclipsePackage> windowsPackages = eclipseDownloads.getPlatforms().get("windows").getReleases().get(0).getPackages(); assertThat(windowsPackages.size(), equalTo(1)); assertThat(windowsPackages.get(0).getName(), equalTo("Eclipse Standard 4.3")); } @Test public void addsDownloadLinksToTheArchitectures() throws Exception { List<EclipsePackage> macPackages = eclipseDownloads.getPlatforms().get("mac").getReleases().get(0).getPackages(); List<DownloadLink> macDownloadLinks = macPackages.get(0).getArchitectures().get(0).getDownloadLinks(); assertThat(macDownloadLinks.size(), equalTo(1)); assertThat(macDownloadLinks.get(0).getOs(), equalTo("mac")); assertThat( macDownloadLinks.get(0).getUrl(), equalTo("http://eclipseXmlDownload.springsource.com/release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-macosx-cocoa.tar.gz")); List<EclipsePackage> windowsPackages = eclipseDownloads.getPlatforms().get("windows").getReleases().get(0).getPackages(); List<DownloadLink> windowsDownloadLinks = windowsPackages.get(0).getArchitectures().get(0).getDownloadLinks(); assertThat(windowsDownloadLinks.size(), equalTo(1)); assertThat(windowsDownloadLinks.get(0).getOs(), equalTo("windows")); assertThat( windowsDownloadLinks.get(0).getUrl(), equalTo("http://eclipseXmlDownload.springsource.com/release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-win32-x86_64.zip")); } }