public async Task UpdateUser_ValidResponse_ValidUser()
{
/*** Arrange ***/
string responseString = "{\"type\":\"user\",\"id\":\"181216415\",\"name\":\"sean\",\"login\":\"[email protected]\",\"created_at\":\"2012-05-03T21:39:11-07:00\",\"modified_at\":\"2012-12-06T18:17:16-08:00\",\"role\":\"admin\",\"language\":\"en\",\"space_amount\":5368709120,\"space_used\":1237179286,\"max_upload_size\":2147483648,\"tracking_codes\":[],\"can_see_managed_users\":true,\"is_sync_enabled\":true,\"status\":\"active\",\"job_title\":\"\",\"phone\":\"6509241374\",\"address\":\"\",\"avatar_url\":\"https://www.box.com/api/avatar/large/181216415\",\"is_exempt_from_device_limits\":false,\"is_exempt_from_login_verification\":false}";
IBoxRequest boxRequest = null;
_handler.Setup(h => h.ExecuteAsync<BoxUser>(It.IsAny<IBoxRequest>()))
.Returns(Task.FromResult<IBoxResponse<BoxUser>>(new BoxResponse<BoxUser>()
{
Status = ResponseStatus.Success,
ContentString = responseString
}))
.Callback<IBoxRequest>(r => boxRequest = r);
/*** Act ***/
BoxUserRequest userRequest = new BoxUserRequest()
{
Id = "181216415",
Name = "sean"
};
BoxUser user = await _usersManager.UpdateUserInformationAsync(userRequest);
/*** Assert ***/
// Request check
Assert.IsNotNull(boxRequest);
Assert.AreEqual(RequestMethod.Put, boxRequest.Method);
Assert.AreEqual(_UserUri + "181216415", boxRequest.AbsoluteUri.AbsoluteUri);
BoxUserRequest payload = JsonConvert.DeserializeObject<BoxUserRequest>(boxRequest.Payload);
Assert.AreEqual(userRequest.Id, payload.Id);
Assert.AreEqual(userRequest.Name, payload.Name);
//Response check
Assert.AreEqual("181216415", user.Id);
Assert.AreEqual("sean", user.Name);
Assert.AreEqual("[email protected]", user.Login);
Assert.AreEqual("user", user.Type);
}