public void CreateUpdateDeleteNewsSubscriber()
        {
            var newsSubscriberRequest = new NewsSubscriberRequest
            {
                Email = "*****@*****.**",
                IsValidated = false
            };

            var newsSubscriber = TestSetup.KayakoApiService.News.CreateNewsSubscriber(newsSubscriberRequest);

            Assert.IsNotNull(newsSubscriber);
            Assert.That(newsSubscriber.Email, Is.EqualTo(newsSubscriberRequest.Email));
            Assert.That(newsSubscriber.IsValidated, Is.EqualTo(newsSubscriberRequest.IsValidated));

            newsSubscriberRequest = NewsSubscriberRequest.FromResponseData(newsSubscriber);
            newsSubscriberRequest.Email = "*****@*****.**";

            newsSubscriber = TestSetup.KayakoApiService.News.UpdateNewsSubscriber(newsSubscriberRequest);

            Assert.IsNotNull(newsSubscriber);
            Assert.That(newsSubscriber.Email, Is.EqualTo(newsSubscriberRequest.Email));
            Assert.That(newsSubscriber.IsValidated, Is.EqualTo(newsSubscriberRequest.IsValidated));

            var deleteSuccess = TestSetup.KayakoApiService.News.DeleteNewsSubscriber(newsSubscriber.Id);

            Assert.IsTrue(deleteSuccess);
        }
 public static NewsSubscriber ToResponseData(NewsSubscriberRequest requestData)
 {
     return(ToResponseType <NewsSubscriberRequest, NewsSubscriber>(requestData));
 }
        public void CreateNewsSubscriber()
        {
            var apiMethod = "/News/Subscriber";
            var parameters = "[email protected]&isvalidated=1";

            var newsSubscriberRequest = new NewsSubscriberRequest
                {
                    Email = "*****@*****.**",
                    IsValidated = true
                };

            _kayakoApiRequest.Setup(x => x.ExecutePost<NewsSubscriberCollection>(apiMethod, parameters)).Returns(_responseNewsSubscriberCollection);

            var newsSubscriber = _newsController.CreateNewsSubscriber(newsSubscriberRequest);

            _kayakoApiRequest.Verify(x => x.ExecutePost<NewsSubscriberCollection>(apiMethod, parameters), Times.Once());
            Assert.That(newsSubscriber, Is.EqualTo(_responseNewsSubscriberCollection.FirstOrDefault()));
        }
        public void UpdateNewsSubscriber()
        {
            var newsSubscriberRequest = new NewsSubscriberRequest
            {
                Id = 1,
                Email = "*****@*****.**",
            };

            const string apiMethod = "/News/Subscriber/1";
            const string parameters = "[email protected]";

            _kayakoApiRequest.Setup(x => x.ExecutePut<NewsSubscriberCollection>(apiMethod, parameters)).Returns(_responseNewsSubscriberCollection);

            var newsSubscriber = _newsController.UpdateNewsSubscriber(newsSubscriberRequest);

            _kayakoApiRequest.Verify(x => x.ExecutePut<NewsSubscriberCollection>(apiMethod, parameters), Times.Once());
            Assert.That(newsSubscriber, Is.EqualTo(_responseNewsSubscriberCollection.FirstOrDefault()));
        }
 public static NewsSubscriber ToResponseData(NewsSubscriberRequest requestData) => ToResponseType <NewsSubscriberRequest, NewsSubscriber>(requestData);
		public static NewsSubscriber ToResponseData(NewsSubscriberRequest requestData)
		{
			return ToResponseType<NewsSubscriberRequest, NewsSubscriber>(requestData);
		}
		private RequestBodyBuilder PopulateRequestParameters(NewsSubscriberRequest newsSubscriberRequest, RequestTypes requestTypes)
		{
			newsSubscriberRequest.EnsureValidData(requestTypes);

			var requestBodyBuilder = new RequestBodyBuilder();
			requestBodyBuilder.AppendRequestDataNonEmptyString("email", newsSubscriberRequest.Email);

			if (requestTypes == RequestTypes.Create)
			{
				requestBodyBuilder.AppendRequestDataBool("isvalidated", newsSubscriberRequest.IsValidated);
			}

			return requestBodyBuilder;
		}
		public NewsSubscriber UpdateNewsSubscriber(NewsSubscriberRequest newsSubscriberRequest)
		{
			string apiMethod = string.Format("{0}/{1}", NewsSubscriberBaseUrl, newsSubscriberRequest.Id);

			RequestBodyBuilder parameters = PopulateRequestParameters(newsSubscriberRequest, RequestTypes.Update);

			NewsSubscriberCollection newsSubscriber = Connector.ExecutePut<NewsSubscriberCollection>(apiMethod, parameters.ToString());

			if (newsSubscriber != null && newsSubscriber.Count > 0)
			{
				return newsSubscriber[0];
			}

			return null;
		}
		public NewsSubscriber CreateNewsSubscriber(NewsSubscriberRequest newsSubscriberRequest)
		{
			RequestBodyBuilder parameters = PopulateRequestParameters(newsSubscriberRequest, RequestTypes.Create);

			NewsSubscriberCollection newsSubscriber = Connector.ExecutePost<NewsSubscriberCollection>(NewsSubscriberBaseUrl, parameters.ToString());

			if (newsSubscriber != null && newsSubscriber.Count > 0)
			{
				return newsSubscriber[0];
			}

			return null;
		}