public void ValidGetCustomActionTest(CustomActionTestData.ValidUrl url, CustomActionTestData.ValidLabel validLabel, CustomActionTestData.ValidLabelValue validLabelValue, CustomActionTestData.ValidPlaceValue validPlaceValue) { var createRequest = CreateCustomActionTests.GetCreateRequest(CustomActionTestData.ValidUrlMapper[url], CustomActionTestData.ValidLabelMapper[validLabel](CustomActionTestData.ValidLabelValueMapper[validLabelValue]), CustomActionTestData.ValidPlaceValueMapper[validPlaceValue]); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <CreateCustomActionResponse>(createRequest, HttpMethod.POST.ToNetHttpMethod()); if (validLabel == CustomActionTestData.ValidLabel.BothEnJa) { PrAssume.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Can not create custom action"); var allCustomAction = hanlder.GetAllCustomActions(); CreateCustomActionTests.DeleteCustomAction(response.Result.Id); PrAssert.That(allCustomAction.Result[response.Result.Id].Url, PrIs.EqualTo(CustomActionTestData.ValidUrlMapper[url]), "The url is not as expected"); PrAssert.That(allCustomAction.Result[response.Result.Id].Label.EnUs.Value, PrIs.EqualTo(CustomActionTestData.ValidLabelValueMapper[validLabelValue][CustomActionTestData.ValueParam]), "The En label value is not as expected"); PrAssert.That(allCustomAction.Result[response.Result.Id].Label.Ja.Value, PrIs.EqualTo(CustomActionTestData.ValidLabelValueMapper[validLabelValue][CustomActionTestData.ValueParam]), "The Ja label value is not as expected"); if (validLabelValue != CustomActionTestData.ValidLabelValue.MissingDefaultStringWithSpace && validLabelValue != CustomActionTestData.ValidLabelValue.MissingDefaultStringNoSpace) { PrAssert.That(allCustomAction.Result[response.Result.Id].Label.Ja.Default, PrIs.EqualTo(CustomActionTestData.ValidLabelValueMapper[validLabelValue][CustomActionTestData.DefaultParam]), "The Ja label default is not as expected"); PrAssert.That(allCustomAction.Result[response.Result.Id].Label.EnUs.Default, PrIs.EqualTo(CustomActionTestData.ValidLabelValueMapper[validLabelValue][CustomActionTestData.DefaultParam]), "The En label default is not as expected"); } } else { PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Create custom action Successfully"); } }
public void ValidDuplicateUpdateCustomActionTest(CustomActionTestData.DuplicatePut duplicatePut) { var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <UpdateCustomActionResponse>(CustomActionTestData.ValidDuplicateUpdateMapper[duplicatePut](PrepareData.Data.Id), HttpMethod.PUT.ToNetHttpMethod()); PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Can not update custom action"); }
public void ValidCustomActionReplaceTest(ResourceId resourceId) { var requestUrl = "http://hrbc1-web.localvm/{{" + resourceId.ToString() + ".P_Id}}"; var expectedId = resourceId == ResourceId.None ? 0 : RecordsCreator.Data[resourceId].Id; var expectUrl = $"http://hrbc1-web.localvm/{expectedId}"; var createRequest = CreateCustomActionTests.GetCreateRequest(requestUrl, CustomActionTestData.ValidLabelMapper[CustomActionTestData.ValidLabel.BothEnJa](CustomActionTestData.ValidLabelValueMapper[CustomActionTestData.ValidLabelValue.StringNoSpaceBoth]), CustomActionTestData.ValidPlaceValueMapper[CustomActionTestData.ValidPlaceValue.Client]); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <CreateCustomActionResponse>(createRequest, HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(response, PrIs.SuccessfulResponse(), "Can not create custom action"); var resourceName = resourceId == ResourceId.Person ? "candidate" : resourceId.ToString().ToLower(); var replaceRequest = GetReplaceRequest(response.Result.Id, new Dictionary <string, object> { [resourceName] = resourceId == ResourceId.None ? 0 : RecordsCreator.Data[resourceId].Id, }); hanlder = new CustomActionManager(); var replaceResponse = hanlder.Replace <ReplaceCustomActionResponse>(replaceRequest, HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(replaceResponse, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Can not create custom action"); if (resourceId != ResourceId.None && resourceId != ResourceId.Contract) { PrAssert.That(replaceResponse.Result.Url, PrIs.EqualTo(expectUrl), "Can not create custom action"); } }
public void InvalidMethodCustomActionsReplaceTest(HttpMethod httpMethod) { var hanlder = new CustomActionManager(); var response = hanlder.Replace <object>(httpMethod.ToNetHttpMethod()); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.NotFound), $"{httpMethod} method custom action successfully"); }
public void InvalidJsonCustomActionReplaceTest(InvalidSpecialCondition json) { var hanlder = new CustomActionManager(); var response = hanlder.Replace <object>(DashboardHelpers.InvalidBodyJsonTestCasesMapper[json], HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Create custom action successfully"); }
public void ValidDuplicateCustomActionReplaceTest(CustomActionTestData.DuplicateReplace duplicateReplace) { var hanlder = new CustomActionManager(); var replaceResponse = hanlder.Replace <object>(CustomActionTestData.ValidDuplicateActionReplaceMapper[duplicateReplace](PrepareData.Data.Id, RecordsCreator.Data[ResourceId.Client].Id), HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(replaceResponse, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Can not create custom action"); }
public void ValidReturnJsonContentTypeGetCustomActionTest() { var hanlder = new CustomActionManager(); var allCustomAction = hanlder.CustomActions(HttpMethod.GET.ToNetHttpMethod()); PrAssert.That(allCustomAction.IsSuccessStatusCode, "The url is not as expected"); PrAssert.That(allCustomAction.Content.Headers.ContentType.MediaType, PrIs.EqualTo("application/json"), "Content type is not as expected"); }
public void ValidDuplicateCreateCustomActionTest(CustomActionTestData.DuplicatePost duplicatePost) { var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <CreateCustomActionResponse>(CustomActionTestData.ValidDuplicateCreateMapper[duplicatePost], HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Can not create custom action"); DeleteCustomAction(response.Result.Id); }
public void InvalidInjectionGetUrlCustomActionTest(InjectionInput injection) { Dictionary <string, string> getUrlRequest = GetUrlRequest(InjectionInputData.InjectionInputMapper[injection]); var hanlder = new CustomActionManager(); var response = hanlder.GetUrl <ActionUrlResponse>(getUrlRequest, HttpMethod.GET.ToNetHttpMethod()); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Update custom action successfully"); }
public void InvalidInjectionDeleteCustomActionTest(string parameterName, InjectionInput injection) { var deleteRequest = GetDeleteRequest(InjectionInputData.InjectionInputMapper[injection]); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <object>(deleteRequest, HttpMethod.DELETE.ToNetHttpMethod()); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Custom action is updated!"); }
public void ValidGetUrlCustomActionTest() { Dictionary <string, string> getUrlRequest = GetUrlRequest(PrepareData.Data.Id); var hanlder = new CustomActionManager(); var response = hanlder.GetUrl <ActionUrlResponse>(getUrlRequest, HttpMethod.GET.ToNetHttpMethod()); PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Can not update custom action"); PrAssert.That(response.Result.Url, PrIs.EqualTo(expectUrl), "The url is not as expected"); }
public void ValidReturnJsonContentTypeGetUrlCustomActionTest() { Dictionary <string, string> getUrlRequest = GetUrlRequest(PrepareData.Data.Id); var hanlder = new CustomActionManager(); var response = hanlder.GetUrl(getUrlRequest, HttpMethod.GET.ToNetHttpMethod()); PrAssert.That(response.IsSuccessStatusCode, "Can not update custom action"); PrAssert.That(response.Content.Headers.ContentType.MediaType, PrIs.EqualTo("application/json"), "The content type is not as expected"); }
public void InvalidGetUrlCustomActionTest(string parameterName, CustomActionTestData.InvalidValue invalidValue) { Dictionary <string, object> getUrlRequest = GetUrlRequest(PrepareData.Data.Id).ToDictionary(a => a.Key, a => (object)a.Value); CustomActionTestData.InvalidValueMapper[invalidValue](getUrlRequest, parameterName); var hanlder = new CustomActionManager(); var response = hanlder.GetUrl <ActionUrlResponse>(getUrlRequest.ToDictionary(a => a.Key, a => a.Value.ToString()), HttpMethod.GET.ToNetHttpMethod()); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Update custom action successfully"); }
public void InvalidIdDeleteCustomActionTest(string parameterName, CustomActionTestData.InvalidValue invalidValue) { var deleteRequest = GetDeleteRequest(PrepareData.Data.Id); CustomActionTestData.InvalidValueMapper[invalidValue](deleteRequest, "id"); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <object>(deleteRequest, HttpMethod.DELETE.ToNetHttpMethod()); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Custom action is updated!"); }
public void ValidReturnJsonContentTypeCreateCustomActionTest() { var createRequest = GetCreateRequest(CustomActionTestData.ValidUrlMapper[CustomActionTestData.ValidUrl.ExistingUrl], CustomActionTestData.ValidLabelMapper[CustomActionTestData.ValidLabel.BothEnJa](CustomActionTestData.ValidLabelValueMapper[CustomActionTestData.ValidLabelValue.MissingDefaultStringNoSpace]), CustomActionTestData.ValidPlaceValueMapper[CustomActionTestData.ValidPlaceValue.Activity]); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction(createRequest, HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(response.IsSuccessStatusCode, "Can not create custom action successfully"); PrAssert.That(response.Content.Headers.ContentType.MediaType, PrIs.EqualTo("application/json"), "Content type is not as expected"); }
public static void DeleteCustomAction(string id) { var deleteRequest = new Dictionary <string, object>() { [CustomActionTestData.IdParam] = id, }; var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <object>(deleteRequest, HttpMethod.DELETE.ToNetHttpMethod()); PrAssume.That(response, PrIs.SuccessfulResponse(), "Can not delete custom action"); }
public void ValidDeleteCustomActionTest() { var deleteRequest = GetDeleteRequest(PrepareData.Data.Id); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <object>(deleteRequest, HttpMethod.DELETE.ToNetHttpMethod()); PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(HttpStatusCode.NoContent), "Can not update custom action"); var allCustomAction = hanlder.GetAllCustomActions(); PrAssert.That(allCustomAction.Result.ContainsKey(PrepareData.Data.Id), PrIs.EqualTo(false), "The custom action is not deleted"); }
public void InvalidInjectionReplaceValueCustomActionReplaceTest(string parameterName, InjectionInput injection) { var replaceRequest = GetReplaceRequest(PrepareData.Data.Id, new Dictionary <string, object> { [ResourceId.Client.ToString().ToLower()] = InjectionInputData.InjectionInputMapper[injection], }); var hanlder = new CustomActionManager(); var replaceResponse = hanlder.Replace <object>(replaceRequest, HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(replaceResponse, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Can not create custom action"); }
public void ValidReturnJsonContentTypeUpdateCustomActionTest() { var updateRequest = GetUpdateRequest(PrepareData.Data.Id, PrepareData.Data.LocalizedTextId, CustomActionTestData.ValidUrlMapper[CustomActionTestData.ValidUrl.ExistingUrl], CustomActionTestData.ValidLabelMapper[CustomActionTestData.ValidLabel.BothEnJa](CustomActionTestData.ValidLabelValueMapper[CustomActionTestData.ValidLabelValue.StringNoSpaceBoth])); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction(updateRequest, HttpMethod.PUT.ToNetHttpMethod()); PrAssert.That(response.IsSuccessStatusCode, "Can not update custom action"); PrAssert.That(response.Content.Headers.ContentType.MediaType, PrIs.EqualTo("application/json"), "Content type is not as expected"); }
private void ProvisionCustomActions(AppManifestBase manifest) { if (manifest.CustomActionCreators != null && manifest.CustomActionCreators.Count > 0) { var actionMan = new CustomActionManager(_ctx, _web) { CustomActions = manifest.CustomActionCreators }; actionMan.Notify += Provisioner_Notify; actionMan.CreateAll(); } }
public void ValidDuplicateDeleteCustomActionTest(CustomActionTestData.DuplicateId duplicateParameter) { var deleteRequest = duplicateParameter == CustomActionTestData.DuplicateId.SameValue ? $"{{\"id\": {PrepareData.Data.Id}, \"id\": {PrepareData.Data.Id} }}" : $"{{\"id\": {PrepareData.Data.Id}, \"id\": 305 }}"; var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <object>(deleteRequest, HttpMethod.DELETE.ToNetHttpMethod()); PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(HttpStatusCode.NoContent), "Can not update custom action"); var allCustomAction = hanlder.GetAllCustomActions(); PrAssert.That(allCustomAction.Result.ContainsKey(PrepareData.Data.Id), PrIs.EqualTo(false), "The custom action is not deleted"); }
public void ValidReturnJsonContentTypeCustomActionReplaceTest() { var replaceRequest = GetReplaceRequest(PrepareData.Data.Id, new Dictionary <string, object> { [ResourceId.Client.ToString().ToLower()] = RecordsCreator.Data[ResourceId.Client].Id, }); var hanlder = new CustomActionManager(); var replaceResponse = hanlder.Replace(replaceRequest, HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(replaceResponse.IsSuccessStatusCode, "Can not create custom action"); PrAssert.That(replaceResponse.Content.Headers.ContentType.MediaType, PrIs.EqualTo("application/json"), "Content type is not as expected"); }
public void InvalidLabelInjectionCreateCustomActionTest(string parameterName, InjectionInput injection) { var labelDic = new Dictionary <string, object>(CustomActionTestData.ValidLabelMapper[CustomActionTestData.ValidLabel.BothEnJa](CustomActionTestData.ValidLabelValueMapper[CustomActionTestData.ValidLabelValue.StringNoSpaceBoth])) { [parameterName] = InjectionInputData.InjectionInputMapper[injection] }; var createRequest = GetCreateRequest(CustomActionTestData.ValidUrlMapper[CustomActionTestData.ValidUrl.ExistingUrl], labelDic, CustomActionTestData.ValidPlaceValueMapper[CustomActionTestData.ValidPlaceValue.Client]); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <CreateCustomActionResponse>(createRequest, HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Create custom action successfully"); }
public void ValidDuplicateIdCustomActionTest(CustomActionTestData.DuplicateId duplicateParameter) { var deleteRequest = duplicateParameter == CustomActionTestData.DuplicateId.SameValue ? new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("id", $"{PrepareData.Data.Id}"), new KeyValuePair <string, string>("id", $"{PrepareData.Data.Id}") } : new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("id", $"{PrepareData.Data.Id}"), new KeyValuePair <string, string>("id", "305") }; var hanlder = new CustomActionManager(); var response = hanlder.GetUrl <ActionUrlResponse>(deleteRequest, HttpMethod.GET.ToNetHttpMethod()); PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Can not read custom action url"); PrAssert.That(response.Result.Url, PrIs.EqualTo(expectUrl), "The url is not as expected"); }
public void InvalidPlaceValueCreateCustomActionTest(string parameterName, CustomActionTestData.InvalidValue invalidValue) { var placeList = CustomActionTestData.ValidPlaceValueMapper[CustomActionTestData.ValidPlaceValue.Client].Select(item => new Dictionary <string, object>(item)).ToArray(); foreach (var place in placeList) { CustomActionTestData.InvalidValueMapper[invalidValue](place, parameterName); } var createRequest = GetCreateRequest(CustomActionTestData.ValidUrlMapper[CustomActionTestData.ValidUrl.ExistingUrl], CustomActionTestData.ValidLabelMapper[CustomActionTestData.ValidLabel.BothEnJa](CustomActionTestData.ValidLabelValueMapper[CustomActionTestData.ValidLabelValue.StringNoSpaceBoth]), placeList); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <CreateCustomActionResponse>(createRequest, HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Create custom action successfully"); }
public void InvalidReplaceValueCustomActionReplaceTest(string parameterName, CustomActionTestData.InvalidValue invalidValue) { var replaceDic = new Dictionary <string, object> { [ResourceId.Client.ToAlias()] = RecordsCreator.Data[ResourceId.Client].Id, }; CustomActionTestData.InvalidValueMapper[invalidValue](replaceDic, parameterName); var replaceRequest = GetReplaceRequest(PrepareData.Data.Id, replaceDic); var hanlder = new CustomActionManager(); var replaceResponse = hanlder.Replace <object>(replaceRequest, HttpMethod.POST.ToNetHttpMethod()); PrAssert.That(replaceResponse, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Can not create custom action"); }
public void Deprovision(ClientContext ctx, Web web, AppManifestBase manifest) { Ctx = ctx; Web = web; IsHostWeb = !WebHasAppinstanceId(Web); var customActionManager = new CustomActionManager(ctx) { CustomActions = manifest.CustomActionCreators }; customActionManager.DeleteAll(); var fileManager = new FileManager { Folders = manifest.Folders, Creators = manifest.FileCreators }; fileManager.DeleteAll(ctx, web); var listManager = new ListInstanceManager(ctx, IsHostWeb) { Creators = manifest.ListCreators }; listManager.DeleteAll(); var contentTypeManager = new ContentTypeManager { Creators = manifest.ContentTypeCreators }; contentTypeManager.DeleteAll(ctx); var fieldManager = new FieldManager { FieldDefinitions = manifest.Fields }; fieldManager.DeleteAll(ctx); var remoteEventRegistrationManager = new RemoteEventRegistrationManager(); remoteEventRegistrationManager.DeleteAll(ctx, web, manifest.RemoteEventRegistrationCreators); }
public void InvalidLabelValueInjectionUpdateCustomActionTest(string language, string parameterName, InjectionInput injection) { var labelDic = new Dictionary <string, object>(CustomActionTestData.ValidLabelMapper[CustomActionTestData.ValidLabel.BothEnJa](CustomActionTestData.ValidLabelValueMapper[CustomActionTestData.ValidLabelValue.StringNoSpaceBoth])) { [language] = new Dictionary <string, object>(CustomActionTestData.ValidLabelValueMapper[CustomActionTestData.ValidLabelValue.StringNoSpaceBoth]) { [parameterName] = InjectionInputData.InjectionInputMapper[injection] } }; var updateRequest = GetUpdateRequest(PrepareData.Data.Id, PrepareData.Data.LocalizedTextId, CustomActionTestData.ValidUrlMapper[CustomActionTestData.ValidUrl.ExistingUrl], labelDic); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <UpdateCustomActionResponse>(updateRequest, HttpMethod.PUT.ToNetHttpMethod()); PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Create custom action successfully"); }
public void ValidUpdateCustomActionTest(CustomActionTestData.ValidUrl url, CustomActionTestData.ValidLabel validLabel, CustomActionTestData.ValidLabelValue validLabelValue) { var updateRequest = GetUpdateRequest(PrepareData.Data.Id, PrepareData.Data.LocalizedTextId, CustomActionTestData.ValidUrlMapper[url], CustomActionTestData.ValidLabelMapper[validLabel](CustomActionTestData.ValidLabelValueMapper[validLabelValue])); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <UpdateCustomActionResponse>(updateRequest, HttpMethod.PUT.ToNetHttpMethod()); if (validLabel == CustomActionTestData.ValidLabel.BothEnJa) { PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Can not update custom action"); var allCustomAction = hanlder.GetAllCustomActions(); PrAssert.That(allCustomAction.Result[PrepareData.Data.Id].Url, PrIs.EqualTo(CustomActionTestData.ValidUrlMapper[url]), "The url is not as expected"); } else { PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Create update custom action"); } }
public void InvalidUpdateCustomActionTest(string parameterName, CustomActionTestData.InvalidValue invalidValue) { var updateRequest = GetUpdateRequest(PrepareData.Data.Id, PrepareData.Data.LocalizedTextId, CustomActionTestData.ValidUrlMapper[CustomActionTestData.ValidUrl.ExistingUrl], new Dictionary <string, object>(CustomActionTestData.ValidLabelMapper[CustomActionTestData.ValidLabel.BothEnJa](CustomActionTestData.ValidLabelValueMapper[CustomActionTestData.ValidLabelValue.StringNoSpaceBoth]))); CustomActionTestData.InvalidValueMapper[invalidValue](updateRequest, parameterName); var hanlder = new CustomActionManager(); var response = hanlder.CustomAction <UpdateCustomActionResponse>(updateRequest, HttpMethod.PUT.ToNetHttpMethod()); if (parameterName == CustomActionTestData.UrlParam && (invalidValue != CustomActionTestData.InvalidValue.Empty && invalidValue != CustomActionTestData.InvalidValue.MissingParam)) { PrAssert.That(response, PrIs.SuccessfulResponse().And.HttpCode(System.Net.HttpStatusCode.OK), "Can not create custom action successfully"); } else { PrAssert.That(response, PrIs.ErrorResponse().And.HttpCode(System.Net.HttpStatusCode.BadRequest), "Create custom action successfully"); } }