package sagan.tools.support;
import sagan.tools.DownloadLink;
import sagan.tools.EclipseDownloads;
import sagan.tools.EclipsePackage;
import sagan.tools.EclipseRelease;
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_SingleDownloadTests {
private EclipseDownloads eclipseDownloads;
@Before
public void setup() {
EclipseXmlDownload eclipseXmlDownload = new EclipseXmlDownload();
eclipseXmlDownload.setOs("mac");
eclipseXmlDownload.setEclipseVersion("4.3.0");
eclipseXmlDownload.setSize("196MB");
eclipseXmlDownload.setDescription("Mac OS X (Cocoa)");
eclipseXmlDownload.setFile("release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-macosx-cocoa.tar.gz");
eclipseXmlDownload.setBucket("http://eclipseXmlDownload.springsource.com/");
EclipseXmlPackage eclipseXmlPackage = new EclipseXmlPackage();
eclipseXmlPackage.setName("Eclipse Standard 4.3 (Win32, 0MB)");
eclipseXmlPackage.setEclipseXmlDownloads(Collections.singletonList(eclipseXmlDownload));
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("mac").getName(), equalTo("Mac"));
}
@Test
public void addsAProduct() throws Exception {
List<EclipseRelease> products = eclipseDownloads.getPlatforms().get("mac").getReleases();
assertThat(products.size(), equalTo(1));
assertThat(products.get(0).getName(), equalTo("Eclipse Kepler"));
assertThat(products.get(0).getEclipseVersion(), equalTo("Eclipse 4.3"));
}
@Test
public void addsAPackage() throws Exception {
List<EclipsePackage> packages = eclipseDownloads.getPlatforms().get("mac").getReleases().get(0).getPackages();
assertThat(packages.size(), equalTo(1));
assertThat(packages.get(0).getName(), equalTo("Eclipse Standard 4.3"));
}
@Test
public void addsAnArchitecture() throws Exception {
EclipsePackage eclipsePackage =
eclipseDownloads.getPlatforms().get("mac").getReleases().get(0).getPackages().get(0);
assertThat(eclipsePackage.getArchitectures().size(), equalTo(1));
assertThat(eclipsePackage.getArchitectures().get(0).getName(), equalTo("Mac OS X (Cocoa)"));
}
@Test
public void addsADownloadLink() throws Exception {
EclipsePackage eclipsePackage =
eclipseDownloads.getPlatforms().get("mac").getReleases().get(0).getPackages().get(0);
List<DownloadLink> downloadLinks = eclipsePackage.getArchitectures().get(0).getDownloadLinks();
assertThat(downloadLinks.size(), equalTo(1));
assertThat(downloadLinks.get(0).getOs(), equalTo("mac"));
assertThat(downloadLinks.get(0).getArchitecture(), equalTo("32"));
assertThat(
downloadLinks.get(0).getUrl(),
equalTo("http://eclipseXmlDownload.springsource.com/release/ECLIPSE/kepler/R/eclipse-standard-kepler-R-macosx-cocoa.tar.gz"));
assertThat(downloadLinks.get(0).getFileSize(), equalTo("196MB"));
assertThat(downloadLinks.get(0).getFileType(), equalTo("tar.gz"));
}
}