public async Task <string> CreatePersonAsync(string personGroupId, string personName, string personDescription) { using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Add(_ocpApimSubscriptionKey, _subscriptionKey); string uri = $"{_uriBase}/persongroups/{personGroupId}/persons"; CreatePersonRequest body = new CreatePersonRequest() { Name = personName, UserData = personDescription }; string bodyText = JsonConvert.SerializeObject(body); StringContent httpContent = new StringContent(bodyText, Encoding.UTF8, "application/json"); HttpResponseMessage response = await client.PostAsync(uri, httpContent); if (response.IsSuccessStatusCode) { string content = await response.Content.ReadAsStringAsync(); CreatePersonResponse result = JsonConvert.DeserializeObject <CreatePersonResponse>(content); return(result.PersonId); } throw CreateHttpException(await response.Content.ReadAsStringAsync()); } }
public CreatePersonResponse CreatePerson(CreatePersonRequest request) { CreatePersonResponse response = new CreatePersonResponse(); try { PersonService service = new PersonService(_personRepository); service.AddPerson(request.Person); response.Success = true; } catch (Exception ex) { response.Message = "Something went wrong: " + ex.ToString(); response.Success = false; } return response; }
public async Task SuccessFulRegister() { #region Assume string dataUri = System.IO.File.ReadAllText(@"./TestData/Base64Image.txt"); string personId = "a75e036d-48fa-42a6-85ca-dd2bb0d9db11"; string faceId = "bd02056c-d0e7-4b6e-adef-0383ba343aff"; var Body = new RegisterRequest() { DataUri = dataUri, Email = "*****@*****.**", FullName = "Richard" }; var createPerson = new CreatePerson() { name = "*****@*****.**", userData = "Richard" }; var DetectedFaces = new List <DetectedFace>() { new DetectedFace() { faceId = faceId } }; var CreateResponsePerson = new CreatePersonResponse() { personId = personId }; #endregion #region Mock var formatter = new Mock <IFormatter>(); formatter .Setup(m => m.DataUriToByteArray(It.IsAny <string>())) .Returns(new byte[0]); var cogniativeService = new Mock <ICogniativeService>(); cogniativeService .Setup(m => m.DetectFaceRequest(It.IsAny <byte[]>())) .Returns(Task.FromResult(DetectedFaces)); cogniativeService .Setup(m => m.CreatePerson(It.IsAny <string>(), It.IsAny <CreatePerson>())) .Returns(Task.FromResult(CreateResponsePerson)); cogniativeService .Setup(m => m.AddFace(It.IsAny <string>(), It.IsAny <byte[]>())) .Returns(Task.CompletedTask); cogniativeService .Setup(m => m.TrainPersonGroup()) .Returns(Task.CompletedTask); ILogger <Register> logger = new Mock <ILogger <Register> >().Object; var controller = new Register(formatter.Object, cogniativeService.Object); var request = new DefaultHttpRequest(new DefaultHttpContext()) { Body = new MemoryStream(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(Body))) }; #endregion #region Act var actionResult = await controller.Run(request, logger); var returnResult = actionResult as OkObjectResult; var resultData = returnResult?.Value as CreatePerson; #endregion #region Assert Assert.AreEqual(createPerson.name, resultData.name); Assert.AreEqual(createPerson.userData, resultData.userData); #endregion }