function basicCommandTest(mInfo, mCommandProperties, mExpectedSpecificData) {
		var sMsg = mInfo.moduleName || "Test for '" + mInfo.commandName + "' command";
		QUnit.module(sMsg, {
			beforeEach: function() {
				this.mCurrentInfo = Object.assign({}, mInfo);
				this.mCurrentCommandProperties = Object.assign({}, mCommandProperties);
				this.mCurrentExpectedSpecificData = Object.assign({}, mExpectedSpecificData);
				this.oMockedAppComponent = new UIComponent();
				var oVariantModel = new JSONModel();
				oVariantModel.getCurrentVariantReference = function(sVariantManagementReference) {
					return sVariantManagementReference;
				};
				this.oMockedAppComponent.setModel(oVariantModel, FlUtils.VARIANT_MODEL_NAME);
				sandbox.stub(FlUtils, "getAppComponentForControl").returns(this.oMockedAppComponent);
				sandbox.stub(ChangesWriteAPI, "getChangeHandler").resolves();
				this.oCreateStub = sandbox.stub(ChangesWriteAPI, "create").resolves();
				this.oControl = new Control("myFancyControlId");
			},
			afterEach: function() {
				sandbox.restore();
				this.oControl.destroy();
				this.oMockedAppComponent.destroy();
			}
		}, function() {
			if (mInfo.designtimeAction) {
				QUnit.test("when creating the Command via the CommandFactory", function(assert) {
					return actualTest.call(this, assert, false, false, false);
				});

				QUnit.test("when creating the Command via the CommandFactory with jsOnly=true and a VariantManagement", function(assert) {
					return actualTest.call(this, assert, true, false, true);
				});

				QUnit.test("when creating the Command via the CommandFactory with variantIndependent=true and a VariantManagement", function(assert) {
					return actualTest.call(this, assert, false, true, true);
				});

				QUnit.test("when creating the Command via the CommandFactory with variantIndependent=true and no VariantManagement", function(assert) {
					return actualTest.call(this, assert, false, true, false);
				});

				QUnit.test("when creating the Command via the CommandFactory with jsOnly=true and variantIndependent=true and a VariantManagement", function(assert) {
					return actualTest.call(this, assert, true, true, true);
				});
			} else {
				QUnit.test("when creating the Command via the CommandFactory", function(assert) {
					return actualTest.call(this, assert, false, false, false);
				});

				QUnit.test("when creating the Command via the CommandFactory and a VariantManagement", function(assert) {
					return actualTest.call(this, assert, false, false, true);
				});
			}
		});
	}
/**
	 * Executes a test for a command. The test mocks the needed designtime metadata and calls the <code>sap.ui.rta.command.CommandFactory</code> to create the Command.
	 * Also tests if the change specific data are correctly passed to the ChangesWriteAPI.create function.
	 *
	 * @param {object} mInfo - Information about the command and the test
	 * @param {string} mInfo.commandName - Name of the command defined in the <code>sap.ui.rta.command.CommandFactory</code>
	 * @param {string} [mInfo.moduleName] - Name for the QUnit module
	 * @param {any} [mInfo.additionalDesigntimeAttributes] - Additional functions or properties that end up in the designtime mock
	 * @param {string|string[]} mInfo.designtimeActionStructure - Name of the action in the designtime file - nested structures should be put into an array
	 * @param {object} mCommandProperties - Properties with which the command will be created
	 * @param {object} mExpectedSpecificData - Command specific data that will be passed to the creation of the <code>sap.ui.fl.Change</code>
	 */
Executes a test for a command. The test mocks the needed designtime metadata and calls the sap.ui.rta.command.CommandFactory to create the Command.
Also tests if the change specific data are correctly passed to the ChangesWriteAPI.create function.


