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_TwoDownloadsForSameReleaseWithDifferentPackagesTests {
private EclipseDownloads eclipseDownloads;
@Before
public void setup() {
EclipseXmlDownload eclipseStandardDownload = new EclipseXmlDownload();
eclipseStandardDownload.setOs("windows");
eclipseStandardDownload.setDescription("Windows");
eclipseStandardDownload.setFile("release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-win32.zip");
eclipseStandardDownload.setBucket("http://eclipseXmlDownload.springsource.com/");
EclipseXmlDownload eclipseJavaEEDownload = new EclipseXmlDownload();
eclipseJavaEEDownload.setOs("windows");
eclipseJavaEEDownload.setDescription("Windows");
eclipseJavaEEDownload.setFile("release/ECLIPSE/kepler/R/eclipse-jee-kepler-R-win32.zip");
eclipseJavaEEDownload.setBucket("http://eclipseXmlDownload.springsource.com/");
EclipseXmlPackage eclipseStandardPackage = new EclipseXmlPackage();
eclipseStandardPackage.setName("Eclipse Standard 4.3 (Win32, 0MB)");
eclipseStandardPackage.setEclipseXmlDownloads(Arrays.asList(eclipseStandardDownload));
EclipseXmlPackage eclipseJavaEEPackage = new EclipseXmlPackage();
eclipseJavaEEPackage.setName("Eclipse IDE for Java EE Developers (Win32, 245MB)");
eclipseJavaEEPackage.setEclipseXmlDownloads(Arrays.asList(eclipseJavaEEDownload));
EclipseXmlProduct eclipseXmlProduct = new EclipseXmlProduct();
eclipseXmlProduct.setName("Eclipse Kepler Package Downloads (based on Eclipse 4.3)");
eclipseXmlProduct.setPackages(Arrays.asList(eclipseStandardPackage, eclipseJavaEEPackage));
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 addsAReleaseToThePlatform() 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 addsTwoPackages() throws Exception {
List<EclipsePackage> windowsPackages =
eclipseDownloads.getPlatforms().get("windows").getReleases().get(0).getPackages();
assertThat(windowsPackages.size(), equalTo(2));
assertThat(windowsPackages.get(0).getName(), equalTo("Eclipse Standard 4.3"));
assertThat(windowsPackages.get(1).getName(), equalTo("Eclipse IDE for Java EE Developers"));
}
@Test
public void addsDownloadLinkToEachPackage() throws Exception {
List<EclipsePackage> windowsPackages =
eclipseDownloads.getPlatforms().get("windows").getReleases().get(0).getPackages();
List<DownloadLink> standardDownloadLinks = windowsPackages.get(0).getArchitectures().get(0).getDownloadLinks();
List<DownloadLink> javaEEDownloadLinks = windowsPackages.get(1).getArchitectures().get(0).getDownloadLinks();
assertThat(standardDownloadLinks.size(), equalTo(1));
assertThat(standardDownloadLinks.get(0).getOs(), equalTo("windows"));
assertThat(
standardDownloadLinks.get(0).getUrl(),
equalTo("http://eclipseXmlDownload.springsource.com/release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-win32.zip"));
assertThat(javaEEDownloadLinks.size(), equalTo(1));
assertThat(javaEEDownloadLinks.get(0).getOs(), equalTo("windows"));
assertThat(
javaEEDownloadLinks.get(0).getUrl(),
equalTo("http://eclipseXmlDownload.springsource.com/release/ECLIPSE/kepler/R/eclipse-jee-kepler-R-win32.zip"));
}
}