getFieldHelpForCase = ([sCase, sId]) => ({
			backendHelpKey : {
				id : sId ?? "BP_ID",
				type : "DTEL"
			},
			hotspotId : this.oView.createId("id" + sCase),
			labelText : sCase
		})
******************************************************************************************
	// Scenario: Simulate a control using a list binding and a model with the client operation mode.
	// JIRA: CPOUI5ODATAV4-1804
	QUnit.test("getContexts: bExpectMore #3, model with clint operation mode", async function (assert) {
		const oModel = createSalesOrdersModel({defaultOperationMode : "Client"});
		await this.createView(assert, "", oModel);
		const oBinding = oModel.bindList("/SalesOrderSet");

		oBinding.initialize();
		this.expectHeadRequest()
			.expectRequest("SalesOrderSet", respond(0, 6));

		await Promise.all([
			getContextsWithChangeEvent(assert, oBinding, 0, [], [0, 1]),
			this.waitForChanges(assert, "(1)")
		]);

		getContexts(assert, oBinding, 10, []);
	});
}());

	//*********************************************************************************************
	// Scenario: When a table with entries is filtered with Filter.NONE and there are no created entries, the table
	// is updated properly to show no data and a 'no data' text
	// SNOW: DINC0301463
	QUnit.test("Filter table with Filter.NONE empties the table", async function (assert) {
		const oModel = createSalesOrdersModel();
		const sView = '\
<Table id="table" items="{/SalesOrderSet}" growing="true" growingThreshold="5">\
	<Input id="note" value="{Note}" />\
</Table>';

		this.expectHeadRequest()
			.expectRequest({
				requestUri : "SalesOrderSet?$skip=0&$top=5"
			}, {
				results : [{
					__metadata : {
						uri : "SalesOrderSet('1')"
					},
					Note : "Bar",
					SalesOrderID : "1"
				}, {
					__metadata : {
						uri : "SalesOrderSet('2')"
					},
					Note : "Baz",
					SalesOrderID : "2"
				}]
			})
			.expectValue("note", ["Bar", "Baz"]);

		await this.createView(assert, sView, oModel);

		const oTable = this.oView.byId("table");
		const oItemsBinding = oTable.getBinding("items");
		this.expectValue("note", []);

		// code under test
		oItemsBinding.filter(Filter.NONE, FilterType.Application);

		await this.waitForChanges(assert, "set Filter.NONE");

		assert.strictEqual(oTable.getItems().length, 0);
	});
	//*********************************************************************************************
	// Scenario: React on 503 "Retry-After" error during deferred loading of value help metadata,
	// data and code list data
	// The "Retry-After" handler and promise of the main ODataModel has to be shared with the ODataMetadata
	// object (which might be created by another ODataModel instance) and both ODataModels for the unit
	// and currency code lists.
	// a) A first ODataModel instance successfully fetches $metadata w/o value help metadata ("sap-value-list":
	//   "none") and stores the metadata in the shared metadata cache. A "Retry-After" handler is set, but must
	//   never be called. Model gets destroyed because no further usage in test.
	// b) Another ODataModel for the same service reuses the cached metadata.
	// c) Fetching value help meta data now runs into 503 error, "Retry-After" handler of the main ODataModel
	//    is called and returns a "Retry-After" promise.
	// d) A data request via the main ODataModel reuses the "Retry-After" promise.
	// e) Fetching currency and unit codes via the ODataMetaModel also reuses the "Retry-After" promise.
	// f) Resolving the "Retry-After" promise results in repeated and successful metdadata, data and code lists
	//    requests.
	// g) Rejecting with an own error results in rejection of the value help promise, the data request and
	//    code list requests with the original 503 error with the message from the own error.
	// h) Rejecting with the error passed to the handler results in rejection of the value help promise,
	//    the data request and code list requests with the original 503 error.
	// JIRA: CPOUI5MODELS-1826
	// JIRA: CPOUI5MODELS-1856
[true, false, /*c) own error