public async Task Post_Is_201_Response() { var startup = new TestStartup( //This will be invoked before the controller is created so we can modify these mocked services (testServices) => { RelationServiceMocks.SetupMocksForPost(testServices.ServiceContext); }); await base.Post_Is_201_Response(startup.UseDefaultTestSetup, RouteConstants.RelationsSegment, new StringContent(@"{ ""relationTypeAlias"": ""testType"", ""parentId"": 8910, ""childId"" : 567, ""comment"" : ""Comment"" }", Encoding.UTF8, "application/json")); }
public async Task Post_Is_400_Validation_Required_Fields() { var startup = new TestStartup( //This will be invoked before the controller is created so we can modify these mocked services (testServices) => { RelationServiceMocks.SetupMocksForPost(testServices.ServiceContext); }); using (var server = TestServer.Create(builder => startup.UseDefaultTestSetup(builder))) { var request = new HttpRequestMessage() { RequestUri = new Uri($"http://testserver/umbraco/rest/v1/{RouteConstants.RelationsSegment}"), Method = HttpMethod.Post, }; request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/hal+json")); //NOTE: it is missing parent id request.Content = new StringContent(@"{ ""relationTypeAlias"": """", ""childId"" : 1234, ""comment"" : ""Comment"" }", Encoding.UTF8, "application/json"); Console.WriteLine(request); var result = await server.HttpClient.SendAsync(request); Console.WriteLine(result); var json = await((StreamContent)result.Content).ReadAsStringAsync(); Console.Write(JsonConvert.SerializeObject(JsonConvert.DeserializeObject(json), Formatting.Indented)); Assert.AreEqual(HttpStatusCode.BadRequest, result.StatusCode); var djson = JsonConvert.DeserializeObject <JObject>(json); Assert.AreEqual(2, djson["totalResults"].Value <int>()); Assert.AreEqual("relation.ParentId", djson["_embedded"]["errors"][0]["logRef"].Value <string>()); Assert.AreEqual("relation.RelationTypeAlias", djson["_embedded"]["errors"][1]["logRef"].Value <string>()); } }