public async Task ChangeUsersLogin_ValidReponse()
{
/*** Arrange ***/
IBoxRequest boxRequest = null;
_handler.Setup(h => h.ExecuteAsync<BoxUser>(It.IsAny<IBoxRequest>()))
.Returns(() => Task.FromResult<IBoxResponse<BoxUser>>(new BoxResponse<BoxUser>()
{
Status = ResponseStatus.Success,
ContentString = "{\"type\":\"user\",\"id\":\"18180156\",\"name\":\"Dan Glover\",\"login\":\"[email protected]\",\"created_at\":\"2012-09-13T10:19:51-07:00\",\"modified_at\":\"2012-09-21T10:24:51-07:00\",\"role\":\"user\",\"language\":\"en\",\"space_amount\":5368709120,\"space_used\":0,\"max_upload_size\":1073741824,\"tracking_codes\":[],\"can_see_managed_users\":false,\"is_sync_enabled\":false,\"status\":\"active\",\"job_title\":\"\",\"phone\":\"\",\"address\":\"\",\"avatar_url\":\"\"}"
}))
.Callback<IBoxRequest>(r => boxRequest = r);
/*** Act ***/
BoxUser result = await _usersManager.ChangeUsersLoginAsync("userId", "userLogin");
/*** Assert ***/
// Request check
Assert.IsNotNull(boxRequest);
Assert.AreEqual(RequestMethod.Put, boxRequest.Method);
Assert.AreEqual(_UserUri + "userId", boxRequest.AbsoluteUri.AbsoluteUri);
Assert.IsNotNull(boxRequest.Payload);
Assert.IsTrue(AreJsonStringsEqual("{\"login\":\"userLogin\"}", boxRequest.Payload));
// Response check
Assert.AreEqual("user", result.Type);
Assert.AreEqual("18180156", result.Id);
Assert.AreEqual("Dan Glover", result.Name);
Assert.AreEqual("[email protected]", result.Login);
Assert.AreEqual(DateTime.Parse("2012-09-13T10:19:51-07:00"), result.CreatedAt);
Assert.AreEqual("user", result.Role);
Assert.AreEqual("en", result.Language);
Assert.AreEqual(5368709120, result.SpaceAmount);
Assert.AreEqual(0, result.SpaceUsed);
Assert.AreEqual(1073741824, result.MaxUploadSize);
Assert.AreEqual(0, result.TrackingCodes.Length);
Assert.AreEqual(false, result.CanSeeManagedUsers);
Assert.AreEqual(false, result.IsSyncEnabled);
Assert.AreEqual("active", result.Status);
Assert.IsTrue(string.IsNullOrEmpty(result.JobTitle));
Assert.IsTrue(string.IsNullOrEmpty(result.Phone));
Assert.IsTrue(string.IsNullOrEmpty(result.Address));
Assert.IsTrue(string.IsNullOrEmpty(result.AvatarUrl));
}