public void CreateNewsItem() { string apiMethod = "/News/NewsItem"; string parameters = @"subject=Subject&contents=Contents&staffid=1&newstype=3&newsstatus=1&fromname=FromName&[email protected]&customemailsubject=CustomEmailSubject&sendemail=0&allowcomments=1&uservisibilitycustom=1&usergroupidlist=1,2&staffvisibilitycustom=1&staffgroupidlist=1,2&expiry=12/31/2015&newscategoryidlist=1"; var newsItemRequest = new NewsItemRequest { Subject = "Subject", Contents = "Contents", StaffId = 1, NewsItemType = NewsItemType.Private, NewsItemStatus = NewsItemStatus.Draft, FromName = "FromName", Email = "*****@*****.**", CustomEmailSubject = "CustomEmailSubject", SendEmail = false, AllowComments = true, UserVisibilityCustom = true, UserGroupIdList = new[] {1, 2}, StaffVisibilityCustom = true, StaffGroupIdList = new[] {1, 2}, Expiry = new UnixDateTime(DateTime.Parse("31/12/2015 15:30:00", CultureInfo.CreateSpecificCulture("en-GB"))), Categories = new[] {1} }; _kayakoApiRequest.Setup(x => x.ExecutePost<NewsItemCollection>(apiMethod, parameters)).Returns(_responseNewsItemCollection); var newsItem = _newsController.CreateNewsItem(newsItemRequest); _kayakoApiRequest.Verify(x => x.ExecutePost<NewsItemCollection>(apiMethod, parameters), Times.Once()); Assert.That(newsItem, Is.EqualTo(_responseNewsItemCollection.FirstOrDefault())); }
public void CreateUpdateDeleteNewsItem() { var newsItemRequest = new NewsItemRequest { Subject = "Subject", Contents = "Contents", StaffId = 1, NewsItemType = NewsItemType.Global, NewsItemStatus = NewsItemStatus.Draft, SendEmail = false, AllowComments = true, Expiry = new UnixDateTime(DateTime.Parse("31/12/2015 23:59:59", CultureInfo.CreateSpecificCulture("en-GB"))), }; var newsItem = TestSetup.KayakoApiService.News.CreateNewsItem(newsItemRequest); Assert.IsNotNull(newsItem); Assert.That(newsItem.Subject, Is.EqualTo(newsItemRequest.Subject)); Assert.That(newsItem.Contents, Is.EqualTo(newsItemRequest.Contents)); Assert.That(newsItem.StaffId, Is.EqualTo(newsItemRequest.StaffId)); Assert.That(newsItem.NewsItemType, Is.EqualTo(newsItemRequest.NewsItemType)); Assert.That(newsItem.NewsItemStatus, Is.EqualTo(newsItemRequest.NewsItemStatus)); Assert.That(newsItem.AllowComments, Is.EqualTo(newsItemRequest.AllowComments)); Assert.That(newsItem.Expiry.UnixTimeStamp, Is.EqualTo(newsItemRequest.Expiry.UnixTimeStamp)); newsItemRequest = NewsItemRequest.FromResponseData(newsItem); newsItemRequest.Contents = "Contents Updated"; newsItemRequest.Subject = "Subject Updated"; newsItem = TestSetup.KayakoApiService.News.UpdateNewsItem(newsItemRequest); Assert.IsNotNull(newsItem); Assert.That(newsItem.Subject, Is.EqualTo(newsItemRequest.Subject)); Assert.That(newsItem.Contents, Is.EqualTo(newsItemRequest.Contents)); var deleteSuccess = TestSetup.KayakoApiService.News.DeleteNewsItem(newsItem.Id); Assert.IsTrue(deleteSuccess); }
public static NewsItem ToResponseData(NewsItemRequest requestData) { return ToResponseType<NewsItemRequest, NewsItem>(requestData); }
public static NewsItem ToResponseData(NewsItemRequest requestData) { return(ToResponseType <NewsItemRequest, NewsItem>(requestData)); }
public static NewsItem ToResponseData(NewsItemRequest requestData) => ToResponseType <NewsItemRequest, NewsItem>(requestData);
private static RequestBodyBuilder PopulateRequestParameters(NewsItemRequest newsItem, RequestTypes requestType) { newsItem.EnsureValidData(requestType); RequestBodyBuilder parameters = new RequestBodyBuilder(); parameters.AppendRequestDataNonEmptyString("subject", newsItem.Subject); parameters.AppendRequestDataNonEmptyString("contents", newsItem.Contents); if (requestType == RequestTypes.Create) { parameters.AppendRequestDataNonNegativeInt("staffid", newsItem.StaffId); } else { parameters.AppendRequestDataNonNegativeInt("editedstaffid", newsItem.StaffId); } if (requestType == RequestTypes.Create && newsItem.NewsItemType.HasValue) { parameters.AppendRequestData("newstype", EnumUtility.ToApiString(newsItem.NewsItemType)); } if (newsItem.NewsItemStatus.HasValue) { parameters.AppendRequestData("newsstatus", EnumUtility.ToApiString(newsItem.NewsItemStatus)); } parameters.AppendRequestDataNonEmptyString("fromname", newsItem.FromName); parameters.AppendRequestDataNonEmptyString("email", newsItem.Email); parameters.AppendRequestDataNonEmptyString("customemailsubject", newsItem.CustomEmailSubject); parameters.AppendRequestDataBool("sendemail", newsItem.SendEmail); parameters.AppendRequestDataBool("allowcomments", newsItem.AllowComments); parameters.AppendRequestDataBool("uservisibilitycustom", newsItem.UserVisibilityCustom); parameters.AppendRequestDataArrayCommaSeparated("usergroupidlist", newsItem.UserGroupIdList); parameters.AppendRequestDataBool("staffvisibilitycustom", newsItem.StaffVisibilityCustom); parameters.AppendRequestDataArrayCommaSeparated("staffgroupidlist", newsItem.StaffGroupIdList); parameters.AppendRequestData("expiry", newsItem.Expiry.DateTime.ToString("M/d/yyyy")); parameters.AppendRequestDataArrayCommaSeparated("newscategoryidlist", newsItem.Categories); return parameters; }
public NewsItem UpdateNewsItem(NewsItemRequest newsItemRequest) { string apiMethod = string.Format("{0}/{1}", NewsItemBaseUrl, newsItemRequest.Id); RequestBodyBuilder parameters = PopulateRequestParameters(newsItemRequest, RequestTypes.Update); NewsItemCollection newsItems = Connector.ExecutePut<NewsItemCollection>(apiMethod, parameters.ToString()); if (newsItems != null && newsItems.Count > 0) { return newsItems[0]; } return null; }
public NewsItem CreateNewsItem(NewsItemRequest newsItemRequest) { RequestBodyBuilder parameters = PopulateRequestParameters(newsItemRequest, RequestTypes.Create); NewsItemCollection newsItems = Connector.ExecutePost<NewsItemCollection>(NewsItemBaseUrl, parameters.ToString()); if (newsItems != null && newsItems.Count > 0) { return newsItems[0]; } return null; }