Nfield.Services.Implementation.NfieldInterviewersService.AddAsync C# (CSharp) Method

AddAsync() public method

See INfieldInterviewersService.AddAsync
public AddAsync ( Interviewer interviewer ) : Task
interviewer Nfield.Models.Interviewer
return Task
        public Task<Interviewer> AddAsync(Interviewer interviewer)
        {
            return Client.PostAsJsonAsync(InterviewersApi.AbsoluteUri, interviewer)
                         .ContinueWith(task => task.Result.Content.ReadAsStringAsync().Result)
                         .ContinueWith(task => JsonConvert.DeserializeObject<Interviewer>(task.Result))
                         .FlattenExceptions();
        }

Usage Example

        public void TestAddAsync_ServerAcceptsInterviewer_ReturnsInterviewer()
        {
            var interviewer = new Interviewer { UserName = "******" };
            var mockedNfieldConnection = new Mock<INfieldConnectionClient>();
            var mockedHttpClient = CreateHttpClientMock(mockedNfieldConnection);
            var content = new StringContent(JsonConvert.SerializeObject(interviewer));
            mockedHttpClient
                .Setup(client => client.PostAsJsonAsync(ServiceAddress + "interviewers/", interviewer))
                .Returns(CreateTask(HttpStatusCode.OK, content));

            var target = new NfieldInterviewersService();
            target.InitializeNfieldConnection(mockedNfieldConnection.Object);

            var actual = target.AddAsync(interviewer).Result;

            Assert.Equal(interviewer.UserName, actual.UserName);
        }