Executes a test for a command . The test mocks the needed designtime metadata and calls the sap . ui . rta . command . CommandFactory to create the Command . Also tests if the change specific data are correctly passed to the ChangesWriteAPI . create function .
function basicCommandTest(mInfo, mCommandProperties, mExpectedSpecificData) {
		var sMsg = mInfo.moduleName || "Test for '" + mInfo.commandName + "' command";
		QUnit.module(sMsg, {
			beforeEach: function() {
				this.mCurrentInfo = Object.assign({}, mInfo);
				this.mCurrentCommandProperties = Object.assign({}, mCommandProperties);
				this.mCurrentExpectedSpecificData = Object.assign({}, mExpectedSpecificData);
				this.oMockedAppComponent = new UIComponent();
				var oVariantModel = new JSONModel();
				oVariantModel.getCurrentVariantReference = function(sVariantManagementReference) {
					return sVariantManagementReference;
				};
				this.oMockedAppComponent.setModel(oVariantModel, FlUtils.VARIANT_MODEL_NAME);
				sandbox.stub(FlUtils, "getAppComponentForControl").returns(this.oMockedAppComponent);
				sandbox.stub(ChangesWriteAPI, "getChangeHandler").resolves();
				this.oCreateStub = sandbox.stub(ChangesWriteAPI, "create").resolves();
				this.oControl = new Control("myFancyControlId");
			},
			afterEach: function() {
				sandbox.restore();
				this.oControl.destroy();
				this.oMockedAppComponent.destroy();
			}
		}, function() {
			if (mInfo.designtimeAction) {
				QUnit.test("when creating the Command via the CommandFactory", function(assert) {
					return actualTest.call(this, assert, false, false, false);
				});
				QUnit.test("when creating the Command via the CommandFactory with jsOnly=true and a VariantManagement", function(assert) {
					return actualTest.call(this, assert, true, false, true);
				});
				QUnit.test("when creating the Command via the CommandFactory with variantIndependent=true and a VariantManagement", function(assert) {
					return actualTest.call(this, assert, false, true, true);
				});
				QUnit.test("when creating the Command via the CommandFactory with variantIndependent=true and no VariantManagement", function(assert) {
					return actualTest.call(this, assert, false, true, false);
				});
				QUnit.test("when creating the Command via the CommandFactory with jsOnly=true and variantIndependent=true and a VariantManagement", function(assert) {
					return actualTest.call(this, assert, true, true, true);
				});
			} else {
				QUnit.test("when creating the Command via the CommandFactory", function(assert) {
					return actualTest.call(this, assert, false, false, false);
				});
				QUnit.test("when creating the Command via the CommandFactory and a VariantManagement", function(assert) {
					return actualTest.call(this, assert, false, false, true);
				});
			}
		});
	}
function basicCommandTest ( mInfo , mCommandProperties , mExpectedSpecificData ) { var sMsg = mInfo . moduleName || "Test for '" + mInfo . commandName + "' command" ; QUnit . module ( sMsg , { beforeEach : function ( ) { this . mCurrentInfo = Object . assign ( { } , mInfo ) ; this . mCurrentCommandProperties = Object . assign ( { } , mCommandProperties ) ; this . mCurrentExpectedSpecificData = Object . assign ( { } , mExpectedSpecificData ) ; this . oMockedAppComponent = new UIComponent ( ) ; var oVariantModel = new JSONModel ( ) ; oVariantModel . getCurrentVariantReference = function ( sVariantManagementReference ) { return sVariantManagementReference ; } ; this . oMockedAppComponent . setModel ( oVariantModel , FlUtils . VARIANT_MODEL_NAME ) ; sandbox . stub ( FlUtils , "getAppComponentForControl" ) . returns ( this . oMockedAppComponent ) ; sandbox . stub ( ChangesWriteAPI , "getChangeHandler" ) . resolves ( ) ; this . oCreateStub = sandbox . stub ( ChangesWriteAPI , "create" ) . resolves ( ) ; this . oControl = new Control ( "myFancyControlId" ) ; } , afterEach : function ( ) { sandbox . restore ( ) ; this . oControl . destroy ( ) ; this . oMockedAppComponent . destroy ( ) ; } } , function ( ) { if ( mInfo . designtimeAction ) { QUnit . test ( "when creating the Command via the CommandFactory" , function ( assert ) { return actualTest . call ( this , assert , false , false , false ) ; } ) ; QUnit . test ( "when creating the Command via the CommandFactory with jsOnly=true and a VariantManagement" , function ( assert ) { return actualTest . call ( this , assert , true , false , true ) ; } ) ; QUnit . test ( "when creating the Command via the CommandFactory with variantIndependent=true and a VariantManagement" , function ( assert ) { return actualTest . call ( this , assert , false , true , true ) ; } ) ; QUnit . test ( "when creating the Command via the CommandFactory with variantIndependent=true and no VariantManagement" , function ( assert ) { return actualTest . call ( this , assert , false , true , false ) ; } ) ; QUnit . test ( "when creating the Command via the CommandFactory with jsOnly=true and variantIndependent=true and a VariantManagement" , function ( assert ) { return actualTest . call ( this , assert , true , true , true ) ; } ) ; } else { QUnit . test ( "when creating the Command via the CommandFactory" , function ( assert ) { return actualTest . call ( this , assert , false , false , false ) ; } ) ; QUnit . test ( "when creating the Command via the CommandFactory and a VariantManagement" , function ( assert ) { return actualTest . call ( this , assert , false , false , true ) ; } ) ; } } ) ; }
Executes a test for a command.
Executes a test for a command .