public async Task CreateTermsOfServiceUserStatus_ValidResponse() { /*** Arrange ***/ var responseString = @"{ ""type"": ""terms_of_service_user_status"", ""id"": ""11446498"", ""created_at"": ""2012-12-12T10:53:43-08:00"", ""is_accepted"": ""true"", ""modified_at"": ""2012-12-12T10:53:43-08:00"", ""tos"": { ""type"": ""terms_of_service"", ""id"": ""11446498"", }, ""user"": { ""type"": ""user"", ""id"": ""24446498"", ""name"": ""Aaron Levie"", ""login"": ""*****@*****.**"" }, }"; IBoxRequest boxRequest = null; var tosUri = new Uri(Constants.BoxApiUriString + Constants.TermsOfServiceUserStatusesString); Config.SetupGet(x => x.TermsOfServiceUserStatusesUri).Returns(tosUri); Handler.Setup(h => h.ExecuteAsync <BoxTermsOfServiceUserStatuses>(It.IsAny <IBoxRequest>())) .Returns(Task.FromResult <IBoxResponse <BoxTermsOfServiceUserStatuses> >(new BoxResponse <BoxTermsOfServiceUserStatuses>() { Status = ResponseStatus.Success, ContentString = responseString })) .Callback <IBoxRequest>(r => boxRequest = r); /*** Act ***/ var createStatusRequest = new BoxTermsOfServiceUserStatusCreateRequest() { TermsOfService = new BoxRequestEntity() { Id = "11446498", Type = BoxType.terms_of_service }, User = new BoxRequestEntity() { Id = "24446498", Type = BoxType.user }, IsAccepted = true }; BoxTermsOfServiceUserStatuses result = await _termsOfServiceManager.CreateBoxTermsOfServiceUserStatusesAsync(createStatusRequest); /*** Assert ***/ //Request check Assert.IsNotNull(boxRequest); Assert.AreEqual(RequestMethod.Post, boxRequest.Method); Assert.AreEqual(tosUri, boxRequest.AbsoluteUri.AbsoluteUri); BoxTermsOfServiceUserStatusCreateRequest payload = JsonConvert.DeserializeObject <BoxTermsOfServiceUserStatusCreateRequest>(boxRequest.Payload); Assert.AreEqual(createStatusRequest.TermsOfService.Id, payload.TermsOfService.Id); Assert.AreEqual(createStatusRequest.TermsOfService.Type, payload.TermsOfService.Type); Assert.AreEqual(createStatusRequest.User.Id, payload.User.Id); Assert.AreEqual(createStatusRequest.User.Type, payload.User.Type); Assert.AreEqual(createStatusRequest.IsAccepted, payload.IsAccepted); //Response check Assert.AreEqual("11446498", result.Id); Assert.AreEqual("terms_of_service_user_status", result.Type); Assert.AreEqual(true, result.IsAccepted); Assert.AreEqual("11446498", result.TermsOfService.Id); Assert.AreEqual("24446498", result.User.Id); Assert.AreEqual("Aaron Levie", result.User.Name); }
/// <summary> /// Create a terms of service status for user. /// </summary> /// <param name="termsOfServiceUserStatusCreateRequest">The request object for terms of service user status.</param> /// <returns>The status of the terms of service for a user.</returns> public async Task <BoxTermsOfServiceUserStatuses> CreateBoxTermsOfServiceUserStatusesAsync(BoxTermsOfServiceUserStatusCreateRequest termsOfServiceUserStatusCreateRequest) { termsOfServiceUserStatusCreateRequest.ThrowIfNull("TermsOfService"); termsOfServiceUserStatusCreateRequest.ThrowIfNull("User"); BoxRequest request = new BoxRequest(_config.TermsOfServiceUserStatusesUri) .Method(RequestMethod.Post) .Payload(_converter.Serialize <BoxTermsOfServiceUserStatusCreateRequest>(termsOfServiceUserStatusCreateRequest)); IBoxResponse <BoxTermsOfServiceUserStatuses> response = await ToResponseAsync <BoxTermsOfServiceUserStatuses>(request).ConfigureAwait(false); return(response.ResponseObject); }