Package com.instantiations.pde.build.subproduct

Source Code of com.instantiations.pde.build.subproduct.SubProductZipReaderTest

package com.instantiations.pde.build.subproduct;

import java.io.File;
import java.io.IOException;
import java.util.Arrays;
import java.util.TreeSet;

import org.junit.Test;

import static org.junit.Assert.*;

import com.instantiations.pde.build.util.BuildProperties;
import com.instantiations.pde.build.util.Version;

public class SubProductZipReaderTest
{
  private BuildProperties prop;

  @Test
  public void testReadAllZips() throws Exception {
    prop = new BuildProperties();
    prop.read();
    File subproductsDir = new File(prop.get("actual.build.subproducts"));
    if (!subproductsDir.exists())
      fail("actual.build.subproducts property does not point to a valid directory:\n   "
        + subproductsDir.getCanonicalPath());
    for (String childName : new TreeSet<String>(Arrays.asList(subproductsDir.list()))) {
      File child = new File(subproductsDir, childName);
      if (child.isDirectory())
        testReadAllZips(child.getName(), child);
    }
    System.out.println("Test Complete");
  }

  private void testReadAllZips(String subProductName, File dir) throws IOException {
    for (String childName : new TreeSet<String>(Arrays.asList(dir.list()))) {
      File child = new File(dir, childName);
      if (child.isDirectory()) {
        testReadAllZips(subProductName, child);
      }
      else if (child.getName().endsWith(".zip")) {
        SubProductZipReader reader = testReadZip(subProductName, child);
        if (subProductName.equals("Shared"))
          assertSharedSubProduct(reader, child.getParentFile().getName());
      }
    }
  }

  private SubProductZipReader testReadZip(String subProductName, File productZipFile) throws IOException {
    System.out.println(productZipFile.getCanonicalPath());
    SubProductZipReader reader = new SubProductZipReader();
    reader.setZipFile(productZipFile);
    reader.setProp(prop);
    System.out.println("   ID = " + reader.getId());
    System.out.println("   Full Version = " + reader.getFullVersion());
    System.out.println("   Included Features");
    for (String featureId : reader.getIncludedFeatures()) {
      System.out.println("      " + featureId);
      assertTrue(featureId.indexOf('"') == -1);
    }
    System.out.println("   Included Plugins");
    for (String pluginId : reader.getIncludedPlugins()) {
      String featureId = reader.getPluginToFeature().get(pluginId);
      System.out.print("      " + pluginId + "  ");
      for (int i = pluginId.length(); i < 50; i++)
        System.out.print('.');
      System.out.println(" in feature " + featureId);
      assertTrue(pluginId.indexOf('"') == -1);
      assertNotNull(featureId);
    }
    System.out.println("   Required Features");
    for (String featureId : reader.getRequiredFeatures()) {
      System.out.println("      " + featureId);
      assertTrue(featureId.indexOf('"') == -1);
    }
    System.out.println("   Required Plugins");
    for (String pluginId : reader.getRequiredPlugins()) {
      System.out.println("      " + pluginId);
      assertTrue(pluginId.indexOf('"') == -1);
    }
    return reader;
  }

  private void assertSharedSubProduct(SubProductZipReader reader, String targetVersion) {
    assertEquals("com.instantiations.eclipse.shared", reader.getId());
    Version fullVersion = new Version(reader.getFullVersion());
    if (fullVersion.compareTo(new Version(5, 5, 0)) < 0)
      fail("Expected version >= 5.5.0, but found " + fullVersion.toStringBase());
    if (fullVersion.getQualifier().compareTo("200901010000") < 0)
      fail("Expected version build number > 200901010000, but found " + fullVersion.getQualifier());
    assertEquals(1, reader.getIncludedFeatures().size());
    if (!reader.getIncludedFeatures().contains("com.instantiations.eclipse.shared"))
      fail("Expected included features to contain com.instantiations.eclipse.shared");
    assertEquals(targetVersion.equals("2.1") ? 6 : 7, reader.getIncludedPlugins().size());
    if (!reader.getIncludedPlugins().contains("com.instantiations.common.help"))
      fail("Expected included plugins to contain com.instantiations.common.help");
    assertEquals(0, reader.getRequiredFeatures().size());
    assertTrue(reader.getRequiredPlugins().size() >= 3);
  }
}
TOP

Related Classes of com.instantiations.pde.build.subproduct.SubProductZipReaderTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.