public async Task CreateOrDeleteCollectionsForFile_ValidResponse()
{
/*** Arrange ***/
string responseString = @"{
""type"": ""file"",
""id"": ""5000948880"",
""file_version"": {
""type"": ""file_version"",
""id"": ""26261748416"",
""sha1"": ""134b65991ed521fcfe4724b7d814ab8ded5185dc""
},
""sequence_id"": ""3"",
""etag"": ""3"",
""sha1"": ""134b65991ed521fcfe4724b7d814ab8ded5185dc"",
""name"": ""tigers.jpeg"",
""description"": ""a picture of tigers"",
""size"": 629644,
""path_collection"": {
""total_count"": 2,
""entries"": [
{
""type"": ""folder"",
""id"": ""0"",
""sequence_id"": null,
""etag"": null,
""name"": ""All Files""
},
{
""type"": ""folder"",
""id"": ""11446498"",
""sequence_id"": ""1"",
""etag"": ""1"",
""name"": ""Pictures""
}
]
},
""created_at"": ""2012-12-12T10:55:30-08:00"",
""modified_at"": ""2012-12-12T11:04:26-08:00"",
""created_by"": {
""type"": ""user"",
""id"": ""17738362"",
""name"": ""sean rose"",
""login"": ""[email protected]""
},
""modified_by"": {
""type"": ""user"",
""id"": ""17738362"",
""name"": ""sean rose"",
""login"": ""[email protected]""
},
""owned_by"": {
""type"": ""user"",
""id"": ""17738362"",
""name"": ""sean rose"",
""login"": ""[email protected]""
},
""shared_link"": {
""url"": ""https://www.box.com/s/rh935iit6ewrmw0unyul"",
""download_url"": ""https://www.box.com/shared/static/rh935iit6ewrmw0unyul.jpeg"",
""vanity_url"": null,
""is_password_enabled"": false,
""unshared_at"": null,
""download_count"": 0,
""preview_count"": 0,
""access"": ""open"",
""permissions"": {
""can_download"": true,
""can_preview"": true
}
},
""parent"": {
""type"": ""folder"",
""id"": ""11446498"",
""sequence_id"": ""1"",
""etag"": ""1"",
""name"": ""Pictures""
},
""item_status"": ""active""
}";
IBoxRequest boxRequest = null;
_handler.Setup(h => h.ExecuteAsync<BoxFile>(It.IsAny<IBoxRequest>()))
.Returns(Task.FromResult<IBoxResponse<BoxFile>>(new BoxResponse<BoxFile>()
{
Status = ResponseStatus.Success,
ContentString = responseString
}))
.Callback<IBoxRequest>(r => boxRequest = r);
/*** Act ***/
BoxCollectionsRequest collectionsRequest = new BoxCollectionsRequest()
{
Collections = new List<BoxRequestEntity>()
{
new BoxRequestEntity()
{
Id="123"
}
}
};
BoxFile result = await _collectionsManager.CreateOrDeleteCollectionsForFileAsync("5000948880", collectionsRequest);
/*** Assert ***/
//Request check
Assert.IsNotNull(boxRequest);
Assert.AreEqual(RequestMethod.Put, boxRequest.Method);
Assert.AreEqual(_FilesUri + "5000948880", boxRequest.AbsoluteUri.AbsoluteUri);
BoxCollectionsRequest payload = JsonConvert.DeserializeObject<BoxCollectionsRequest>(boxRequest.Payload);
Assert.AreEqual(collectionsRequest.Collections[0].Id, payload.Collections[0].Id);
//Response check
Assert.AreEqual("5000948880", result.Id);
Assert.AreEqual(2, result.PathCollection.TotalCount);
Assert.AreEqual("https://www.box.com/s/rh935iit6ewrmw0unyul", result.SharedLink.Url);
Assert.AreEqual("17738362", result.CreatedBy.Id);
}