function handleGetUserRequests(oXhr, _bCount) {
		var iCount,
			aExpand,
			sExpand,
			iIndex,
			sKey,
			oResponse,
			sResponseBody,
			aResult,
			aSelect,
			sSelect,
			aSubSelects,
			i;

		// Get expand parameter
		aExpand = oXhr.url.match(/\$expand=([^&]+)/);

		// Sort out expand parameter values + subSelects in brackets
		if (aExpand) {
			sExpand = aExpand[0];
			sExpand = sExpand.substring(8);

			// Sort out subselects (e.g. BestFriend($select=Age,UserName),Friend)
			aSubSelects = sExpand.match(/\([^\)]*\)/g);
			for (i = 0; i < aSubSelects.length; i++) {
				aSubSelects[i]
					= aSubSelects[i].replace(/\(\$select=/, "").replace(/\)/, "").split(",");
			}
			sExpand = sExpand.replace(/\([^\)]*\)/g, "");
			aExpand = sExpand.split(",");
		}

		// Get select parameter
		aSelect = oXhr.url.match(/[^(]\$select=([\w|,]+)/);

		// Sort out select parameter values
		if (Array.isArray(aSelect)) {
			sSelect = aSelect[0];
			sSelect = sSelect.replace(/&/, "").replace(/\?/, "").substring(8);
			aSelect = sSelect.split(",");
		}

		// Check if an individual user or a user range is requested
		sKey = getUserKeyFromUrl(oXhr.url);
		if (sKey) {
			iIndex = findUserIndex(sKey);

			if (/People\(.+\)\/Friends/.test(oXhr.url)) {
				// ownRequest for friends
				oResponse = {value : []};
				oResponse.value = createFriendsArray(aUsers[iIndex].Friends, aSelect);
			} else {
				// specific user was requested
				oResponse = getUserObject(iIndex, aSelect, aExpand, aSubSelects);
			}

			if (iIndex > -1) {
				sResponseBody = JSON.stringify(oResponse);
				return getSuccessResponse(sResponseBody);
			}
			sResponseBody = invalidKeyError(sKey);
			return [
				400,
				{
					"Content-Type" : "application/json; charset=utf-8"
				},
				sResponseBody
			];
		}
		// all users requested
		aResult = applyFilter(oXhr, aUsers);
		iCount = aResult.length; // the total no. of people found, after filtering
		aResult = applySort(oXhr, aResult);
		aResult = applySkipTop(oXhr, aResult);

		// generate sResponse
		oResponse = {"@odata.count" : iCount, value : []};

		aResult.forEach(function (oUser) {
			var iUserIndex = findUserIndex(oUser.UserName);

			oResponse.value.push(getUserObject(iUserIndex, aSelect, aExpand, aSubSelects));
		});

		sResponseBody = JSON.stringify(oResponse);

		return getSuccessResponse(sResponseBody);
	}
Handles GET requests for user data and returns a fitting response.
@param {Object} oXhr - the Sinon fake XMLHttpRequest
@param {boolean} _bCount - true if the request should include a counter
@returns {Array} an array with the response information needed by Sinon's respond() function