use of org.eclipse.xsd.XSDModelGroup in project tmdm-studio-se by Talend.
the class UtilTest method testGetTopParent.
@Test
public void testGetTopParent() {
//
List<Object> topParent = Util.getTopParent(null);
assertNull(topParent);
XSDFactory factory = XSDFactory.eINSTANCE;
//
XSDElementDeclaration concept = factory.createXSDElementDeclaration();
topParent = Util.getTopParent(concept);
assertNull(topParent);
// concept with three children
// $NON-NLS-1$
String element1 = "Id";
// $NON-NLS-1$
String element2 = "code";
// $NON-NLS-1$
String element3 = "address";
XSDSchema xsdSchema = factory.createXSDSchema();
xsdSchema.getContents().add(concept);
XSDComplexTypeDefinition xsdComplexTypeDef = factory.createXSDComplexTypeDefinition();
xsdComplexTypeDef.setBaseTypeDefinition(// $NON-NLS-1$
xsdSchema.resolveComplexTypeDefinition(xsdSchema.getSchemaForSchemaNamespace(), "anyType"));
concept.setAnonymousTypeDefinition(xsdComplexTypeDef);
XSDParticle xsdParticle = factory.createXSDParticle();
xsdComplexTypeDef.setContent(xsdParticle);
XSDModelGroup xsdModelGroup = factory.createXSDModelGroup();
xsdParticle.setContent(xsdModelGroup);
XSDParticle childParticle1 = factory.createXSDParticle();
XSDElementDeclaration childElement1 = factory.createXSDElementDeclaration();
childElement1.setName(element1);
childParticle1.setContent(childElement1);
XSDParticle childParticle2 = factory.createXSDParticle();
XSDElementDeclaration childElement2 = factory.createXSDElementDeclaration();
childElement2.setName(element2);
childParticle2.setContent(childElement2);
XSDParticle childParticle3 = factory.createXSDParticle();
XSDElementDeclaration childElement3 = factory.createXSDElementDeclaration();
childElement3.setName(element3);
childParticle3.setContent(childElement3);
xsdModelGroup.getContents().add(childParticle1);
xsdModelGroup.getContents().add(childParticle2);
xsdModelGroup.getContents().add(childParticle3);
XSDIdentityConstraintDefinition xsdIdConsDef = factory.createXSDIdentityConstraintDefinition();
concept.getIdentityConstraintDefinitions().add(xsdIdConsDef);
XSDXPathDefinition xsdXPathDefinition1 = factory.createXSDXPathDefinition();
xsdXPathDefinition1.setValue(element1);
XSDXPathDefinition xsdXPathDefinition2 = factory.createXSDXPathDefinition();
xsdXPathDefinition2.setValue(element2);
xsdIdConsDef.getFields().add(xsdXPathDefinition1);
xsdIdConsDef.getFields().add(xsdXPathDefinition2);
// complex type with one child
XSDComplexTypeDefinition xsdComplexTypeDef2 = factory.createXSDComplexTypeDefinition();
xsdComplexTypeDef2.setBaseTypeDefinition(// $NON-NLS-1$
xsdSchema.resolveComplexTypeDefinition(xsdSchema.getSchemaForSchemaNamespace(), "anyType"));
XSDParticle xsdParticle2 = factory.createXSDParticle();
xsdComplexTypeDef2.setContent(xsdParticle2);
XSDModelGroup xsdModelGroup2 = factory.createXSDModelGroup();
xsdParticle2.setContent(xsdModelGroup2);
XSDParticle childParticle_2 = factory.createXSDParticle();
XSDElementDeclaration childElement_2 = factory.createXSDElementDeclaration();
childElement_2.setName(element1);
childParticle_2.setContent(childElement_2);
xsdModelGroup2.getContents().add(childParticle_2);
xsdSchema.getContents().add(xsdComplexTypeDef2);
//
topParent = Util.getTopParent(childElement1);
assertNotNull(topParent);
assertTrue(topParent.size() == 2);
//
topParent = Util.getTopParent(childElement_2);
assertNull(topParent);
}
use of org.eclipse.xsd.XSDModelGroup in project tmdm-studio-se by Talend.
the class UtilTest method testIsSimpleTypedParticle.
@Test
public void testIsSimpleTypedParticle() {
boolean isSimpleTypedParticle = Util.isSimpleTypedParticle(null);
assertFalse(isSimpleTypedParticle);
XSDFactory factory = XSDFactory.eINSTANCE;
XSDParticle particle = factory.createXSDParticle();
isSimpleTypedParticle = Util.isSimpleTypedParticle(particle);
assertFalse(isSimpleTypedParticle);
XSDElementDeclaration elementDeclaration = factory.createXSDElementDeclaration();
elementDeclaration.setTypeDefinition(factory.createXSDSimpleTypeDefinition());
particle.setContent(elementDeclaration);
isSimpleTypedParticle = Util.isSimpleTypedParticle(particle);
assertTrue(isSimpleTypedParticle);
XSDModelGroup modelGroup = factory.createXSDModelGroup();
particle.setContent(modelGroup);
isSimpleTypedParticle = Util.isSimpleTypedParticle(particle);
assertFalse(isSimpleTypedParticle);
}
use of org.eclipse.xsd.XSDModelGroup in project tmdm-studio-se by Talend.
the class XSDUtilTest method testIsFirstLevelChild.
@Test
public void testIsFirstLevelChild() throws Exception {
// $NON-NLS-1$
String fileName = "Product_0.1.xsd";
// $NON-NLS-1$
String elementName = "Product";
String xsdString = TestUtil.readTestResource(XSDUtilTest.this.getClass(), fileName);
assertNotNull(xsdString);
XSDSchema xsdSchema = Util.getXSDSchema(xsdString);
XSDElementDeclaration decl = null;
for (XSDElementDeclaration element : xsdSchema.getElementDeclarations()) {
if (element.getName().equals(elementName)) {
decl = element;
}
}
if (decl != null) {
XSDComplexTypeDefinition ctypeDefinition = (XSDComplexTypeDefinition) decl.getTypeDefinition();
XSDComplexTypeContent content = ctypeDefinition.getContent();
if (content instanceof XSDParticle) {
XSDParticle xsdParticle = (XSDParticle) content;
XSDParticleContent particleContent = xsdParticle.getContent();
if (particleContent instanceof XSDModelGroup) {
XSDModelGroup modelGroup = (XSDModelGroup) particleContent;
EList<XSDParticle> contents = modelGroup.getContents();
for (XSDParticle particle : contents) {
assertTrue(XSDUtil.isFirstLevelChild(particle));
if (particle.getTerm() instanceof XSDElementDeclaration) {
XSDElementDeclaration xsdElementDecl = (XSDElementDeclaration) particle.getTerm();
XSDTypeDefinition typeDefinition = xsdElementDecl.getTypeDefinition();
if (typeDefinition instanceof XSDComplexTypeDefinition) {
XSDParticle childPart = (XSDParticle) ((XSDComplexTypeDefinition) typeDefinition).getContent();
XSDModelGroup childModelGroup = (XSDModelGroup) childPart.getContent();
for (XSDParticle childParticle : childModelGroup.getContents()) {
assertFalse(XSDUtil.isFirstLevelChild(childParticle));
}
}
}
}
}
}
}
}
use of org.eclipse.xsd.XSDModelGroup in project tmdm-studio-se by Talend.
the class UtilMockTest method testGetComplexChilds.
@Test
public void testGetComplexChilds() {
// $NON-NLS-1$
String methodToExecute = "getComplexChilds";
// $NON-NLS-1$
String method_getChildElements = "getChildElements";
// $NON-NLS-1$
String parentxpath = "";
// $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
String[] names = { "simpleA", "complexB", "simpleC", "complexD" };
// $NON-NLS-1$ //$NON-NLS-2$
String[] childpath = { "child/aa", "child/bb" };
boolean onlyTopLevel = false;
Set<Object> visited = new HashSet<Object>();
XSDFactory factory = XSDFactory.eINSTANCE;
XSDComplexTypeDefinition complexTypeDef = factory.createXSDComplexTypeDefinition();
PowerMockito.mockStatic(Util.class);
try {
PowerMockito.when(Util.class, methodToExecute, anyString(), any(XSDComplexTypeDefinition.class), anyBoolean(), anySet()).thenCallRealMethod();
Map<String, XSDParticle> complexChilds = Whitebox.invokeMethod(Util.class, methodToExecute, parentxpath, complexTypeDef, true, null);
assertNotNull(complexChilds);
assertTrue(complexChilds.isEmpty());
//
Map<String, XSDParticle> childElements1 = new HashMap<String, XSDParticle>();
XSDParticle childParticle1 = factory.createXSDParticle();
XSDParticle childParticle2 = factory.createXSDParticle();
childElements1.put(childpath[0], childParticle1);
childElements1.put(childpath[1], childParticle2);
PowerMockito.when(Util.class, method_getChildElements, anyString(), any(XSDComplexTypeDefinition.class), anyBoolean(), anySet()).thenReturn(childElements1);
XSDModelGroup group = factory.createXSDModelGroup();
for (int i = 0; i < names.length; i++) {
XSDParticle particle = factory.createXSDParticle();
XSDElementDeclaration elementDecl = factory.createXSDElementDeclaration();
XSDTypeDefinition xsdType = factory.createXSDSimpleTypeDefinition();
if (i % 2 != 0) {
xsdType = factory.createXSDComplexTypeDefinition();
}
elementDecl.setTypeDefinition(xsdType);
elementDecl.setName(names[i]);
particle.setTerm(elementDecl);
group.getParticles().add(particle);
}
XSDParticle typeParticle = factory.createXSDParticle();
typeParticle.setTerm(group);
complexTypeDef.setContent(typeParticle);
complexChilds = Whitebox.invokeMethod(Util.class, methodToExecute, parentxpath, complexTypeDef, onlyTopLevel, visited);
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("simpleA"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("simpleC"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("//complexB"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("//complexD"));
if (complexChilds.size() == 6) {
assertTrue(complexChilds.keySet().contains(childpath[0]));
assertTrue(complexChilds.keySet().contains(childpath[1]));
}
onlyTopLevel = true;
complexChilds = Whitebox.invokeMethod(Util.class, methodToExecute, parentxpath, complexTypeDef, onlyTopLevel, visited);
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("simpleA"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("simpleC"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("//complexB"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("//complexD"));
//
// $NON-NLS-1$
parentxpath = "parentXPath";
onlyTopLevel = false;
visited.clear();
complexChilds = Whitebox.invokeMethod(Util.class, methodToExecute, parentxpath, complexTypeDef, onlyTopLevel, visited);
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("parentXPath/simpleA"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("parentXPath/simpleC"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("parentXPath//complexB"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("parentXPath//complexD"));
if (complexChilds.size() == 6) {
assertTrue(complexChilds.keySet().contains(childpath[0]));
assertTrue(complexChilds.keySet().contains(childpath[1]));
}
//
onlyTopLevel = true;
visited.clear();
complexChilds = Whitebox.invokeMethod(Util.class, methodToExecute, parentxpath, complexTypeDef, onlyTopLevel, visited);
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("parentXPath/simpleA"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("parentXPath/simpleC"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("parentXPath//complexB"));
// $NON-NLS-1$
assertTrue(complexChilds.keySet().contains("parentXPath//complexD"));
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
use of org.eclipse.xsd.XSDModelGroup in project tmdm-studio-se by Talend.
the class UtilMockTest method testIsReferrenced.
@Test
public void testIsReferrenced() {
PowerMockito.mockStatic(Util.class);
try {
// $NON-NLS-1$
String method_isReferenced = "isReferrenced";
PowerMockito.when(Util.class, method_isReferenced, Mockito.any(XSDElementDeclaration.class), Mockito.any(XSDElementDeclaration.class)).thenCallRealMethod();
XSDElementDeclaration xsdElementDeclaration1 = XSDFactory.eINSTANCE.createXSDElementDeclaration();
XSDElementDeclaration xsdElementDeclaration2 = XSDFactory.eINSTANCE.createXSDElementDeclaration();
//
boolean isReferenced = Whitebox.invokeMethod(Util.class, method_isReferenced, xsdElementDeclaration1, xsdElementDeclaration1);
assertTrue(isReferenced);
//
isReferenced = Whitebox.invokeMethod(Util.class, method_isReferenced, xsdElementDeclaration1, xsdElementDeclaration2);
assertFalse(isReferenced);
//
// $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
XSDParticle xsdParticle = buildXSDParticleWithChildren(3, new String[] { "a", "b", "c" });
XSDComplexTypeDefinition xsdComplexTypeDefinition = XSDFactory.eINSTANCE.createXSDComplexTypeDefinition();
xsdComplexTypeDefinition.setContent(xsdParticle);
xsdElementDeclaration2.setTypeDefinition(xsdComplexTypeDefinition);
isReferenced = Whitebox.invokeMethod(Util.class, method_isReferenced, xsdElementDeclaration1, xsdElementDeclaration2);
assertFalse(isReferenced);
//
XSDParticle xsdParticle1 = XSDFactory.eINSTANCE.createXSDParticle();
xsdParticle1.setTerm(xsdElementDeclaration1);
XSDModelGroup modelGroup = ((XSDModelGroup) xsdParticle.getTerm());
modelGroup.getContents().add(xsdParticle1);
isReferenced = Whitebox.invokeMethod(Util.class, method_isReferenced, xsdElementDeclaration1, xsdElementDeclaration2);
assertTrue(isReferenced);
} catch (Exception e) {
log.error(e.getMessage(), e);
}
}
Aggregations