function isActiveCase(o1, o2) {
			return (deepEqual(o1, oP11) && deepEqual(o2, oP12))
				|| (deepEqual(o1, oP31) && deepEqual(o2, oP32))
				|| (deepEqual(o1, oP41) && deepEqual(o2, oP42));
		}
******************************************************************************************

	QUnit.test("fillUriTemplate: template only", function (assert) {
		var oPathValue = {complexBinding : true, value : ["template"]},
			oParameterResult = {
				result : "constant",
				type : "Edm.String",
				value : oPathValue.value[0]
			};

		this.mock(Expression).expects("parameter")
			.withExactArgs(sinon.match.same(oPathValue).and(sinon.match({complexBinding : false})),
				0, "Edm.String")
			.returns(SyncPromise.resolve(oParameterResult));

		this.mock(Basics).expects("resultToString")
			.withExactArgs(sinon.match.same(oParameterResult), true, false, true)
			.callThrough();

		// code under test
		assert.deepEqual(Expression.fillUriTemplate(oPathValue).unwrap(), {
			result : "expression",
			type : "Edm.String",
			value : "odata.fillUriTemplate('template',{})"
		});
	});
	//TODO "The odata.fillUriTemplate standard client-side function takes two or more expressions as
	// arguments and returns a value of type Edm.String." --> we could drop this test?!

	//*********************************************************************************************
	QUnit.test("fillUriTemplate: template with one parameter", function (assert) {
		var oBasicsMock = this.mock(Basics),
			oExpression = this.mock(Expression),
			oParameterResultTemplate = {
				result : "expression",
				type : "Edm.String",
				value : "'template({p0})'"
			},
			oPathValue = {
				complexBinding : true,
				path : "/my/path",
				value : [
					{/*this could be an arbitrary expression