function help(oRawValue) {
				assert.strictEqual(this, oControl, "'this' is kept");
				return "_" + oRawValue + "_";
			}
******************************************************************************************
	QUnit.test("createPropertySetting: some basics", function (assert) {
		// see sap.ui.base.BindingParser: makeSimpleBindingInfo
		assert.deepEqual(AnnotationHelper.createPropertySetting(["{/foo/bar}"]), {
			formatter : undefined,
			parts : [{
				path : "/foo/bar"
			}]
		}, "{/foo/bar}");
		assert.deepEqual(AnnotationHelper.createPropertySetting(["{meta>foo/bar}"]), {
			formatter : undefined,
			parts : [{
				model : "meta",
				path : "foo/bar"
			}]
		}, "{meta>foo/bar}");

		// complex binding syntax
		assert.deepEqual(AnnotationHelper.createPropertySetting(["{path:'foo/bar'}"]), {
			formatter : undefined,
			parts : [{
				path : "foo/bar"
			}]
		}, "{path:'foo/bar'}");
		assert.deepEqual(AnnotationHelper.createPropertySetting(["{path:'meta>/foo/bar'}"]), {
			formatter : undefined,
			parts : [{
				path : "meta>/foo/bar"
			}]
		}, "{path:'meta>/foo/bar'}");
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: simple binding syntax", function (assert) {
		this.checkSingle(assert, "{/foo}", "hello");
		this.checkSingle(assert, "{model>/foo}", "hello");
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: complex binding syntax", function (assert) {
		this.checkSingle(assert, "{path : 'model>/foo', formatter : 'Helper.help'}", "_hello_");
		this.checkSingle(assert, "{path : 'model>/foo', formatter : 'help'}", "_hello_");
		this.checkSingle(assert, "{model : 'model', path : '/bar', formatter : 'Helper.help'}", "_world_");
		this.checkSingle(assert, "{parts : [{path : '/foo', formatter : 'Helper.help'}]}", "_hello_");
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: composite binding", function (assert) {
		this.checkSingle(assert, "hello {path : '/bar', formatter : 'Helper.help'}", "hello _world_");
		this.checkSingle(assert, "hello {path : '/bar', formatter : 'help'}", "hello _world_");
		this.checkSingle(assert, "hello {path : 'model>/bar', formatter : 'Helper.help'}", "hello _world_");
		this.checkSingle(assert, "hello {model : 'model', path : '/bar', formatter : 'Helper.help'}", "hello _world_");
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: expression binding", function (assert) {
		this.checkSingle(assert, "{:= ${/foo} + ' ' + ${path:'/bar'}}", "hello world");
		this.checkSingle(assert, "{:= ${model>/foo} + ' ' + ${path:'model>/bar'}}",
			"hello world");
		this.checkSingle(assert, "{:= ${model>/foo} + ' ' + ${model:'model',path:'/bar'}}",
			"hello world");
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: empty array of parts", function (assert) {
		assert.strictEqual(AnnotationHelper.createPropertySetting([]), undefined);
		assert.strictEqual(AnnotationHelper.createPropertySetting([], this.formatter), "[]");
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: multiple parts: simple binding syntax", function (assert) {
		this.checkMultiple(assert, ["{/foo}", "{model>/bar}"], ["hello", "world"]);
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: multiple parts: complex binding syntax", function (assert) {
		this.checkMultiple(assert, [
				"{path : '/foo', formatter : 'Helper.help'}",
				"{model : 'model', path : '/bar', formatter : 'Helper.help'}"
			], ["_hello_", "_world_"]);
		this.checkMultiple(assert, [
				"{path : '/foo', formatter : 'help'}",
				"{model : 'model', path : '/bar', formatter : 'help'}"
			], ["_hello_", "_world_"]);
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: multiple parts: composite binding", function (assert) {
		this.checkMultiple(assert, [
				"hello {model : 'model', path : '/bar', formatter : 'Helper.help'}",
				"{path : 'model>/foo', formatter : 'Helper.help'} world"
			], ["hello _world_", "_hello_ world"]);
		this.checkMultiple(assert, [
			"hello {model : 'model', path : '/bar', formatter : 'help'}",
			"{path : 'model>/foo', formatter : 'help'} world"
		], ["hello _world_", "_hello_ world"]);
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: multiple parts: expression binding", function (assert) {
		this.checkMultiple(assert, [
				"{:= ${/foo} + '>' + ${path:'/bar'}}",
				"{:= ${model>/bar} + '<' + ${model:'model',path:'/foo'}}"
			], ["hello>world", "world<hello"]);
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: single constant string value", function (assert) {
		var that = this;

		["", "hello, world!", "}{"].forEach(function (sConstant) {
			// constant string
			that.checkSingle(assert, BindingParser.complexParser.escape(sConstant), sConstant);

			// constant expression binding
			that.checkSingle(assert, "{:= '" + sConstant + "'}", sConstant);
		});
	});

	//*********************************************************************************************
	QUnit.test("createPropertySetting: single constant non-string value", function (assert) {
		var oControl = this.oControl,
			that = this;

		function strictEqualOrNaN(vActual, vExpected) {
			if (vExpected !== vExpected) { // NaN
				assert.ok(vActual !== vActual);
			} else {
				assert.strictEqual(vActual, vExpected);
			}
		}

		[false, true, 0, 1, NaN, null, undefined, []].forEach(function (vConstant) {
			var sBinding, vPropertySetting;

			[undefined, that.formatter].forEach(function (fnRootFormatter) {
				/*eslint no-self-compare: 0