Skip to content
This repository has been archived by the owner on Oct 28, 2019. It is now read-only.

Commit

Permalink
#221 Support Package add unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
Dufgui committed Nov 2, 2016
1 parent ea66763 commit fe33c71
Show file tree
Hide file tree
Showing 7 changed files with 184 additions and 78 deletions.
7 changes: 4 additions & 3 deletions test/editors/genmymodel_parser_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -284,12 +284,13 @@ describe('GenMyModelParser', () => {
expect(parsedData).not.to.be.null;
});
it('includes classes in package', () => {
expect(parsedData.classes['_54pHLZ-oEeawbN_F_HFDxg']).not.to.be.null;
expect(parsedData.classes['_54pHQJ-oEeawbN_F_HFDxg']).not.to.be.null;
expect(parsedData.classes['_z3DqLaFTEeawbN_F_HFDxg']).not.to.be.null;
expect(parsedData.classes['_z3DqQ6FTEeawbN_F_HFDxg']).not.to.be.null;
expect(parsedData.classNames).to.deep.eq(['A','B']);
expect(parsedData.enums['_z3DqRqFTEeawbN_F_HFDxg']).not.to.be.null;
expect(parsedData.associations['_z3DqM6FTEeawbN_F_HFDxg']).not.to.be.null;
});
});

});
describe('when passing an invalid diagram', () => {
describe('as a class has no name', () => {
Expand Down
51 changes: 41 additions & 10 deletions test/editors/modelio_parser_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -279,18 +279,49 @@ describe('ModelioParser', () => {
});
});
describe('with packages', () => {
var parserData = ParserFactory.createParser({
file: './test/xmi/modelio_packages.xmi',
databaseType: 'sql'
});
var parser = parserData.parser;
var parsedData = parser.parse(parserData.data);
describe('simple model', () => {
var parserData = ParserFactory.createParser({
file: './test/xmi/modelio_packages.xmi',
databaseType: 'sql'
});
var parser = parserData.parser;
var parsedData = parser.parse(parserData.data);

it('parses it', () => {
expect(parsedData).not.to.be.null;
it('parses it', () => {
expect(parsedData).not.to.be.null;
});
it('works by adding all the classes', () => {
expect(parsedData.classNames).to.deep.eq(['Class1', 'Class3', 'Class2']);
expect(parsedData.classes['_vC4sxHdfEeaWkfx80xqrTw']).not.to.be.null;
expect(parsedData.classes['_vC4syndfEeaWkfx80xqrTw']).not.to.be.null;
expect(parsedData.classes['_vC4sz3dfEeaWkfx80xqrTw']).not.to.be.null;
expect(parsedData.associations['_vC4sx3dfEeaWkfx80xqrTw']).not.to.be.null;
expect(parsedData.associations['_vC4szXdfEeaWkfx80xqrTw']).not.to.be.null;

});
});
it('works by adding all the classes', () => {
expect(parsedData.classNames).to.deep.eq(['Class1', 'Class3', 'Class2']);
describe('more complex model', () => {
var parserData = ParserFactory.createParser({
file: './test/xmi/modelio_packages2.xmi',
databaseType: 'sql'
});
var parser = parserData.parser;
var parsedData = parser.parse(parserData.data);

it('parses it', () => {
expect(parsedData).not.to.be.null;
});
it('works by adding all the classes', () => {
expect(parsedData.classNames).to.deep.eq(['Class1', 'Class3', 'Class2']);
expect(parsedData.classes['_bYuIdaFSEeaVvapPODu8lg']).not.to.be.null;
expect(parsedData.classes['_bYuviqFSEeaVvapPODu8lg']).not.to.be.null;
expect(parsedData.classes['_bYuvj6FSEeaVvapPODu8lg']).not.to.be.null;
expect(parsedData.enums['_bYuvi6FSEeaVvapPODu8lg']).not.to.be.null;
expect(parsedData.associations['_bYuvhaFSEeaVvapPODu8lg']).not.to.be.null;
expect(parsedData.associations['_bYuvg6FSEeaVvapPODu8lg']).not.to.be.null;
expect(parsedData.associations['_bYuvh6FSEeaVvapPODu8lg']).not.to.be.null;

});
});
});
});
Expand Down
14 changes: 13 additions & 1 deletion test/editors/parser_helper_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@

var expect = require('chai').expect,
isAnId = require('../../lib/editors/parser_helper').isAnId,
extractClassName = require('../../lib/editors/parser_helper').extractClassName;
extractClassName = require('../../lib/editors/parser_helper').extractClassName,
getXmlElementFromRawIndexes = require('../../lib/editors/parser_helper').getXmlElementFromRawIndexes;

describe('ParserHelper', () => {
describe('#isAnId', () => {
Expand Down Expand Up @@ -37,4 +38,15 @@ describe('ParserHelper', () => {
});
});
});
describe('#getXmlElementFromRawIndexes', () => {
var root = { packagedElement : [{dumb: 'dumb'}, { packagedElement: [{dumb: 'dumb'},{dumb: 'dumb'},{dumb: 'good'}]}]};
var rawIndexes = [{index: 2, path: [1]}];
var i = 0;
var xmlElt = getXmlElementFromRawIndexes(root, rawIndexes, i);

it('returns the right element', () => {
expect(xmlElt.dumb).to.eq('good');
});
});

});
5 changes: 4 additions & 1 deletion test/editors/umldesigner_parser_test.js
Original file line number Diff line number Diff line change
Expand Up @@ -368,7 +368,10 @@ This <b>sucks</b>.`
it('includes classes in package', () => {
expect(parsedData.classes['_wx0Db4PVEeaFY_lPQPbINQ']).not.to.be.null;
expect(parsedData.classes['_wx0DdoPVEeaFY_lPQPbINQ']).not.to.be.null;
expect(parsedData.classNames).to.deep.eq(['A','B']);
expect(parsedData.classNames).to.deep.eq(['B','A']);
expect(parsedData.enums['_dRpdIKFLEeaWHdu8QjKipg']).not.to.be.null;
expect(parsedData.associations['_vB6ZwKFLEeaWHdu8QjKipg']).not.to.be.null;
expect(parsedData.associations['_9ZrJgKFLEeaWHdu8QjKipg']).not.to.be.null;
});
});
});
Expand Down
90 changes: 55 additions & 35 deletions test/xmi/genmymodel_package.xmi
Original file line number Diff line number Diff line change
@@ -1,58 +1,78 @@
<?xml version="1.0" encoding="UTF-8"?>
<uml:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_54pHIJ-oEeawbN_F_HFDxg" name="model">
<eAnnotations xmi:id="_54pHIZ-oEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_54pHIp-oEeawbN_F_HFDxg" key="uuid" value="_kYuB4J-oEeawbN_F_HFDxg"/>
<details xmi:id="_54pHI5-oEeawbN_F_HFDxg" key="author" value="Dufgui"/>
<uml:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/4.0.0/UML" xmi:id="_z3DqIKFTEeawbN_F_HFDxg" name="model">
<eAnnotations xmi:id="_z3DqIaFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqIqFTEeawbN_F_HFDxg" key="uuid" value="_kYuB4J-oEeawbN_F_HFDxg"/>
<details xmi:id="_z3DqI6FTEeawbN_F_HFDxg" key="author" value="Dufgui"/>
</eAnnotations>
<packageImport xmi:id="_54pHJJ-oEeawbN_F_HFDxg">
<eAnnotations xmi:id="_54pHJZ-oEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_54pHJp-oEeawbN_F_HFDxg" key="uuid" value="_kYuB4Z-oEeawbN_F_HFDxg"/>
<packageImport xmi:id="_z3DqJKFTEeawbN_F_HFDxg">
<eAnnotations xmi:id="_z3DqJaFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqJqFTEeawbN_F_HFDxg" key="uuid" value="_kYuB4Z-oEeawbN_F_HFDxg"/>
</eAnnotations>
<importedPackage href="pathmap://UML_LIBRARIES/UMLPrimitiveTypes.library.uml#/"/>
</packageImport>
<packageImport xmi:id="_54pHJ5-oEeawbN_F_HFDxg">
<eAnnotations xmi:id="_54pHKJ-oEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_54pHKZ-oEeawbN_F_HFDxg" key="uuid" value="_kYuo8J-oEeawbN_F_HFDxg"/>
<packageImport xmi:id="_z3DqJ6FTEeawbN_F_HFDxg">
<eAnnotations xmi:id="_z3DqKKFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqKaFTEeawbN_F_HFDxg" key="uuid" value="_kYuo8J-oEeawbN_F_HFDxg"/>
</eAnnotations>
<importedPackage href="pathmap://GENMYMODEL_LIBRARIES/GenMyModelPrimitiveTypes.library.uml#/"/>
</packageImport>
<packagedElement xsi:type="uml:Package" xmi:id="_54pHKp-oEeawbN_F_HFDxg" name="jhipsterPackage">
<eAnnotations xmi:id="_54pHK5-oEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_54pHLJ-oEeawbN_F_HFDxg" key="uuid" value="_mTywsIHWEDSGzr-EIvwYWA"/>
<packagedElement xsi:type="uml:Package" xmi:id="_z3DqKqFTEeawbN_F_HFDxg" name="jhipsterPackage">
<eAnnotations xmi:id="_z3DqK6FTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqLKFTEeawbN_F_HFDxg" key="uuid" value="_mTywsIHWEDSGzr-EIvwYWA"/>
</eAnnotations>
<packagedElement xsi:type="uml:Class" xmi:id="_54pHLZ-oEeawbN_F_HFDxg" name="A">
<eAnnotations xmi:id="_54pHLp-oEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_54pHL5-oEeawbN_F_HFDxg" key="uuid" value="_oVnegIHWEDSGzr-EIvwYWA"/>
<packagedElement xsi:type="uml:Class" xmi:id="_z3DqLaFTEeawbN_F_HFDxg" name="A">
<eAnnotations xmi:id="_z3DqLqFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqL6FTEeawbN_F_HFDxg" key="uuid" value="_oVnegIHWEDSGzr-EIvwYWA"/>
</eAnnotations>
<ownedAttribute xmi:id="_z3DqMKFTEeawbN_F_HFDxg" name="testEnum" type="_z3DqRqFTEeawbN_F_HFDxg">
<eAnnotations xmi:id="_z3DqMaFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqMqFTEeawbN_F_HFDxg" key="uuid" value="_r1o6oIOBEDS157ozcj18oQ"/>
</eAnnotations>
</ownedAttribute>
</packagedElement>
<packagedElement xsi:type="uml:Association" xmi:id="_54pHMJ-oEeawbN_F_HFDxg" name="A_B" memberEnd="_54pHOJ-oEeawbN_F_HFDxg _54pHM5-oEeawbN_F_HFDxg" navigableOwnedEnd="_54pHM5-oEeawbN_F_HFDxg _54pHOJ-oEeawbN_F_HFDxg">
<eAnnotations xmi:id="_54pHMZ-oEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_54pHMp-oEeawbN_F_HFDxg" key="uuid" value="_raCRwIHWEDSGzr-EIvwYWA"/>
<packagedElement xsi:type="uml:Association" xmi:id="_z3DqM6FTEeawbN_F_HFDxg" name="A_B" memberEnd="_z3DqNqFTEeawbN_F_HFDxg _z3DqO6FTEeawbN_F_HFDxg" navigableOwnedEnd="_z3DqNqFTEeawbN_F_HFDxg _z3DqO6FTEeawbN_F_HFDxg">
<eAnnotations xmi:id="_z3DqNKFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqNaFTEeawbN_F_HFDxg" key="uuid" value="_raCRwIHWEDSGzr-EIvwYWA"/>
</eAnnotations>
<ownedEnd xmi:id="_54pHM5-oEeawbN_F_HFDxg" name="b" type="_54pHQJ-oEeawbN_F_HFDxg" association="_54pHMJ-oEeawbN_F_HFDxg">
<eAnnotations xmi:id="_54pHNJ-oEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_54pHNZ-oEeawbN_F_HFDxg" key="uuid" value="_rZ-nYIHWEDSGzr-EIvwYWA"/>
<ownedEnd xmi:id="_z3DqNqFTEeawbN_F_HFDxg" name="b" type="_z3DqQ6FTEeawbN_F_HFDxg" association="_z3DqM6FTEeawbN_F_HFDxg">
<eAnnotations xmi:id="_z3DqN6FTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqOKFTEeawbN_F_HFDxg" key="uuid" value="_rZ-nYIHWEDSGzr-EIvwYWA"/>
</eAnnotations>
<lowerValue xsi:type="uml:LiteralInteger" xmi:id="_54pHNp-oEeawbN_F_HFDxg"/>
<upperValue xsi:type="uml:LiteralUnlimitedNatural" xmi:id="_54pHN5-oEeawbN_F_HFDxg" value="*"/>
<lowerValue xsi:type="uml:LiteralInteger" xmi:id="_z3DqOaFTEeawbN_F_HFDxg"/>
<upperValue xsi:type="uml:LiteralUnlimitedNatural" xmi:id="_z3DqOqFTEeawbN_F_HFDxg" value="*"/>
</ownedEnd>
<ownedEnd xmi:id="_54pHOJ-oEeawbN_F_HFDxg" name="a" type="_54pHLZ-oEeawbN_F_HFDxg" association="_54pHMJ-oEeawbN_F_HFDxg">
<eAnnotations xmi:id="_54pHOZ-oEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_54pHOp-oEeawbN_F_HFDxg" key="uuid" value="_raBDoIHWEDSGzr-EIvwYWA"/>
<ownedEnd xmi:id="_z3DqO6FTEeawbN_F_HFDxg" name="a" type="_z3DqLaFTEeawbN_F_HFDxg" association="_z3DqM6FTEeawbN_F_HFDxg">
<eAnnotations xmi:id="_z3DqPKFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqPaFTEeawbN_F_HFDxg" key="uuid" value="_raBDoIHWEDSGzr-EIvwYWA"/>
</eAnnotations>
<lowerValue xsi:type="uml:LiteralInteger" xmi:id="_54pHO5-oEeawbN_F_HFDxg"/>
<upperValue xsi:type="uml:LiteralUnlimitedNatural" xmi:id="_54pHPJ-oEeawbN_F_HFDxg" value="1"/>
<lowerValue xsi:type="uml:LiteralInteger" xmi:id="_z3DqPqFTEeawbN_F_HFDxg"/>
<upperValue xsi:type="uml:LiteralUnlimitedNatural" xmi:id="_z3DqP6FTEeawbN_F_HFDxg" value="1"/>
</ownedEnd>
</packagedElement>
<packagedElement xsi:type="uml:Package" xmi:id="_54pHPZ-oEeawbN_F_HFDxg" name="mypackage">
<eAnnotations xmi:id="_54pHPp-oEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_54pHP5-oEeawbN_F_HFDxg" key="uuid" value="_u2xeYIHWEDSGzr-EIvwYWA"/>
<packagedElement xsi:type="uml:Package" xmi:id="_z3DqQKFTEeawbN_F_HFDxg" name="mypackage">
<eAnnotations xmi:id="_z3DqQaFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqQqFTEeawbN_F_HFDxg" key="uuid" value="_u2xeYIHWEDSGzr-EIvwYWA"/>
</eAnnotations>
<packagedElement xsi:type="uml:Class" xmi:id="_54pHQJ-oEeawbN_F_HFDxg" name="B">
<eAnnotations xmi:id="_54pHQZ-oEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_54pHQp-oEeawbN_F_HFDxg" key="uuid" value="_pSpHcIHWEDSGzr-EIvwYWA"/>
<packagedElement xsi:type="uml:Class" xmi:id="_z3DqQ6FTEeawbN_F_HFDxg" name="B">
<eAnnotations xmi:id="_z3DqRKFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqRaFTEeawbN_F_HFDxg" key="uuid" value="_pSpHcIHWEDSGzr-EIvwYWA"/>
</eAnnotations>
</packagedElement>
</packagedElement>
<packagedElement xsi:type="uml:Enumeration" xmi:id="_z3DqRqFTEeawbN_F_HFDxg" name="MyEnumeration">
<eAnnotations xmi:id="_z3DqR6FTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqSKFTEeawbN_F_HFDxg" key="uuid" value="_iUVjgIOBEDS157ozcj18oQ"/>
</eAnnotations>
<ownedLiteral xmi:id="_z3DqSaFTEeawbN_F_HFDxg" name="TOTO" classifier="_z3DqRqFTEeawbN_F_HFDxg">
<eAnnotations xmi:id="_z3DqSqFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqS6FTEeawbN_F_HFDxg" key="uuid" value="_ji5oYIOBEDS157ozcj18oQ"/>
</eAnnotations>
</ownedLiteral>
<ownedLiteral xmi:id="_z3DqTKFTEeawbN_F_HFDxg" name="TITI" classifier="_z3DqRqFTEeawbN_F_HFDxg">
<eAnnotations xmi:id="_z3DqTaFTEeawbN_F_HFDxg" source="genmymodel">
<details xmi:id="_z3DqTqFTEeawbN_F_HFDxg" key="uuid" value="_kd9icIOBEDS157ozcj18oQ"/>
</eAnnotations>
</ownedLiteral>
</packagedElement>
</packagedElement>
</uml:Model>
39 changes: 39 additions & 0 deletions test/xmi/modelio_packages2.xmi
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<uml:Model xmi:version="2.1" xmlns:xmi="http://schema.omg.org/spec/XMI/2.1" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML" xmi:id="_bYuIcKFSEeaVvapPODu8lg" name="project1">
<eAnnotations xmi:id="_bYuIcaFSEeaVvapPODu8lg" source="Objing">
<contents xmi:type="uml:Property" xmi:id="_bYuIcqFSEeaVvapPODu8lg" name="exporterVersion">
<defaultValue xmi:type="uml:LiteralString" xmi:id="_bYuIc6FSEeaVvapPODu8lg" value="3.0.0"/>
</contents>
</eAnnotations>
<packagedElement xmi:type="uml:Package" xmi:id="_bYuIdKFSEeaVvapPODu8lg" name="mypackage">
<packagedElement xmi:type="uml:Class" xmi:id="_bYuIdaFSEeaVvapPODu8lg" name="Class1">
<ownedAttribute xmi:id="_bYuIdqFSEeaVvapPODu8lg" name="class2" visibility="public" type="_bYuvj6FSEeaVvapPODu8lg" aggregation="composite" association="_bYuvg6FSEeaVvapPODu8lg">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bYuId6FSEeaVvapPODu8lg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_bYuIeKFSEeaVvapPODu8lg" name="class3" visibility="public" type="_bYuviqFSEeaVvapPODu8lg" aggregation="composite" association="_bYuvhaFSEeaVvapPODu8lg">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bYuvgKFSEeaVvapPODu8lg"/>
</ownedAttribute>
<ownedAttribute xmi:id="_bYuvgaFSEeaVvapPODu8lg" name="enumeration1" visibility="public" type="_bYuvi6FSEeaVvapPODu8lg" aggregation="composite" association="_bYuvh6FSEeaVvapPODu8lg">
<lowerValue xmi:type="uml:LiteralInteger" xmi:id="_bYuvgqFSEeaVvapPODu8lg"/>
</ownedAttribute>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_bYuvg6FSEeaVvapPODu8lg" memberEnd="_bYuIdqFSEeaVvapPODu8lg _bYuvhKFSEeaVvapPODu8lg">
<ownedEnd xmi:id="_bYuvhKFSEeaVvapPODu8lg" visibility="public" type="_bYuIdaFSEeaVvapPODu8lg" association="_bYuvg6FSEeaVvapPODu8lg"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_bYuvhaFSEeaVvapPODu8lg" memberEnd="_bYuIeKFSEeaVvapPODu8lg _bYuvhqFSEeaVvapPODu8lg">
<ownedEnd xmi:id="_bYuvhqFSEeaVvapPODu8lg" visibility="public" type="_bYuIdaFSEeaVvapPODu8lg" association="_bYuvhaFSEeaVvapPODu8lg"/>
</packagedElement>
<packagedElement xmi:type="uml:Association" xmi:id="_bYuvh6FSEeaVvapPODu8lg" memberEnd="_bYuvgaFSEeaVvapPODu8lg _bYuviKFSEeaVvapPODu8lg">
<ownedEnd xmi:id="_bYuviKFSEeaVvapPODu8lg" visibility="public" type="_bYuIdaFSEeaVvapPODu8lg" association="_bYuvh6FSEeaVvapPODu8lg"/>
</packagedElement>
<packagedElement xmi:type="uml:Package" xmi:id="_bYuviaFSEeaVvapPODu8lg" name="myotherpackage">
<packagedElement xmi:type="uml:Class" xmi:id="_bYuviqFSEeaVvapPODu8lg" name="Class3"/>
</packagedElement>
<packagedElement xmi:type="uml:Enumeration" xmi:id="_bYuvi6FSEeaVvapPODu8lg" name="Enumeration1">
<ownedLiteral xmi:id="_bYuvjKFSEeaVvapPODu8lg" name="TOTO"/>
<ownedLiteral xmi:id="_bYuvjaFSEeaVvapPODu8lg" name="TATA"/>
<ownedLiteral xmi:id="_bYuvjqFSEeaVvapPODu8lg" name="TITI"/>
</packagedElement>
</packagedElement>
<packagedElement xmi:type="uml:Class" xmi:id="_bYuvj6FSEeaVvapPODu8lg" name="Class2"/>
</uml:Model>
Loading

0 comments on commit fe33c71

Please sign in to comment.