public async Task CreateEnterpriseUser_ValidReponse()
{
/*** Arrange ***/
string responseString = "{\"type\": \"user\", \"id\": \"187273718\", \"name\": \"Ned Stark\", \"login\": \"[email protected]\", \"created_at\": \"2012-11-15T16:34:28-08:00\", \"modified_at\": \"2012-11-15T16:34:29-08:00\", \"role\": \"user\", \"language\": \"en\", \"space_amount\": 5368709120, \"space_used\": 0, \"max_upload_size\": 2147483648, \"tracking_codes\": [], \"can_see_managed_users\": true, \"is_sync_enabled\": true, \"status\": \"active\", \"job_title\": \"\", \"phone\": \"555-555-5555\", \"address\": \"555 Box Lane\", \"avatar_url\": \"https://www.box.com/api/avatar/large/187273718\", \"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);
BoxUserRequest userRequest = new BoxUserRequest()
{
Login = "[email protected]",
Name = "Ned Stark",
Role = "user",
Language = "en",
IsSyncEnabled = true,
Phone = "555-555-5555",
Address = "555 Box Lane",
};
/*** Act ***/
BoxUser result = await _usersManager.CreateEnterpriseUserAsync(userRequest);
/*** Assert ***/
// Request check
Assert.IsNotNull(boxRequest);
Assert.AreEqual(RequestMethod.Post, boxRequest.Method);
Assert.AreEqual(_UserUri, boxRequest.AbsoluteUri.AbsoluteUri);
Assert.IsNotNull(boxRequest.Payload);
BoxUserRequest payload = JsonConvert.DeserializeObject<BoxUserRequest>(boxRequest.Payload);
Assert.AreEqual(userRequest.Login, payload.Login);
Assert.AreEqual(userRequest.Name, payload.Name);
Assert.AreEqual(userRequest.IsSyncEnabled, payload.IsSyncEnabled);
Assert.AreEqual(userRequest.Phone, payload.Phone);
Assert.AreEqual(userRequest.Address, payload.Address);
// Response check
Assert.AreEqual("user", result.Type);
Assert.AreEqual("187273718", result.Id);
Assert.AreEqual("Ned Stark", result.Name);
Assert.AreEqual("[email protected]", result.Login);
Assert.AreEqual(DateTime.Parse("2012-11-15T16:34:28-08: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(2147483648, result.MaxUploadSize);
Assert.AreEqual(0, result.TrackingCodes.Length);
Assert.AreEqual(true, result.CanSeeManagedUsers);
Assert.AreEqual(true, result.IsSyncEnabled);
Assert.AreEqual("active", result.Status);
Assert.IsTrue(string.IsNullOrEmpty(result.JobTitle));
Assert.AreEqual("555-555-5555", result.Phone);
Assert.AreEqual("555 Box Lane", result.Address);
Assert.AreEqual("https://www.box.com/api/avatar/large/187273718", result.AvatarUrl);
}