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_TwoDownloadsForSamePackageWithDifferentArchitecturesTests { private EclipseDownloads eclipseDownloads; @Before public void setup() { EclipseXmlDownload win32Download = new EclipseXmlDownload(); win32Download.setOs("windows"); win32Download.setDescription("Windows"); win32Download.setFile("release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-win32.zip"); win32Download.setBucket("http://eclipseXmlDownload.springsource.com/"); win32Download.setSize("123MB"); EclipseXmlDownload win64Download = new EclipseXmlDownload(); win64Download.setOs("windows"); win64Download.setDescription("Windows (64bit)"); win64Download.setFile("release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-win64-x86_64.zip"); win64Download.setBucket("http://eclipseXmlDownload.springsource.com/"); win64Download.setSize("456MB"); EclipseXmlPackage eclipseXmlPackage = new EclipseXmlPackage(); eclipseXmlPackage.setName("Eclipse Standard 4.3 (Win32, 0MB)"); eclipseXmlPackage.setEclipseXmlDownloads(Arrays.asList(win32Download, win64Download)); 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 addsAPlatform() throws Exception { assertThat(eclipseDownloads.getPlatforms().size(), equalTo(1)); assertThat(eclipseDownloads.getPlatforms().get("windows").getName(), equalTo("Windows")); } @Test public void addsAProductToThePlatform() throws Exception { List<EclipseRelease> windowsProducts = eclipseDownloads.getPlatforms().get("windows").getReleases(); assertThat(windowsProducts.size(), equalTo(1)); assertThat(windowsProducts.get(0).getName(), equalTo("Eclipse Kepler")); } @Test public void addsAPackage() throws Exception { 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 addsTwoDownloadLinksToThePackage() throws Exception { List<EclipsePackage> windowsPackages = eclipseDownloads.getPlatforms().get("windows").getReleases().get(0).getPackages(); List<DownloadLink> win32DownloadLinks = windowsPackages.get(0).getArchitectures().get(0).getDownloadLinks(); assertThat(win32DownloadLinks.size(), equalTo(1)); assertThat(win32DownloadLinks.get(0).getOs(), equalTo("windows")); assertThat(win32DownloadLinks.get(0).getArchitecture(), equalTo("32")); assertThat( win32DownloadLinks.get(0).getUrl(), equalTo("http://eclipseXmlDownload.springsource.com/release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-win32.zip")); assertThat(win32DownloadLinks.get(0).getFileSize(), equalTo("123MB")); assertThat(win32DownloadLinks.get(0).getFileType(), equalTo("zip")); List<DownloadLink> win64DownloadLinks = windowsPackages.get(0).getArchitectures().get(1).getDownloadLinks(); assertThat(win64DownloadLinks.size(), equalTo(1)); assertThat(win64DownloadLinks.get(0).getOs(), equalTo("windows")); assertThat(win64DownloadLinks.get(0).getArchitecture(), equalTo("64")); assertThat( win64DownloadLinks.get(0).getUrl(), equalTo("http://eclipseXmlDownload.springsource.com/release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-win64-x86_64.zip")); assertThat(win64DownloadLinks.get(0).getFileSize(), equalTo("456MB")); assertThat(win64DownloadLinks.get(0).getFileType(), equalTo("zip")); } }