function handlePatchUserRequests(oXhr) {
		var sKey,
			oUser,
			oChanges,
			sResponseBody,
			sFieldName;

		// Get the key of the person to change
		sKey = getUserKeyFromUrl(oXhr.url);

		// Get the list of changes
		oChanges = getUserDataFromRequestBody(oXhr.requestBody);

		// Check if the UserName is changed to a duplicate.
		// If the UserName is "changed" to its current value, that is not an error.
		if (oChanges.hasOwnProperty("UserName")
			&& oChanges.UserName !== sKey
			&& !isUnique(oChanges.UserName)) {
			// Error
			sResponseBody = duplicateKeyError(oChanges.UserName);
			return [
				400,
				{
					"Content-Type" : "application/json; charset=utf-8"
				},
				sResponseBody
			];
		}
		// No error: make the change(s)
		oUser = aUsers[findUserIndex(sKey)];
		for (sFieldName in oChanges) {
			if (oChanges.hasOwnProperty(sFieldName)) {
				oUser[sFieldName] = oChanges[sFieldName];
			}
		}

		// The response to PATCH requests is always HTTP 204 (No Content)
		sResponseBody = null;
		return [
			204,
			{
				"OData-Version" : "4.0"
			},
			sResponseBody
		];
	}
Handles PATCH requests for users and returns a fitting response.
Changes the user data according to the request.
@param {Object} oXhr - the Sinon fake XMLHttpRequest
@returns {Array} an array with the response information needed by Sinon's respond() function