Adding pagination tests
This commit is contained in:
		| @@ -28,7 +28,7 @@ namespace Aurora.Cursor | ||||
|             this._pageSize = 10; | ||||
|             this._sortDelgate = delegate (KeyValuePair<string, T> item) | ||||
|             { | ||||
|                 return item.Value.Id; | ||||
|                 return item.Key; | ||||
|             }; | ||||
|         } | ||||
|  | ||||
| @@ -60,17 +60,26 @@ namespace Aurora.Cursor | ||||
|             if (!string.IsNullOrEmpty(this._nextPageToken)) | ||||
|             { | ||||
|                 // TODO find another way to index into the list that's not a regular array search | ||||
|                 startIdx = tmpList.FindIndex(item => item.Key == this._nextPageToken); | ||||
|                 startIdx = tmpList.FindIndex(item => item.Key == this._nextPageToken) + 1; | ||||
|             } | ||||
|  | ||||
|             int endIdx = startIdx + this._pageSize; | ||||
|             int adjustedSize = this._pageSize; | ||||
|             if (startIdx + this._pageSize > tmpList.Count) | ||||
|             { | ||||
|                 adjustedSize = this._pageSize - ((startIdx + _pageSize) - tmpList.Count); | ||||
|             } | ||||
|  | ||||
|             List<KeyValuePair<string, T>> selection = tmpList.GetRange(startIdx, this._pageSize > tmpList.Count ? tmpList.Count : this._pageSize); | ||||
|  | ||||
|             List<KeyValuePair<string, T>> selection = new List<KeyValuePair<string, T>>(); | ||||
|             if (adjustedSize != 0) | ||||
|             { | ||||
|                 selection = tmpList.GetRange(startIdx, adjustedSize); | ||||
|             } | ||||
|  | ||||
|             return new CursorResult<T> | ||||
|             { | ||||
|                 NextPageToken = selection[selection.Count - 1].Key, | ||||
|                 PrevPageToken = selection[0].Key, | ||||
|                 NextPageToken = this._pageSize == selection.Count ? selection[selection.Count - 1].Key : string.Empty, | ||||
|                 PrevPageToken = string.Empty, | ||||
|                 Count = this._list.Count, | ||||
|                 Result = selection.ConvertAll(item => item.Value) | ||||
|             }; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user