Esempio n. 1
0
        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()));
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        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);
        }