function testIt(oRawValue, sProperty, sConstantValue) {
				QUnit.test("14.4.x Constant Expression: " + JSON.stringify(oRawValue),
					function (assert) {
						var oModel = {},
							oInterface = {
								getModel : function () { return oModel; }
							},
							oPathValue = {
								asExpression : false,
								path : "/my/path",
								value : oRawValue,
								withType : true
							},
							oConstantPathValue = {
								asExpression : false,
								path : "/my/path/" + sProperty,
								value : oRawValue[sProperty],
								withType : true
							},
							oError = new SyntaxError(),
							oExpectedResult,
							oResult;

						if (oFixture.error) {
							this.mock(Basics).expects("error")
								.withExactArgs(oConstantPathValue, "Expected " + oFixture.constant
									+ " value but instead saw '" + oConstantPathValue.value + "'")
								.throws(oError);

							assert.throws(function () {
								Expression.expression(oInterface, oPathValue);
							}, oError);
						} else {
							this.mock(Basics).expects("error").never();

							oExpectedResult = {
								result : "constant",
								value : sConstantValue,
								type : oFixture.type
							};

							//********** first test with bindTexts: false
							oResult = Expression.expression(oInterface, oPathValue);

							assert.deepEqual(oResult, oExpectedResult, "bindTexts: false");

							//********** second test with bindTexts: true
							oInterface.getSetting = function (sName) {
								assert.strictEqual(sName, "bindTexts");
								return true;
							};

							if (oFixture.constant === "String") {
								this.mock(Expression).expects("replaceIndexes")
									.withExactArgs(sinon.match.same(oModel),
										oConstantPathValue.path)
									.returns("/replaced");
							}
							oResult = Expression.expression(oInterface, oPathValue);

							if (oFixture.constant === "String") {
								assert.deepEqual(oResult, {
									ignoreTypeInPath : true,
									result : "binding",
									type : "Edm.String",
									value : "/##/replaced"
								}, "bindTexts");
							} else {
								assert.deepEqual(oResult, oExpectedResult, "bindTexts: true");
							}
						}
					}
				);
			}
******************************************************************************************
	QUnit.module("sap.ui.model.odata._AnnotationHelperExpression", {
		beforeEach : function () {
			this.sDefaultCalendarType = Formatting.getCalendarType();
			this.oLogMock = this.mock(Log);
			this.oLogMock.expects("warning").never();
			this.oLogMock.expects("error").never();
		},
		afterEach : function () {
			Formatting.setCalendarType(this.sDefaultCalendarType);
		},

		/**
Tests Expression.path returning a property w/ constraints.

@param {object} assert The QUnit assert object
@param {object} oProperty The property value in the meta model at the resolved path
@param {object} oExpectedConstraints The expected constraints