public async Task GetCollections_ValidResponse()
{
/*** Arrange ***/
string responseString = @"{
""total_count"": 1,
""entries"": [
{
""type"": ""collection"",
""id"": ""405151"",
""name"": ""Favorites"",
""collection_type"": ""favorites""
}
],
""limit"": 100,
""offset"": 0
}";
IBoxRequest boxRequest = null;
Uri collectionUri = new Uri(Constants.CollectionsEndpointString);
_config.SetupGet(x => x.CollectionsEndpointUri).Returns(collectionUri);
_handler.Setup(h => h.ExecuteAsync<BoxCollection<BoxCollectionItem>>(It.IsAny<IBoxRequest>()))
.Returns(Task.FromResult<IBoxResponse<BoxCollection<BoxCollectionItem>>>(new BoxResponse<BoxCollection<BoxCollectionItem>>()
{
Status = ResponseStatus.Success,
ContentString = responseString
}))
.Callback<IBoxRequest>(r => boxRequest = r);
/*** Act ***/
BoxCollection<BoxCollectionItem> result = await _collectionsManager.GetCollectionsAsync();
/*** Assert ***/
//Request check
Assert.IsNotNull(boxRequest);
Assert.AreEqual(RequestMethod.Get, boxRequest.Method);
Assert.AreEqual(collectionUri, boxRequest.AbsoluteUri.AbsoluteUri);
//Response check
Assert.AreEqual(1, result.TotalCount);
Assert.IsNotNull(result.Entries);
Assert.AreEqual(1, result.Entries.Count);
Assert.AreEqual("collection", result.Entries[0].Type);
Assert.AreEqual("405151", result.Entries[0].Id);
Assert.AreEqual("Favorites", result.Entries[0].Name);
Assert.AreEqual("favorites", result.Entries[0].CollectionType);
Assert.AreEqual(100, result.Limit);
Assert.AreEqual(0, result.Offset);
}