public async Task AddMockApiWithValidDataShouldReturnOk() { var mockApi = new MockApiResourceModel() { Name = "AddTwoNumber", Body = "function run(req, res) {return {sum: req.content.num1 + req.content.num2} }", RouteTemplate = "math/addition/{num1}/{num2}", Verb = MockApiHttpVerb.Post }; var response = await AddApi(mockApi); response.StatusCode.Should().Be(HttpStatusCode.OK); }
public async Task AddMockApiWithInvalidCharsInRouteTemplateShouldReturnBadRequest() { var mockApi = new MockApiResourceModel() { Name = "".PadLeft(25, 'A'), RouteTemplate = "<script>alert 'hi'</script>", Body = "function(){return \"a\";}", Verb = MockApiHttpVerb.Post }; var response = await AddApi(mockApi, HttpMethod.Post); response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }
public async Task AddMockApiWithIncorrectHttpVerbShouldReturnMethodNotAllowed() { var mockApi = new MockApiResourceModel() { Name = "".PadLeft(25, 'A'), RouteTemplate = "".PadLeft(20, 'A'), Body = "function run(req, res) {return req.num1+req.num2;}", Verb = MockApiHttpVerb.Post }; var response = await AddApi(mockApi, HttpMethod.Put); response.StatusCode.Should().Be(HttpStatusCode.MethodNotAllowed); }
public async Task AddMockApiWithBigBodyDefinitionShouldReturnBadRequest() { var mockApi = new MockApiResourceModel() { Name = "".PadLeft(25, 'A'), RouteTemplate = "".PadLeft(20, 'A'), Body = "function(){return sdaaaaaaaaasdaaaaaaaaaaaaaaaaaaaaaaaaaddsaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" + "aaaaaaaaaaaaasdaaaaaaaaaaaaaaaaaaaaaasaddddddddddddddddddddsaaaaaaaaaaaaaaaaaaaadddddddddddddddddddddddaaaaa" + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaasad2111111111111111ddddddddddddddddddddddddddddd1111111111111111aaaaa" + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa211111111111111dddddddddddddddddddddddddd1111111111111111111aaaaaa" + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa211111ddddddddddddddddddddddddddddddddddddd11111111111111111aaaaaaa" + "sadddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddaaaaaaaa;}", Verb = MockApiHttpVerb.Post }; var response = await AddApi(mockApi); response.StatusCode.Should().Be(HttpStatusCode.BadRequest); }
protected override async Task <HttpResponseMessage> ExecuteInternal(HttpRequestMessage req) { // read and validate collection name var routeData = req.GetRouteData(); string collectionName = string.Empty; if (routeData.Values != null && routeData.Values.ContainsKey("collectionName")) { collectionName = routeData.Values["collectionName"].ToString(); } // read and validate mock api to be added var mockAPI = await req.Content.ReadAsAsync <MockApiResourceModel>(); Validator.ValidateMockApiResource(mockAPI, languageBindingFactory); // add the mock api var response = await this.MockApiRepo.AddMockApiAsync(mockAPI.ToDomainModel(), collectionName); return(req.CreateResponse(HttpStatusCode.OK, MockApiResourceModel.FromDomainModel(response))); }