package org.ebayopensource.turmeric.tools.library;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.io.IOException;
import java.util.Iterator;
import java.util.List;
import org.custommonkey.xmlunit.DetailedDiff;
import org.custommonkey.xmlunit.Diff;
import org.custommonkey.xmlunit.Difference;
import org.custommonkey.xmlunit.XMLUnit;
import org.ebayopensource.turmeric.tools.TestResourceUtil;
import org.ebayopensource.turmeric.tools.codegen.AbstractServiceGeneratorTestCase;
import org.ebayopensource.turmeric.tools.codegen.ServiceGenerator;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
/**
* This JUnit class is covering all the testcases for gentype : genTypeAddType. This gentype is used for
* adding type to a specified TypeLibrary. A type can be
* SimpleType
* ComplexType
* ComplexType dependent on Simple type in same library
* ComplexType dependent on Simple type in different library
* ComplexType dependent on Complex type in same library
* ComplexType dependent on Complex type in different library
*
* @author vganjare
*
*/
public class GenTypeAddTypeQETest extends AbstractServiceGeneratorTestCase {
File prCategoryRoot = null;
File prProductRoot = null;
private String PRODUCT_TYPE_LIBRARY = "ProductTypeLibrary";
private String CATEGORY_TYPE_LIBRARY = "CategoryTypeLibrary";
private String PROJECT_ROOT_CATEGORY = "";
private String PROJECT_ROOT_PRODUCT = "";
private String GOLD_COPY_ROOT_CATEGORY = "";
private TypeLibraryUtility utility = new TypeLibraryUtility();
final String TYPE_INFO = "TypeInformation.xml";
final String SUN_EPISODE = "sun-jaxb.episode";
@Before
public void init(){
mavenTestingRules.setFailOnViolation(false);
prCategoryRoot = testingdir.getFile("CategoryTypeLibrary");
prProductRoot = testingdir.getFile("ProductTypeLibrary");
PROJECT_ROOT_CATEGORY = prCategoryRoot.getAbsolutePath();
PROJECT_ROOT_PRODUCT = prProductRoot.getAbsolutePath();
}
/**
* Positive Testcase for SimpleType xsd.
* CategoryName.xsd is a Simple Type xml schema defination.
* CategoryName.xsd locations are:
* Codegen copy location: \AntTests\CategoryTypeLibrary\meta-src\types\CategoryName.xsd
* Vanilla copy location: \Vanilla-Codegen\TypeLibraryCodegen\CategoryTypeLibrary\meta-src\types
*
* Artifacts Validated:
* Codegen copy location: \AntTests\CategoryTypeLibrary\gen-meta-src\META-INF\CategoryTypeLibrary\
* Vanilla copy location: \Vanilla-Codegen\TypeLibraryCodegen\CategoryTypeLibrary\gen-meta-src\META-INF\CategoryTypeLibrary\addTypeFromSimpleType\
* 1.TypeInformation.xml
* 2.CategoryName.episode
* 3.sun-jaxb.episode
*
* Codegen copy location: \AntTests\CategoryTypeLibrary\gen-src\com\ebay\soaframework\examples\config\
* Vanilla copy location: \Vanilla-Codegen\TypeLibraryCodegen\CategoryTypeLibrary\gen-src\com\ebay\soaframework\examples\config\addTypeFromSimpleType\
* 1.CategoryName.java
*
*
*Quick Bug 660,579,581
* @throws IOException
*/
@Test
public void testGenTypeAddTypeFromSimpleType() throws IOException {
String folderConstant = "addTypeFromSimpleType";
//Create TypeLibrary CategoryTypeLibrary.
boolean createLibraryFlag = createTypeLibrary();
System.out.println("Library Creation status:" + createLibraryFlag);
TestResourceUtil.copyResource("types/CategoryName.xsd", testingdir, "CategoryTypeLibrary/meta-src/");
//createTypeLibrary();
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
"CategoryTypeLibrary",
"-type",
"CategoryName.xsd",
"-lcf",
"default"
};
try {
sGenerator.startCodeGen(pluginParameter);
//validate the content of TypeInformation.xml
String TIXmlCodegenPath = utility.getTypeInformationXMLPath(PROJECT_ROOT_CATEGORY, CATEGORY_TYPE_LIBRARY, null);
String TIXmlVanillaPath = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeFromSimpleType/"+ TYPE_INFO;
boolean typeInformationXmlCompare = utility.compareFiles(TIXmlCodegenPath, TIXmlVanillaPath);
assertTrue("TypeInformation.xml content did not match", typeInformationXmlCompare);
//Validate the contents of CategoryName.java
String javaFileCodegenCopy = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryName.java",
null);
String javaFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-src/org/ebayopensource/soaframework/examples/config/addTypeFromSimpleType/CategoryName.java";
boolean javaFileCompare = utility.compareFiles(javaFileCodegenCopy, javaFileVanillaCopy);
assertTrue("CategoryName.java file content does not match", javaFileCompare);
//Validate the content of CategoryName.episode file
String episodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryName.episode",
null);
String episodeFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeFromSimpleType/CategoryName.episode";
boolean episodeFileCompare = utility.compareFiles(episodeFileCodegenCopy, episodeFileVanillaCopy);
//Validate the contents of Sun-jaxb.episode
String masterEpisodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"sun-jaxb.episode",
null);
String masterEpisodeFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeFromSimpleType/"+ SUN_EPISODE;
boolean masterEpisodeCompare = utility.compareFiles(masterEpisodeFileCodegenCopy, masterEpisodeFileVanillaCopy);
assertTrue("Sun-jaxb.episode content does not match", masterEpisodeCompare);
} catch (Exception e) {
e.printStackTrace();
assertTrue("No exception should be thrown." + e.getMessage(), false);
}
}
/**
* Positive Testcase for ComplexType xsd.
* CategoryProduct.xsd is a Complex Type xml schema defination.
* CategoryProduct.xsd locations are:
* Codegen copy location: \AntTests\CategoryTypeLibrary\meta-src\types\CategoryProduct.xsd
* Vanilla copy location: \Vanilla-Codegen\TypeLibraryCodegen\CategoryTypeLibrary\meta-src\types\CategoryProduct.xsd
*
* Artifacts Validated:
* Codegen copy location: \AntTests\CategoryTypeLibrary\gen-meta-src\META-INF\CategoryTypeLibrary\
* Vanilla copy location: \Vanilla-Codegen\TypeLibraryCodegen\CategoryTypeLibrary\gen-meta-src\META-INF\CategoryTypeLibrary\addTypeFromComplexType\
* 1.TypeInformation.xml
* 2.CategoryProduct.episode
* 3.sun-jaxb.episode
*
* Codegen copy location: \AntTests\CategoryTypeLibrary\gen-src\com\ebay\soaframework\examples\config\
* Vanilla copy location: \Vanilla-Codegen\TypeLibraryCodegen\CategoryTypeLibrary\gen-src\com\ebay\soaframework\examples\config\addTypeFromComplexType\
* 1.CategoryProduct.java
*
*Quick bug 706
* @throws IOException
*/
@Test
public void testGenTypeAddTypeFromComplexType() throws IOException {
String folderConstant = "addTypeFromComplexType";
//Create TypeLibrary CategoryTypeLibrary.
boolean createLibraryFlag = createTypeLibrary();
System.out.println("Library Creation status:" + createLibraryFlag);
//Copy the xsd file to \meta-src\types\ folder
//boolean copyXsd = utility.copyXSDFileToTypesFolder(CATEGORY_TYPE_LIBRARY, "CategoryProduct.xsd");
//assertTrue("Xsd file is not copied", copyXsd);
TestResourceUtil.copyResource("types/CategoryProduct.xsd", testingdir, "CategoryTypeLibrary/meta-src");
//createTypeLibrary();
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
"CategoryTypeLibrary",
"-type",
"CategoryProduct.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
//validate the content of TypeInformation.xml
String TIXmlCodegenPath = utility.getTypeInformationXMLPath(PROJECT_ROOT_CATEGORY, CATEGORY_TYPE_LIBRARY, null);
String TIXmlVanillaPath = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeFromComplexType/"+ TYPE_INFO;
boolean typeInformationXmlCompare = utility.compareFiles(TIXmlCodegenPath, TIXmlVanillaPath);
assertTrue("TypeInformation.xml content did not match", typeInformationXmlCompare);
//Validate the contents of CategoryName.java
String javaFileCodegenCopy = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryProduct.java",
null);
String javaFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-src/org/ebayopensource/soaframework/examples/config/addTypeFromComplexType/CategoryProduct.java";
boolean javaFileCompare = utility.compareFiles(javaFileCodegenCopy, javaFileVanillaCopy);
assertTrue("CategoryProduct.java file content does not match", javaFileCompare);
//Validate the content of CategoryName.episode file
String episodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryProduct.episode",
null);
String episodeFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeFromComplexType/CategoryProduct.episode";
boolean episodeFileCompare = utility.compareFiles(episodeFileCodegenCopy, episodeFileVanillaCopy);
assertTrue("CategoryProduct.episode content does not match.", episodeFileCompare);
//Validate the contents of Sun-jaxb.episode
String masterEpisodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"sun-jaxb.episode",
null);
String masterEpisodeFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeFromComplexType/"+ SUN_EPISODE;
boolean masterEpisodeCompare = utility.compareFiles(masterEpisodeFileCodegenCopy, masterEpisodeFileVanillaCopy);
//assertTrue("Sun-jaxb.episode content does not match", masterEpisodeCompare);
} catch (Exception e) {
e.printStackTrace();
assertTrue("No exception should be thrown.Exception:"+e.getMessage(), false);
}
}
/**
* Positive Testcase for ComplexType xsd which is dependent on Complex type from same Library.
* CategorySales.xsd is a Complex Type xsd which is dependent on CategoryProduct.xsd.
* Both the xsd are part of Library CategoryTypeLibrary.
*
* Artifacts Validated:
* Codegen copy location: \AntTests\CategoryTypeLibrary\gen-meta-src\META-INF\CategoryTypeLibrary\
* Vanilla copy location: \Vanilla-Codegen\TypeLibraryCodegen\CategoryTypeLibrary\gen-meta-src\META-INF\CategoryTypeLibrary\addTypeDepOnComplexTypeSameLib\
* 1.TypeInformation.xml
* 3.CategorySales.episode
* 3.sun-jaxb.episode
*
* Codegen copy location: \AntTests\CategoryTypeLibrary\gen-src\com\ebay\soaframework\examples\config\
* Vanilla copy location: \Vanilla-Codegen\TypeLibraryCodegen\CategoryTypeLibrary\gen-src\com\ebay\soaframework\examples\config\addTypeDepOnComplexTypeSameLib\
* 1.CategoryProduct.java
* 2.CategorySales.java
*
* Pre-Requisite: Type CategoryProduct.java is not present
*
* Quick bug 669
* @throws IOException
*/
@Test
public void testGenTypeAddTypeDepOnComplexTypeSameLib() throws IOException {
String VANILLA_INFO = "addTypeDepOnComplexTypeSameLib";
XMLUnit.setIgnoreComments(true);
//Create TypeLibrary CategoryTypeLibrary.
boolean createLibraryFlag = createTypeLibrary();
System.out.println("Library Creation status:" + createLibraryFlag);
assertTrue("CategoryLibrary is not created", createLibraryFlag);
//Copy the xsd file to \meta-src\types\ folder
//boolean copyXsd = utility.copyXSDFileToTypesFolder1(CATEGORY_TYPE_LIBRARY,CATEGORY_TYPE_LIBRARY, "CategoryProduct.xsd");
//assertTrue("Xsd file is not copied", copyXsd);
//boolean copyXsd1 = utility.copyXSDFileToTypesFolder(CATEGORY_TYPE_LIBRARY, "CategorySales.xsd");
//assertTrue("Xsd file is not copied", copyXsd1);
TestResourceUtil.copyResource("types/CategoryProduct.xsd", testingdir, "CategoryTypeLibrary/meta-src");
TestResourceUtil.copyResource("types/CategorySales.xsd", testingdir, "CategoryTypeLibrary/meta-src");
//createTypeLibrary();
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
"CategoryTypeLibrary",
"-type",
"CategorySales.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
//validate the content of TypeInformation.xml
String TIXmlCodegenPath = utility.getTypeInformationXMLPath(PROJECT_ROOT_CATEGORY, CATEGORY_TYPE_LIBRARY, null);
String TIXmlVanillaPath = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeDepOnComplexTypeSameLib/"+ TYPE_INFO;
boolean typeInformationXmlCompare = utility.compareFiles(TIXmlCodegenPath, TIXmlVanillaPath);
assertTrue("TypeInformation.xml content did not match", typeInformationXmlCompare);
//Validate the contents of CategorySales.java
String javaFileCodegenCopy = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategorySales.java",
null);
String javaFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-src/org/ebayopensource/soaframework/examples/config/addTypeDepOnComplexTypeSameLib/CategorySales.java";
;
boolean javaFileCompare = utility.compareFiles(javaFileCodegenCopy, javaFileVanillaCopy);
assertTrue("CategorySales.java file content does not match", javaFileCompare);
//Validate the contents of CategoryProduct.java
String javaFileCodegenCopy1 = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryProduct.java",
null);
String javaFileVanillaCopy1 = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-src/org/ebayopensource/soaframework/examples/config/addTypeDepOnComplexTypeSameLib/CategoryProduct.java";
;
boolean javaFileCompare1 = utility.compareFiles(javaFileCodegenCopy1, javaFileVanillaCopy1);
assertTrue("CategoryProduct.java file content does not match", javaFileCompare1);
//Validate the content of CategorySales.episode file
String episodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategorySales.episode",
null);
String episodeFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeDepOnComplexTypeSameLib/CategorySales.episode";
//boolean episodeFileCompare = utility.compareFiles(episodeFileCodegenCopy, episodeFileVanillaCopy);
//assertTrue("CategorySales.episode content does not match.", episodeFileCompare);
assertXML(episodeFileVanillaCopy, episodeFileCodegenCopy,null);
//Validate the contents of Sun-jaxb.episode
String masterEpisodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"sun-jaxb.episode",
null);
String masterEpisodeFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeDepOnComplexTypeSameLib/"+SUN_EPISODE;
assertXML(masterEpisodeFileVanillaCopy, masterEpisodeFileCodegenCopy,null);
} catch (Exception e) {
e.printStackTrace();
assertTrue("No exception should be thrown. Exception:"+e.getMessage(), false);
}
}
/**
*Testcase for xs:any issue.
* @throws IOException
*/
@Test
public void testGenTypeAddTypeXsAnyType1() throws IOException {
String VANILLA_INFO = "addTypeXsAnyType1";
//Create TypeLibrary CategoryTypeLibrary.
boolean createLibraryFlag = createTypeLibrary();
System.out.println("Library Creation status:" + createLibraryFlag);
assertTrue("CategoryLibrary is not created", createLibraryFlag);
//Copy the xsd file to \meta-src\types\ folder
//boolean copyXsd = utility.copyXSDFileToTypesFolder(CATEGORY_TYPE_LIBRARY, "XsAnyType1.xsd");
//assertTrue("Xsd file is not copied", copyXsd);
TestResourceUtil.copyResource("types/XsAnyType1.xsd", testingdir, "CategoryTypeLibrary/meta-src");
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
"CategoryTypeLibrary",
"-type",
"XsAnyType1.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
//validate the content of TypeInformation.xml
String TIXmlCodegenPath = utility.getTypeInformationXMLPath(PROJECT_ROOT_CATEGORY, CATEGORY_TYPE_LIBRARY, null);
String TIXmlVanillaPath = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeXsAnyType1/"+ TYPE_INFO;
boolean typeInformationXmlCompare = utility.compareFiles(TIXmlCodegenPath, TIXmlVanillaPath);
assertTrue("TypeInformation.xml content did not match", typeInformationXmlCompare);
String javaFileCodegenCopy = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"XsAnyType1.java",
null);
String javaFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-src/org/ebayopensource/soaframework/examples/config/addTypeXsAnyType1/XsAnyType1.java";
;
boolean javaFileCompare = compareFiles(new File(javaFileCodegenCopy), new File(javaFileVanillaCopy));
assertTrue("XsAnyType1.java file content does not match", javaFileCompare);
} catch (Exception e) {
e.printStackTrace();
assertTrue("No exception should be thrown. Exception:"+e.getMessage(), false);
}
}
/**
*Test case for xs:any issue.
* @throws IOException
*/
@Test
public void testGenTypeAddTypeXsAnyType2() throws IOException {
String VANILLA_INFO = "addTypeXsAnyType2";
//Create TypeLibrary CategoryTypeLibrary.
boolean createLibraryFlag = createTypeLibrary();
System.out.println("Library Creation status:" + createLibraryFlag);
assertTrue("CategoryLibrary is not created", createLibraryFlag);
//Copy the xsd file to \meta-src\types\ folder
//boolean copyXsd = utility.copyXSDFileToTypesFolder(CATEGORY_TYPE_LIBRARY, "XsAnyType2.xsd");
//assertTrue("Xsd file is not copied", copyXsd);
TestResourceUtil.copyResource("types/XsAnyType2.xsd", testingdir, "CategoryTypeLibrary/meta-src");
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
"CategoryTypeLibrary",
"-type",
"XsAnyType2.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
//validate the content of TypeInformation.xml
String TIXmlCodegenPath = utility.getTypeInformationXMLPath(PROJECT_ROOT_CATEGORY, CATEGORY_TYPE_LIBRARY, null);
String TIXmlVanillaPath = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeXsAnyType2/"+ TYPE_INFO;
boolean typeInformationXmlCompare = utility.compareFiles(TIXmlCodegenPath, TIXmlVanillaPath);
assertTrue("TypeInformation.xml content did not match", typeInformationXmlCompare);
String javaFileCodegenCopy = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"XsAnyType2.java",
null);
String javaFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-src/org/ebayopensource/soaframework/examples/config/addTypeXsAnyType2/XsAnyType2.java";
;
boolean javaFileCompare = compareFiles(new File(javaFileCodegenCopy), new File(javaFileVanillaCopy));
assertTrue("XsAnyType2.java file content does not match", javaFileCompare);
} catch (Exception e) {
e.printStackTrace();
assertTrue("No exception should be thrown. Exception:"+e.getMessage(), false);
}
}
/**
* Positive Testcase for ComplexType xsd which is dependent on Simple type from same Library.
* CategoryRelease.xsd is a Complex Type xsd which is dependent on CategoryName.xsd which is Simple type.
* Both the xsd are part of Library CategoryTypeLibrary.
*
* Artifacts Validated:
* Codegen copy location: \AntTests\CategoryTypeLibrary\gen-meta-src\META-INF\CategoryTypeLibrary\
* Vanilla copy location: \Vanilla-Codegen\TypeLibraryCodegen\CategoryTypeLibrary\gen-meta-src\META-INF\CategoryTypeLibrary\addTypeDepOnSimpleTypeSameLib\
* 1.TypeInformation.xml
* 2.CategoryRelease.episode
* 3.sun-jaxb.episode
*
* Codegen copy location: \AntTests\CategoryTypeLibrary\gen-src\com\ebay\soaframework\examples\config\
* Vanilla copy location: \Vanilla-Codegen\TypeLibraryCodegen\CategoryTypeLibrary\gen-src\com\ebay\soaframework\examples\config\addTypeDepOnSimpleTypeSameLib\
* 1.CategoryRelease.java
* 2.CategoryName.java
* @throws IOException
*
*/
@Test
public void testGenTypeAddTypeDepOnSimpleTypeSameLib() throws IOException {
String VANILLA_INFO = "addTypeDepOnSimpleTypeSameLib";
//Create TypeLibrary CategoryTypeLibrary.
boolean createLibraryFlag = createTypeLibrary();
System.out.println("Library Creation status:" + createLibraryFlag);
assertTrue("CategoryLibrary is not created", createLibraryFlag);
//Copy the xsd file to \meta-src\types\ folder
//boolean copyXsd = utility.copyXSDFileToTypesFolder(CATEGORY_TYPE_LIBRARY, "CategoryRelease.xsd");
//assertTrue("Xsd file is not copied", copyXsd);
//boolean copyXsd1 = utility.copyXSDFileToTypesFolder1(CATEGORY_TYPE_LIBRARY,CATEGORY_TYPE_LIBRARY, "CategoryName.xsd");
//assertTrue("Xsd file is not copied", copyXsd1);
TestResourceUtil.copyResource("types/CategoryRelease.xsd", testingdir, "CategoryTypeLibrary/meta-src");
TestResourceUtil.copyResource("types/CategoryName.xsd", testingdir, "CategoryTypeLibrary/meta-src");
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
"CategoryTypeLibrary",
"-type",
"CategoryRelease.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
//validate the content of TypeInformation.xml
String TIXmlCodegenPath = utility.getTypeInformationXMLPath(PROJECT_ROOT_CATEGORY, CATEGORY_TYPE_LIBRARY, null);
String TIXmlVanillaPath = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeDepOnSimpleTypeSameLib/"+ TYPE_INFO;
boolean typeInformationXmlCompare = utility.compareFiles(TIXmlCodegenPath, TIXmlVanillaPath);
assertTrue("TypeInformation.xml content did not match", typeInformationXmlCompare);
//Validate the contents of CategorySales.java
String javaFileCodegenCopy = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryRelease.java",
null);
String javaFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-src/org/ebayopensource/soaframework/examples/config/addTypeDepOnSimpleTypeSameLib/CategoryRelease.java";
;
boolean javaFileCompare = utility.compareFiles(javaFileCodegenCopy, javaFileVanillaCopy);
assertTrue("CategoryRelease.java file content does not match", javaFileCompare);
//Validate the contents of CategoryProduct.java
String javaFileCodegenCopy1 = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryName.java",
null);
String javaFileVanillaCopy1 = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-src/org/ebayopensource/soaframework/examples/config/addTypeDepOnSimpleTypeSameLib/CategoryName.java";
;
boolean javaFileCompare1 = utility.compareFiles(javaFileCodegenCopy1, javaFileVanillaCopy1);
assertTrue("CategoryName.java file content does not match", javaFileCompare1);
//Validate the content of CategorySales.episode file
String episodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryRelease.episode",
null);
String episodeFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeDepOnSimpleTypeSameLib/CategoryRelease.episode";
boolean episodeFileCompare = utility.compareFiles(episodeFileCodegenCopy, episodeFileVanillaCopy);
assertTrue("CategoryRelease.episode content does not match.", episodeFileCompare);
//Validate the contents of Sun-jaxb.episode
String masterEpisodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"sun-jaxb.episode",
null);
String masterEpisodeFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeDepOnSimpleTypeSameLib/"+ SUN_EPISODE;
boolean masterEpisodeCompare = utility.compareFiles(masterEpisodeFileCodegenCopy, masterEpisodeFileVanillaCopy);
//assertTrue("Sun-jaxb.episode content does not match", masterEpisodeCompare);
} catch (Exception e) {
e.printStackTrace();
assertTrue("No exception should be thrown." + e.getMessage(), false);
}
}
/**
* This will check for following scenario.
* If Type CategoryName is already is existance, then addition of any type dependent
* on CategoryName should not regenerate the CategoryName.java.
* @throws IOException
*
*/
@Test
public void testGenTypeAddTypeDepOnSimpleTypeSameLibNeg() throws IOException {
//Create TypeLibrary CategoryTypeLibrary.
boolean createLibraryFlag = createTypeLibrary();
System.out.println("Library Creation status:" + createLibraryFlag);
assertTrue("CategoryLibrary is not created", createLibraryFlag);
//Copy the xsd file to \meta-src\types\ folder
//boolean copyXsd = utility.copyXSDFileToTypesFolder(CATEGORY_TYPE_LIBRARY, "CategoryRelease.xsd");
//assertTrue("Xsd file is not copied", copyXsd);
TestResourceUtil.copyResource("types/CategoryRelease.xsd", testingdir, "CategoryTypeLibrary/meta-src");
TestResourceUtil.copyResource("types/CategoryName.xsd", testingdir, "CategoryTypeLibrary/meta-src");
//boolean copyXsd1 = utility.copyXSDFileToTypesFolder1(CATEGORY_TYPE_LIBRARY,CATEGORY_TYPE_LIBRARY, "CategoryName.xsd");
//assertTrue("Xsd file is not copied", copyXsd1);
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
"CategoryTypeLibrary",
"-type",
"CategoryName.xsd" };
String[] pluginParameter1 = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
"CategoryTypeLibrary",
"-type",
"CategoryRelease.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
utility.waitForExecution(2);
sGenerator.startCodeGen(pluginParameter1);
//Validate the generation time of CategoryName.java
String pathCategoryNameJava = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryName.java",
null);
String pathCategoryReleaseJava = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryRelease.java",
null);
long categoryNameJavaCreationTime = utility.getFileCreationTime(pathCategoryNameJava);
long categoryReleaseJavaCreationTime = utility.getFileCreationTime(pathCategoryReleaseJava);
if((categoryNameJavaCreationTime - categoryReleaseJavaCreationTime)>=(2*1000)){
assertTrue("CategoryName.java is not getting regenerated.", false);
}
} catch (Exception e) {
e.printStackTrace();
assertTrue("No exception should be thrown." + e.getMessage(), false);
}
}
@Test
public void testSetProductTypeLibrary() {
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeCreateTypeLibrary",
"-pr",
PROJECT_ROOT_PRODUCT,
"-libname",
PRODUCT_TYPE_LIBRARY,
"-libVersion",
"1.2.3",
"-libNamespace",
"http://www.ebayopensource.org/soaframework/examples/config" };
try {
sGenerator.startCodeGen(pluginParameter);
//boolean copyProductNameXsd = utility.copyXSDFileToTypesFolder1(PRODUCT_TYPE_LIBRARY,PRODUCT_TYPE_LIBRARY, "ProductName.xsd");
//boolean copyProductSaleXsd = utility.copyXSDFileToTypesFolder1(PRODUCT_TYPE_LIBRARY,PRODUCT_TYPE_LIBRARY, "ProductSale.xsd");
//boolean copyProductPriceXsd = utility.copyXSDFileToTypesFolder1(PRODUCT_TYPE_LIBRARY,PRODUCT_TYPE_LIBRARY, "ProductPrice.xsd");
//boolean copyProductReleaseXsd = utility.copyXSDFileToTypesFolder1(PRODUCT_TYPE_LIBRARY,PRODUCT_TYPE_LIBRARY, "ProductRelease.xsd");
//boolean copyProductInformationXsd = utility.copyXSDFileToTypesFolder1(PRODUCT_TYPE_LIBRARY,PRODUCT_TYPE_LIBRARY,
// "ProductInformation.xsd");
TestResourceUtil.copyResource("types/ProductName.xsd", testingdir, "ProductTypeLibrary/meta-src");
TestResourceUtil.copyResource("types/ProductSale.xsd", testingdir, "ProductTypeLibrary/meta-src");
TestResourceUtil.copyResource("types/ProductPrice.xsd", testingdir, "ProductTypeLibrary/meta-src");
TestResourceUtil.copyResource("types/ProductRelease.xsd", testingdir, "ProductTypeLibrary/meta-src");
TestResourceUtil.copyResource("types/ProductInformation.xsd", testingdir, "ProductTypeLibrary/meta-src");
//utility.setClassPath();
String[] typesParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_PRODUCT,
"-libname",
PRODUCT_TYPE_LIBRARY,
"-type",
"ProductName.xsd",
"-type",
"ProductPrice.xsd",
"-type",
"ProductSale.xsd",
"-type",
"ProductRelease.xsd",
"-type",
"ProductInformation.xsd" };
sGenerator.startCodeGen(typesParameter);
} catch (Exception e) {
e.printStackTrace();
assertTrue("No exception should be thrown."+ e.getMessage(), false);
}
}
/**
* In this Test case, the CategoryInformation.xsd is dependent on ProductName.xsd
* ProductName.xsd is a simple type and is present in Library ProductTypeLibrary.
* CategoryInformation.xsd is a complex type and is dpresent in Library CategoryTypeLibrary.
* @throws IOException
*
*/
@Test
public void testGenTypeAddTypeDepOnSimpleTypeDiffLib() throws IOException {
String VANILLA_INFO = "addTypeDepOnSimpleTypeDiffLib";
//Create TypeLibrary CategoryTypeLibrary.
boolean createLibraryFlag = createTypeLibrary();
System.out.println("Library Creation status:" + createLibraryFlag);
assertTrue("CategoryLibrary is not created", createLibraryFlag);
boolean createLibraryFlag1 = createTypeLibrary1();
System.out.println("Library Creation status:" + createLibraryFlag1);
assertTrue("ProductLibrary is not created", createLibraryFlag1);
//Copy the xsd file to \meta-src\types\CategoryTypeLibrary\ folder
//boolean copyXsd = utility.copyXSDFileToTypesFolder(CATEGORY_TYPE_LIBRARY, "CategoryInformation.xsd");
//assertTrue("Xsd file is not copied", copyXsd);
//Copy the xsd file to \meta-src\types\ folder
//boolean copyXsd1 = utility.copyXSDFileToTypesFolder1(PRODUCT_TYPE_LIBRARY,CATEGORY_TYPE_LIBRARY, "ProductName.xsd");
//assertTrue("Xsd file is not copied" , copyXsd1);
TestResourceUtil.copyResource("types/CategoryInformation.xsd", testingdir, "CategoryTypeLibrary/meta-src");
TestResourceUtil.copyResource("types/ProductName.xsd", testingdir, "ProductTypeLibrary/meta-src");
//boolean classPathFlag = utility.setClassPath();
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
CATEGORY_TYPE_LIBRARY,
"-type",
"CategoryInformation.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
//validate the content of TypeInformation.xml
String TIXmlCodegenPath = utility.getTypeInformationXMLPath(PROJECT_ROOT_CATEGORY, CATEGORY_TYPE_LIBRARY, null);
String TIXmlVanillaPath = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeDepOnSimpleTypeDiffLib/"+ TYPE_INFO;
boolean typeInformationXmlCompare = utility.compareFiles(TIXmlCodegenPath, TIXmlVanillaPath);
assertTrue("TypeInformation.xml content did not match", typeInformationXmlCompare);
//Validate the contents of CategorySales.java
String javaFileCodegenCopy = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryInformation.java",
null);
String javaFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-src/org/ebayopensource/soaframework/examples/config/addTypeDepOnSimpleTypeDiffLib/CategoryInformation.java";
boolean javaFileCompare = utility.compareFiles(javaFileCodegenCopy, javaFileVanillaCopy);
assertTrue("CategoryInformation.java file content does not match", javaFileCompare);
//Validate the content of CategorySales.episode file
String episodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryInformation.episode",
null);
String episodeFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeDepOnSimpleTypeDiffLib/CategoryInformation.episode";
boolean episodeFileCompare = utility.compareFiles(episodeFileCodegenCopy, episodeFileVanillaCopy);
assertTrue("CategorySales.episode content does not match.", episodeFileCompare);
//Validate the contents of Sun-jaxb.episode
String masterEpisodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"sun-jaxb.episode",
null);
String masterEpisodeFileVanillaCopy = getTestResrcDir().getAbsolutePath() + "/TypeLibraryCodegen/CategoryTypeLibrary/gen-meta-src/META-INF/CategoryTypeLibrary/addTypeDepOnSimpleTypeDiffLib/"+SUN_EPISODE;
boolean masterEpisodeCompare = utility.compareFiles(masterEpisodeFileCodegenCopy, masterEpisodeFileVanillaCopy);
assertTrue("Sun-jaxb.episode content does not match", masterEpisodeCompare);
} catch (Exception e) {
e.printStackTrace();
assertTrue("No exception should be thrown. Following exception is thrown: "+e, false);
}
}
/*@Test
public void testGenTypeAddTypeDepOnComplexTypeDiffLib() {
String VANILLA_INFO = "addTypeFromComplexTypeDiffLib";
//Copy the xsd file to \meta-src\types\ folder
boolean copyXsd = utility.copyXSDFileToTypesFolder(CATEGORY_TYPE_LIBRARY, "CategoryProduct.xsd");
assertTrue("Xsd file is not copied", copyXsd);
boolean copyXsd1 = utility.copyXSDFileToTypesFolder(CATEGORY_TYPE_LIBRARY, "CategorySales.xsd");
assertTrue("Xsd file is not copied", copyXsd1);
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
"CategoryTypeLibrary",
"-type",
"CategorySales.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
//validate the content of TypeInformation.xml
String TIXmlCodegenPath = utility.getTypeInformationXMLPath(PROJECT_ROOT_CATEGORY, CATEGORY_TYPE_LIBRARY, null);
String TIXmlVanillaPath = utility.getTypeInformationXMLPath(GOLD_COPY_ROOT + "\\" + CATEGORY_TYPE_LIBRARY,
CATEGORY_TYPE_LIBRARY,
VANILLA_INFO);
boolean typeInformationXmlCompare = utility.compareFiles(TIXmlCodegenPath, TIXmlVanillaPath);
assertTrue("TypeInformation.xml content did not match", typeInformationXmlCompare);
//Validate the contents of CategorySales.java
String javaFileCodegenCopy = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategorySales.java",
null);
String javaFileVanillaCopy = utility.getGeneratedJavaFilePath(GOLD_COPY_ROOT + "\\" + CATEGORY_TYPE_LIBRARY,
CATEGORY_TYPE_LIBRARY,
"CategorySales.java",
VANILLA_INFO);
;
boolean javaFileCompare = utility.compareFiles(javaFileCodegenCopy, javaFileVanillaCopy);
assertTrue("CategorySales.java file content does not match", javaFileCompare);
//Validate the contents of CategoryProduct.java
String javaFileCodegenCopy1 = utility.getGeneratedJavaFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategoryProduct.java",
null);
String javaFileVanillaCopy1 = utility.getGeneratedJavaFilePath(GOLD_COPY_ROOT + "\\" + CATEGORY_TYPE_LIBRARY,
CATEGORY_TYPE_LIBRARY,
"CategoryProduct.java",
VANILLA_INFO);
;
boolean javaFileCompare1 = utility.compareFiles(javaFileCodegenCopy1, javaFileVanillaCopy1);
assertTrue("CategorySales.java file content does not match", javaFileCompare1);
//Validate the content of CategorySales.episode file
String episodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"CategorySales.episode",
null);
String episodeFileVanillaCopy = utility.getEpisodeFilePath(GOLD_COPY_ROOT + "\\" + CATEGORY_TYPE_LIBRARY,
CATEGORY_TYPE_LIBRARY,
"CategorySales.episode",
VANILLA_INFO);
boolean episodeFileCompare = utility.compareFiles(episodeFileCodegenCopy, episodeFileVanillaCopy);
assertTrue("CategorySales.episode content does not match.", episodeFileCompare);
//Validate the contents of Sun-jaxb.episode
String masterEpisodeFileCodegenCopy = utility.getEpisodeFilePath(PROJECT_ROOT_CATEGORY,
CATEGORY_TYPE_LIBRARY,
"sun-jaxb.episode",
null);
String masterEpisodeFileVanillaCopy = utility.getEpisodeFilePath(GOLD_COPY_ROOT + "\\" + CATEGORY_TYPE_LIBRARY,
CATEGORY_TYPE_LIBRARY,
"sun-jaxb.episode",
VANILLA_INFO);
boolean masterEpisodeCompare = utility.compareFiles(masterEpisodeFileCodegenCopy, masterEpisodeFileVanillaCopy);
assertTrue("Sun-jaxb.episode content does not match", masterEpisodeCompare);
} catch (Exception e) {
e.printStackTrace();
assertTrue("No exception should be thrown.", false);
}
}*/
/**
* This testcase is for input options without value for '-pr'
*
*/
@Test
public void testGenTypeAddTypePrValueMissing() {
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
"-libname",
"CategoryTypeLibrary",
"-type",
"CategoryName.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
} catch (Exception e) {
e.printStackTrace();
String exceptionClass = "org.ebayopensource.turmeric.tools.codegen.exception.BadInputValueException";
String exceptionMessage = "Please provide a value for the option -pr";
assertTrue("Expected Exception message: " + exceptionMessage + " || Actual Exception message:" + e.getMessage(),
e.getMessage().contains(exceptionMessage));
assertTrue("Expected Exception Class: " + exceptionClass, e.getClass().getName().equals(exceptionClass));
}
}
/**
* This testcase for input options without '-pr' option.
*
*/
@Test
public void testGenTypeAddTypePrIsMissing() {
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-libname",
"CategoryTypeLibrary",
"-type",
"CategoryName.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
} catch (Exception e) {
e.printStackTrace();
String exceptionClass = "org.ebayopensource.turmeric.tools.codegen.exception.MissingInputOptionException";
String exceptionMessage = "Project Root is missing.";
assertTrue("Expected Exception message:" + exceptionMessage + " || Actual Exception message:" + e.getMessage(),
e.getMessage().contains(exceptionMessage));
assertTrue("Expected Exception Class:" + exceptionClass + ", Actual:" + e.getClass().getName(), e.getClass()
.getName()
.equals(exceptionClass));
}
}
/**
* This testcase is for "" value of option '-pr'.
*
*/
@Test
public void testGenTypeAddTypePrEmptyString() {
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
"",
"-libname",
"CategoryTypeLibrary",
"-type",
"CategoryName.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
} catch (Exception e) {
e.printStackTrace();
String exceptionClass = "org.ebayopensource.turmeric.tools.codegen.exception.BadInputValueException";
String exceptionMessage = "Please provide a proper value for the option -pr";
assertTrue("Expected Exception message:" + exceptionMessage + " || Actual Exception message:" + e.getMessage(),
e.getMessage().contains(exceptionMessage));
assertTrue("Expected Exception Class:" + exceptionClass + ", Actual:" + e.getClass().getName(), e.getClass()
.getName()
.equals(exceptionClass));
}
}
/**
* This testcase is for missing option value for '-libname'.
*
*/
@Test
public void testGenTypeAddTypeLibNameValueMissing() {
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype", "genTypeAddType", "-pr", PROJECT_ROOT_CATEGORY, "-libname" };
try {
sGenerator.startCodeGen(pluginParameter);
} catch (Exception e) {
e.printStackTrace();
String exceptionClass = "org.ebayopensource.turmeric.tools.codegen.exception.BadInputValueException";
String exceptionMessage = "Missing parameter for '-libname' option.";
assertTrue("Expected Exception message:" + exceptionMessage + " || Actual Exception message:" + e.getMessage(),
e.getMessage().contains(exceptionMessage));
assertTrue("Expected Exception Class:" + exceptionClass + ", Actual:" + e.getClass().getName(), e.getClass()
.getName()
.equals(exceptionClass));
}
}
/**
* This testcase is for missing input option '-libname'
*
*/
@Test
public void testGenTypeAddTypeLibNameIsMissing() {
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype", "genTypeAddType", "-pr", PROJECT_ROOT_CATEGORY, "CategoryTypeLibrary" };
try {
sGenerator.startCodeGen(pluginParameter);
} catch (Exception e) {
e.printStackTrace();
String exceptionClass = "org.ebayopensource.turmeric.tools.codegen.exception.BadInputOptionException";
String exceptionMessage = "Invalid option categorytypelibrary specified. This option is not recognized.";
assertTrue("Expected Exception message:" + exceptionMessage + " || Actual Exception message:" + e.getMessage(),
e.getMessage().contains(exceptionMessage));
assertTrue("Expected Exception Class:" + exceptionClass + ", Actual:" + e.getClass().getName(), e.getClass()
.getName()
.equals(exceptionClass));
}
}
/**
* This testcase if for "" value for option '-libname'
*
*/
@Test
public void testGenTypeAddTypeLibNameEmptyString() {
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype", "genTypeAddType", "-pr", PROJECT_ROOT_CATEGORY, "-libname", "" };
try {
sGenerator.startCodeGen(pluginParameter);
} catch (Exception e) {
e.printStackTrace();
String exceptionClass = "org.ebayopensource.turmeric.tools.codegen.exception.BadInputValueException";
String exceptionMessage = "Please provide a proper value for the option -libname";
assertTrue("Expected Exception message:" + exceptionMessage + " || Actual Exception message:" + e.getMessage(),
e.getMessage().contains(exceptionMessage));
assertTrue("Expected Exception Class:" + exceptionClass + ", Actual:" + e.getClass().getName(), e.getClass()
.getName()
.equals(exceptionClass));
}
}
/**
* This testcase is for missing '-type' value.
*
*/
@Test
public void testGenTypeAddTypeTypeValueMissing() {
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
CATEGORY_TYPE_LIBRARY,
"-type" };
try {
sGenerator.startCodeGen(pluginParameter);
} catch (Exception e) {
e.printStackTrace();
String exceptionClass = "org.ebayopensource.turmeric.tools.codegen.exception.BadInputValueException";
String exceptionMessage = "Missing parameter for '-type' option.";
assertTrue("Expected Exception message:" + exceptionMessage + " || Actual Exception message:" + e.getMessage(),
e.getMessage().contains(exceptionMessage));
assertTrue("Expected Exception Class:" + exceptionClass + ", Actual:" + e.getClass().getName(), e.getClass()
.getName()
.equals(exceptionClass));
}
}
/**
* This testcase is for missing option '-type'.
*
*/
@Test
public void testGenTypeAddTypeTypeIsMissing() {
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libName",
"CategoryTypeLibrary",
"CategoryName.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
} catch (Exception e) {
e.printStackTrace();
String exceptionClass = "org.ebayopensource.turmeric.tools.codegen.exception.BadInputOptionException";
String exceptionMessage = "Invalid option categoryname.xsd specified. This option is not recognized.";
assertTrue("Expected Exception message:" + exceptionMessage + " || Actual Exception message:" + e.getMessage(),
e.getMessage().contains(exceptionMessage));
assertTrue("Expected Exception Class:" + exceptionClass + ", Actual:" + e.getClass().getName(), e.getClass()
.getName()
.equals(exceptionClass));
}
}
/**
* This testcase is for "" value for option '-type'.
*
*/
@Test
public void testGenTypeAddTypeTypeEmptyString() {
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
CATEGORY_TYPE_LIBRARY,
"-type",
"" };
try {
sGenerator.startCodeGen(pluginParameter);
} catch (Exception e) {
e.printStackTrace();
String exceptionClass = "org.ebayopensource.turmeric.tools.codegen.exception.BadInputValueException";
String exceptionMessage = "Please provide a proper value for the option -type";
assertTrue("Expected Exception message:" + exceptionMessage + " || Actual Exception message:" + e.getMessage(),
e.getMessage().contains(exceptionMessage));
assertTrue("Expected Exception Class:" + exceptionClass + ", Actual:" + e.getClass().getName(), e.getClass()
.getName()
.equals(exceptionClass));
}
}
/**
* This tescase is for invalid xsd.
*
*/
@Test
public void testGenTypeAddTypeTypeInvalidXsd() {
boolean createLibraryFlag = createTypeLibrary();
System.out.println("Library Creation status:" + createLibraryFlag);
assertTrue("CategoryLibrary is not created", createLibraryFlag);
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeAddType",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
CATEGORY_TYPE_LIBRARY,
"-type",
"Type.xsd" };
try {
sGenerator.startCodeGen(pluginParameter);
} catch (Exception e) {
e.printStackTrace();
String exceptionClass = "org.ebayopensource.turmeric.tools.codegen.exception.CodeGenFailedException";
String exceptionMessage = "Type.xsd does not exist";
assertTrue("Expected Exception message:" + exceptionMessage + " || Actual Exception message:" + e.getMessage(),
e.getMessage().contains(exceptionMessage));
assertTrue("Expected Exception Class:" + exceptionClass + ", Actual:" + e.getClass().getName(), e.getClass()
.getName()
.equals(exceptionClass));
}
}
private boolean createTypeLibrary() {
boolean flag = false;
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeCreateTypeLibrary",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
CATEGORY_TYPE_LIBRARY,
"-libVersion",
"1.2.3",
"-libNamespace",
"http://www.ebayopensource.org/soaframework/examples/config" };
try {
sGenerator.startCodeGen(pluginParameter);
flag = true;
} catch (Exception e) {
e.printStackTrace();
flag = false;
}
return flag;
}
private boolean createTypeLibrary1() {
boolean flag = false;
ServiceGenerator sGenerator = new ServiceGenerator();
String[] pluginParameter = { "-gentype",
"genTypeCreateTypeLibrary",
"-pr",
PROJECT_ROOT_CATEGORY,
"-libname",
PRODUCT_TYPE_LIBRARY,
"-libVersion",
"1.2.3",
"-libNamespace",
"http://www.ebayopensource.org/diff/soaframework/examples/config" };
try {
sGenerator.startCodeGen(pluginParameter);
flag = true;
} catch (Exception e) {
e.printStackTrace();
flag = false;
}
return flag;
}
public static void main(String[] args) {
GenTypeAddTypeQETest test = new GenTypeAddTypeQETest();
//test.testGenTypeAddTypeFromSimpleType();
//test.testGenTypeAddTypeFromComplexType();
//test.testGenTypeAddTypeDepOnComplexTypeSameLib();
//test.testGenTypeAddTypeDepOnSimpleTypeSameLib();
//test.testGenTypeAddTypeDepOnSimpleTypeSameLibNeg();
//test.testGenTypeAddTypeDepOnSimpleTypeDiffLib();
//test.testGenTypeAddTypeDepOnComplexTypeDiffLib();
test.testGenTypeAddTypeTypeInvalidXsd();
}
}