package org.ebayopensource.turmeric.tools.codegen; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.util.Properties; import org.apache.commons.io.FileUtils; import org.junit.Before; import org.junit.Ignore; import org.junit.Test; public class BaseConsumerChangesQETest extends AbstractServiceGeneratorTestCase{ final String INTF_PROPERTIES = "service_intf_project.properties"; final String CONSUMER_PROPERTIES = "service_consumer_project.properties"; Properties consumerProper = new Properties(); boolean haveProperty,haveScpp; String baseConsumer; File baseConsumerClass; FileInputStream in; FileOutputStream out; Properties pro; File file; File binDir = null; File destDir = null; @Before public void initialize() throws IOException{ haveProperty = true; haveScpp = true; testingdir.ensureEmpty(); destDir = testingdir.getDir(); binDir = testingdir.getFile("bin"); consumerProper.put("scpp_version", "1.1"); consumerProper.put("client_name","Somename"); consumerProper.put("not_generate_base_consumer","AdminV1"); } @Test //@Ignore("failing") public void testNotGeneratingBaseConusmerScenario() throws Exception{ File wsdl = getCodegenQEDataFileInput("AccountService.wsdl"); String [] testArgs = new String[] { "-servicename","NewService", "-genType", "ServiceFromWSDLIntf", "-wsdl",wsdl.getAbsolutePath(), "-dest",destDir.getAbsolutePath(), "-scv", "1.2.3", "-slayer","COMMON", "-pr",destDir.getAbsolutePath(), "-bin",binDir.getAbsolutePath(), "-adminname","Admin3", }; performDirectCodeGen(testArgs, binDir); File consumerProps = createPropertyFile(destDir.getAbsolutePath(),CONSUMER_PROPERTIES); fillProperties(consumerProper, consumerProps); //change to package of BC - the consumer name is removed from pckg. String baseConsumer = destDir.getAbsolutePath() + "/gen-src/org/ebayopensource/turmeric/tools/codegen/gen/BaseAdminV1Consumer.java"; File baseConsumerClass = new File(baseConsumer); assertFalse(baseConsumerClass.exists()); String testArgs2[] = new String[] { "-servicename","NewService", "-genType", "Consumer", "-interface","org/ebayopensource/turmeric/tools/codegen/Admin2.java", "-src", destDir.getAbsolutePath(), "-dest", destDir.getAbsolutePath(), "-scv", "1.2.3", "-slayer","COMMON", "-bin",binDir.getAbsolutePath(), "-pr",destDir.getAbsolutePath(), "-adminname","Admin2", "-cn","cname" }; performDirectCodeGen(testArgs2, binDir); //change to package of BC - the consumer name is removed from pckg. baseConsumer = destDir.getAbsolutePath() +"/gen-src/org/ebayopensource/turmeric/tools/codegen/gen/BaseAdmin2Consumer.java"; baseConsumerClass = new File(baseConsumer); assertTrue(baseConsumerClass.exists()); String testArgs3[] = new String[] { "-servicename","NewService", "-genType", "Consumer", "-interface","org/ebayopensource/turmeric/tools/codegen/Admin3.java", "-src", destDir.getAbsolutePath(), "-dest", destDir.getAbsolutePath(), "-scv", "1.2.3", "-slayer","COMMON", "-bin", binDir.getAbsolutePath(), "-pr",destDir.getAbsolutePath(), "-adminname","Admin3", "-cn","cname" }; performDirectCodeGen(testArgs3, binDir); //change to package of BC - the consumer name is removed from pckg. baseConsumer = destDir.getAbsolutePath() +"/gen-src/org/ebayopensource/turmeric/tools/codegen/gen/BaseAdmin3Consumer.java"; baseConsumerClass = new File(baseConsumer); assertTrue(baseConsumerClass.exists()); } @Test //@Ignore("failing") public void testGeneratingBaseConusmerScenario() throws Exception{ File consumerProps = createPropertyFile(destDir.getAbsolutePath(),CONSUMER_PROPERTIES); consumerProper.put("scpp_version", "1.0"); fillProperties(consumerProper, consumerProps); String testArgs1[] = new String[] { "-servicename","NewService", "-genType", "Consumer", "-interface","org/ebayopensource/turmeric/tools/codegen/Admin1.java", "-src", destDir.getAbsolutePath(), "-dest",destDir.getAbsolutePath(), "-scv", "1.2.3", "-slayer","COMMON", "-bin", binDir.getAbsolutePath(), "-pr",destDir.getAbsolutePath(), "-adminname","Admin1", "-cn","cname" }; performDirectCodeGen(testArgs1, binDir); //change to package of BC - the consumer name is removed from pckg. String baseConsumer = destDir.getAbsolutePath() +"/gen-src/org/ebayopensource/turmeric/tools/codegen/gen/BaseAdmin1Consumer.java"; File baseConsumerClass = new File(baseConsumer); assertTrue(baseConsumerClass.exists()); String baseCon = destDir.getAbsolutePath() + "/gen-src/org/ebayopensource/turmeric/tools/codegen/gen/BaseAdmin1Consumer.java"; File baseConFile = new File(baseCon); if(baseConFile.exists()){ if(baseConFile.delete()){ performDirectCodeGen(testArgs1, binDir); } else throw new Exception("File Could not be deleted"); } baseConsumer = destDir.getAbsolutePath() +"/gen-src/org/ebayopensource/turmeric/tools/codegen/gen/BaseAdmin1Consumer.java"; baseConsumerClass = new File(baseConsumer); assertTrue(baseConsumerClass.exists()); assertTrue(FileUtils.readFileToString(baseConsumerClass).contains("private final static String SVC_ADMIN_NAME = \"Admin1\";")); assertTrue(FileUtils.readFileToString(baseConsumerClass).contains("private String m_environment;")); assertTrue(FileUtils.readFileToString(baseConsumerClass).contains(" private String m_clientName = \"Admin1\";")); } @Test //@Ignore("Failing") public void testGeneratingBaseConusmerScenario2() throws Exception{ File consumerProps = createPropertyFile(destDir.getAbsolutePath(),CONSUMER_PROPERTIES); consumerProper.put("not_generate_base_consumer",""); fillProperties(consumerProper, consumerProps); String testArgs1[] = new String[] { "-servicename","NewService", "-genType", "Consumer", "-interface","org/ebayopensource/turmeric/tools/codegen/AdminV1.java", "-src", destDir.getAbsolutePath(), "-dest", destDir.getAbsolutePath(), "-scv", "1.2.3", "-slayer","COMMON", "-bin", binDir.getAbsolutePath(), "-pr",destDir.getAbsolutePath(), "-adminname","AdminV1", "-cn","cname" }; performDirectCodeGen(testArgs1, binDir); //change to package of BC - the consumer name is removed from pckg. baseConsumer = destDir.getAbsolutePath() +"/gen-src/org/ebayopensource/turmeric/tools/codegen/gen/BaseAdminV1Consumer.java"; baseConsumerClass = new File(baseConsumer); assertTrue(baseConsumerClass.exists()); } @Test //@Ignore("failing") public void testGeneratingBaseConusmerScenario3() throws Exception{ haveProperty = false; File consumerProps = createPropertyFile(destDir.getAbsolutePath(),CONSUMER_PROPERTIES); consumerProper.put("not_generate_base_consumer",""); fillProperties(consumerProper, consumerProps); String testArgs1[] = new String[] { "-servicename","NewService", "-genType", "Consumer", "-interface","org/ebayopensource/turmeric/tools/codegen/AdminV1.java", "-src", destDir.getAbsolutePath(), "-dest", destDir.getAbsolutePath(), "-scv", "1.2.3", "-slayer","COMMON", "-bin",binDir.getAbsolutePath(), "-pr",destDir.getAbsolutePath(), "-adminname","AdminV1", "-cn","cname" }; performDirectCodeGen(testArgs1, binDir); //change to package of BC - the consumer name is removed from pckg. baseConsumer = destDir.getAbsolutePath() +"/gen-src/org/ebayopensource/turmeric/tools/codegen/gen/BaseAdminV1Consumer.java"; baseConsumerClass = new File(baseConsumer); assertTrue(baseConsumerClass.exists()); } public void deinitialize(){ baseConsumer = null; baseConsumerClass = null; in = null; out = null; pro = null; file = null; } }