@@ -1648,6 +1648,136 @@ describe('features/replace - bpmn replace', function() {
16481648
16491649 } ) ;
16501650
1651+
1652+ describe ( 'center' , function ( ) {
1653+
1654+ var diagramXML = require ( '../../../fixtures/bpmn/features/replace/data-elements.bpmn' ) ;
1655+
1656+ var testModules = [
1657+ modelingModule ,
1658+ coreModule
1659+ ] ;
1660+
1661+ beforeEach ( bootstrapModeler ( diagramXML , {
1662+ modules : testModules
1663+ } ) ) ;
1664+
1665+
1666+ describe ( 'data store reference to data object reference' , function ( ) {
1667+
1668+ it ( 'should center on replace' , inject ( function ( bpmnReplace , elementRegistry ) {
1669+
1670+ // given
1671+ var dataStoreReference = elementRegistry . get ( 'DataStoreReference_1' ) ;
1672+ var positionX = dataStoreReference . x ;
1673+
1674+ // when
1675+ bpmnReplace . replaceElement ( dataStoreReference , { type : 'bpmn:DataObjectReference' } ) ;
1676+
1677+ var dataObjectReference = elementRegistry . get ( 'DataStoreReference_1' ) ;
1678+ var newPositionX = positionX + ( dataStoreReference . width - dataObjectReference . width ) / 2 ;
1679+
1680+ // then
1681+ expect ( dataObjectReference . x ) . to . eql ( newPositionX ) ;
1682+ } ) ) ;
1683+
1684+
1685+ it ( 'should undo' , inject ( function ( bpmnReplace , commandStack , elementRegistry ) {
1686+
1687+ // given
1688+ var dataStoreReference = elementRegistry . get ( 'DataStoreReference_1' ) ;
1689+ var positionX = dataStoreReference . x ;
1690+
1691+ bpmnReplace . replaceElement ( dataStoreReference , { type : 'bpmn:DataObjectReference' } ) ;
1692+
1693+ // when
1694+ commandStack . undo ( ) ;
1695+
1696+ // then
1697+ expect ( elementRegistry . get ( 'DataStoreReference_1' ) . x ) . to . eql ( positionX ) ;
1698+ } ) ) ;
1699+
1700+
1701+ it ( 'should redo' , inject ( function ( bpmnReplace , commandStack , elementRegistry ) {
1702+
1703+ // given
1704+ var dataStoreReference = elementRegistry . get ( 'DataStoreReference_1' ) ;
1705+ var positionX = dataStoreReference . x ;
1706+
1707+ bpmnReplace . replaceElement ( dataStoreReference , { type : 'bpmn:DataObjectReference' } ) ;
1708+ commandStack . undo ( ) ;
1709+
1710+ // when
1711+ commandStack . redo ( ) ;
1712+
1713+ var dataObjectReference = elementRegistry . get ( 'DataStoreReference_1' ) ;
1714+ var newPositionX = positionX + ( dataStoreReference . width - dataObjectReference . width ) / 2 ;
1715+
1716+ // then
1717+ expect ( dataObjectReference . x ) . to . eql ( newPositionX ) ;
1718+ } ) ) ;
1719+
1720+ } ) ;
1721+
1722+
1723+ describe ( 'data object reference to data store reference' , function ( ) {
1724+
1725+ it ( 'should center on replace' , inject ( function ( bpmnReplace , elementRegistry ) {
1726+
1727+ // given
1728+ var dataObjectReference = elementRegistry . get ( 'DataObjectReference_1' ) ;
1729+ var positionX = dataObjectReference . x ;
1730+
1731+ // when
1732+ bpmnReplace . replaceElement ( dataObjectReference , { type : 'bpmn:DataStoreReference' } ) ;
1733+
1734+ var dataStoreReference = elementRegistry . get ( 'DataObjectReference_1' ) ;
1735+ var newPositionX = positionX + ( dataObjectReference . width - dataStoreReference . width ) / 2 ;
1736+
1737+ // then
1738+ expect ( dataStoreReference . x ) . to . eql ( newPositionX ) ;
1739+ } ) ) ;
1740+
1741+
1742+ it ( 'should undo' , inject ( function ( bpmnReplace , commandStack , elementRegistry ) {
1743+
1744+ // given
1745+ var dataObjectReference = elementRegistry . get ( 'DataObjectReference_1' ) ;
1746+ var positionX = dataObjectReference . x ;
1747+
1748+ bpmnReplace . replaceElement ( dataObjectReference , { type : 'bpmn:DataStoreReference' } ) ;
1749+
1750+ // when
1751+ commandStack . undo ( ) ;
1752+
1753+ // then
1754+ expect ( elementRegistry . get ( 'DataObjectReference_1' ) . x ) . to . eql ( positionX ) ;
1755+ } ) ) ;
1756+
1757+
1758+ it ( 'should redo' , inject ( function ( bpmnReplace , commandStack , elementRegistry ) {
1759+
1760+ // given
1761+ var dataObjectReference = elementRegistry . get ( 'DataObjectReference_1' ) ;
1762+ var positionX = dataObjectReference . x ;
1763+
1764+ bpmnReplace . replaceElement ( dataObjectReference , { type : 'bpmn:DataStoreReference' } ) ;
1765+ commandStack . undo ( ) ;
1766+
1767+ // when
1768+ commandStack . redo ( ) ;
1769+
1770+ var dataStoreReference = elementRegistry . get ( 'DataObjectReference_1' ) ;
1771+ var newPositionX = positionX + ( dataObjectReference . width - dataStoreReference . width ) / 2 ;
1772+
1773+ // then
1774+ expect ( dataStoreReference . x ) . to . eql ( newPositionX ) ;
1775+ } ) ) ;
1776+
1777+ } ) ;
1778+
1779+ } ) ;
1780+
16511781} ) ;
16521782
16531783
0 commit comments