public void CreateKnowledgebaseCategory() { var knowledgebaseCategoryRequest = new KnowledgebaseCategoryRequest { Title = "Title", CategoryType = KnowledgebaseCategoryType.Inherit, ParentCategoryId = 3, DisplayOrder = 3, ArticleSortOrder = KnowledgebaseCategoryArticleSortOrder.SortCreationDate, AllowComments = true, AllowRating = false, IsPublished = true, UserVisibilityCustom = true, UserGroupIdList = new[] { 1, 2, 3 }, StaffVisibilityCustom = false, StaffGroupIdList = new[] { 1, 2, 3 }, StaffId = 3 }; const string apiMethod = "/Knowledgebase/Category"; const string parameters = "title=Title&categorytype=4&parentcategoryid=3&displayorder=3&articlesortorder=4&allowcomments=1&allowrating=0&ispublished=1&uservisibilitycustom=1&usergroupidlist=1,2,3&staffvisibilitycustom=0&staffgroupidlist=1,2,3&staffid=3"; _kayakoApiRequest.Setup(x => x.ExecutePost <KnowledgebaseCategoryCollection>(apiMethod, parameters)).Returns(_responseKnowledgebaseCategoryCollection); var knowledgebaseCategory = _knowledgebaseController.CreateKnowledgebaseCategory(knowledgebaseCategoryRequest); _kayakoApiRequest.Verify(x => x.ExecutePost <KnowledgebaseCategoryCollection>(apiMethod, parameters), Times.Once()); Assert.That(knowledgebaseCategory, Is.EqualTo(_responseKnowledgebaseCategoryCollection.FirstOrDefault())); }
public KnowledgebaseCategory CreateKnowledgebaseCategory(KnowledgebaseCategoryRequest knowledgebaseCategoryRequest) { RequestBodyBuilder parameters = PopulateRequestParameters(knowledgebaseCategoryRequest, RequestTypes.Create); KnowledgebaseCategoryCollection knowledgebaseCategories = Connector.ExecutePost <KnowledgebaseCategoryCollection>(KnowledgebaseCategoryBaseUrl, parameters.ToString()); if (knowledgebaseCategories != null && knowledgebaseCategories.Count > 0) { return(knowledgebaseCategories[0]); } return(null); }
public KnowledgebaseCategory UpdateKnowledgebaseCategory(KnowledgebaseCategoryRequest knowledgebaseCategoryRequest) { string apiMethod = String.Format("{0}/{1}", KnowledgebaseCategoryBaseUrl, knowledgebaseCategoryRequest.Id); RequestBodyBuilder parameters = PopulateRequestParameters(knowledgebaseCategoryRequest, RequestTypes.Update); KnowledgebaseCategoryCollection knowledgebaseCategories = Connector.ExecutePut <KnowledgebaseCategoryCollection>(apiMethod, parameters.ToString()); if (knowledgebaseCategories != null && knowledgebaseCategories.Count > 0) { return(knowledgebaseCategories[0]); } return(null); }
public void CreateUpdateDeleteKnowledgebaseCategory() { var knowledgebaseCategoryRequest = new KnowledgebaseCategoryRequest { Title = "Title", CategoryType = KnowledgebaseCategoryType.Global, ParentCategoryId = 1, DisplayOrder = 4, ArticleSortOrder = KnowledgebaseCategoryArticleSortOrder.SortCreationDate, AllowComments = true, AllowRating = false, IsPublished = true, UserVisibilityCustom = false, StaffVisibilityCustom = false, StaffId = 1 }; var knowledgebaseCategory = TestSetup.KayakoApiService.Knowledgebase.CreateKnowledgebaseCategory(knowledgebaseCategoryRequest); Assert.IsNotNull(knowledgebaseCategory); Assert.That(knowledgebaseCategory.Title, Is.EqualTo(knowledgebaseCategoryRequest.Title)); Assert.That(knowledgebaseCategory.CategoryType, Is.EqualTo(knowledgebaseCategoryRequest.CategoryType)); Assert.That(knowledgebaseCategory.ParentKnowledgebaseCategoryId, Is.EqualTo(knowledgebaseCategoryRequest.ParentCategoryId)); Assert.That(knowledgebaseCategory.DisplayOrder, Is.EqualTo(knowledgebaseCategoryRequest.DisplayOrder)); Assert.That(knowledgebaseCategory.AllowComments, Is.EqualTo(knowledgebaseCategoryRequest.AllowComments)); Assert.That(knowledgebaseCategory.AllowRating, Is.EqualTo(knowledgebaseCategoryRequest.AllowRating)); Assert.That(knowledgebaseCategory.IsPublished, Is.EqualTo(knowledgebaseCategoryRequest.IsPublished)); Assert.That(knowledgebaseCategory.UserVisibilityCustom, Is.EqualTo(knowledgebaseCategoryRequest.UserVisibilityCustom)); Assert.That(knowledgebaseCategory.StaffVisibilityCustom, Is.EqualTo(knowledgebaseCategoryRequest.StaffVisibilityCustom)); Assert.That(knowledgebaseCategory.StaffId, Is.EqualTo(knowledgebaseCategoryRequest.StaffId)); knowledgebaseCategoryRequest.Id = knowledgebaseCategory.Id; knowledgebaseCategoryRequest.Title += "_Title"; knowledgebaseCategoryRequest.DisplayOrder = 32; knowledgebaseCategory = TestSetup.KayakoApiService.Knowledgebase.UpdateKnowledgebaseCategory(knowledgebaseCategoryRequest); Assert.IsNotNull(knowledgebaseCategory); Assert.That(knowledgebaseCategory.Title, Is.EqualTo(knowledgebaseCategoryRequest.Title)); Assert.That(knowledgebaseCategory.DisplayOrder, Is.EqualTo(knowledgebaseCategoryRequest.DisplayOrder)); var deleteResult = TestSetup.KayakoApiService.Knowledgebase.DeleteKnowledgebaseCategory(knowledgebaseCategoryRequest.Id); Assert.IsTrue(deleteResult); }
private RequestBodyBuilder PopulateRequestParameters(KnowledgebaseCategoryRequest knowledgebaseCategoryRequest, RequestTypes requestType) { knowledgebaseCategoryRequest.EnsureValidData(requestType); RequestBodyBuilder parameters = new RequestBodyBuilder(); parameters.AppendRequestDataNonEmptyString("title", knowledgebaseCategoryRequest.Title); if (knowledgebaseCategoryRequest.CategoryType.HasValue) { parameters.AppendRequestData("categorytype", EnumUtility.ToApiString(knowledgebaseCategoryRequest.CategoryType.Value)); } if (knowledgebaseCategoryRequest.ParentCategoryId.HasValue) { parameters.AppendRequestData("parentcategoryid", knowledgebaseCategoryRequest.ParentCategoryId.Value); } if (knowledgebaseCategoryRequest.DisplayOrder.HasValue) { parameters.AppendRequestDataNonNegativeInt("displayorder", knowledgebaseCategoryRequest.DisplayOrder.Value); } if (knowledgebaseCategoryRequest.ArticleSortOrder.HasValue) { parameters.AppendRequestData("articlesortorder", EnumUtility.ToApiString(knowledgebaseCategoryRequest.ArticleSortOrder.Value)); } parameters.AppendRequestDataBool("allowcomments", knowledgebaseCategoryRequest.AllowComments); parameters.AppendRequestDataBool("allowrating", knowledgebaseCategoryRequest.AllowRating); parameters.AppendRequestDataBool("ispublished", knowledgebaseCategoryRequest.IsPublished); parameters.AppendRequestDataBool("uservisibilitycustom", knowledgebaseCategoryRequest.UserVisibilityCustom); parameters.AppendRequestDataArrayCommaSeparated("usergroupidlist", knowledgebaseCategoryRequest.UserGroupIdList); parameters.AppendRequestDataBool("staffvisibilitycustom", knowledgebaseCategoryRequest.StaffVisibilityCustom); parameters.AppendRequestDataArrayCommaSeparated("staffgroupidlist", knowledgebaseCategoryRequest.StaffGroupIdList); if (requestType == RequestTypes.Create && knowledgebaseCategoryRequest.StaffId.HasValue) { parameters.AppendRequestDataNonNegativeInt("staffid", knowledgebaseCategoryRequest.StaffId.Value); } return(parameters); }