public void PublishedFiles_Should_Validate_Limit() { // Arrange var auth = GetAuth(); var client = new Mock <PublishedFilesApiClient>(auth, "test"); client.CallBase = true; client.Setup(foo => foo.GetResponse(It.IsAny <WebRequest>())).Returns(PublishedFilesApiResponse); var search = new RecentlyPublishedSearch(DateTime.Now.AddDays(-5)); search.FileUris.Add("/content/Home/6A2CD795_en.xml"); search.LocaleIds.Add("ru-RU"); search.Limit = -10; search.Offset = 0; // Act var correctExceptionThrown = false; try { var result = client.Object.GetRecentlyPublished(search); } catch (Exception ex) { if (ex.Message.Contains("Limit must not be negative")) { correctExceptionThrown = true; } } // Assert Assert.IsTrue(correctExceptionThrown); }
public void PublishedFiles_Should_Validate_Date() { // Arrange var auth = GetAuth(); var client = new Mock <PublishedFilesApiClient>(auth, "test"); client.CallBase = true; client.Setup(foo => foo.GetResponse(It.IsAny <WebRequest>())).Returns(PublishedFilesApiResponse); var search = new RecentlyPublishedSearch(DateTime.Now.AddDays(-15)); // Act var correctExceptionThrown = false; try { var result = client.Object.GetRecentlyPublished(search); } catch (Exception ex) { if (ex.Message.Contains("PublishedAfter is limited to 14 days back from now")) { correctExceptionThrown = true; } } // Assert Assert.IsTrue(correctExceptionThrown); }
public void PublishedFiles_Should_Parse_Response() { // Arrange var auth = GetAuth(); var client = new Mock <PublishedFilesApiClient>(auth, "test"); client.CallBase = true; client.Setup(foo => foo.GetResponse(It.IsAny <WebRequest>())).Returns(PublishedFilesApiResponse); var search = new RecentlyPublishedSearch(DateTime.Now.AddDays(-5)); search.FileUris = new List <string> { "/content/Home/6A2CD795_en.xml" }; search.LocaleIds = new List <string> { "ru-RU" }; search.Limit = 10; search.Offset = 0; // Act var result = client.Object.GetRecentlyPublished(search); // Assert Assert.AreEqual(1, result.items.Count); }
public virtual RecentlyPublished GetRecentlyPublished(RecentlyPublishedSearch recentlyPublishedSearch) { if (!recentlyPublishedSearch.IsValid()) { throw new Exception("Invalid parameters: " + recentlyPublishedSearch.LastError); } var uriBuilder = this.GetRequestStringBuilder(string.Format(RecentlyPublishedUrl, projectId, recentlyPublishedSearch.PublishedAfter.ToString("s", System.Globalization.CultureInfo.InvariantCulture))); if (recentlyPublishedSearch.FileUris?.Count > 0) { foreach (var fileUri in recentlyPublishedSearch.FileUris) { uriBuilder.AppendFormat("&{0}={1}", FileUrisParameterName, System.Net.WebUtility.UrlEncode(fileUri)); } } if (recentlyPublishedSearch.LocaleIds?.Count > 0) { foreach (var localeId in recentlyPublishedSearch.LocaleIds) { uriBuilder.AppendFormat("&{0}={1}", LocaleIdsParameterName, localeId); } } if (recentlyPublishedSearch.Limit > 0) { uriBuilder.AppendFormat("&{0}={1}", LimitParameterName, recentlyPublishedSearch.Limit); } if (recentlyPublishedSearch.Offset > 0) { uriBuilder.AppendFormat("&{0}={1}", OffsetParameterName, recentlyPublishedSearch.Offset); } var request = PrepareGetRequest(uriBuilder.ToString(), auth.GetToken()); JObject response; try { response = JObject.Parse(GetResponse(request)); } catch (AuthenticationException) { request = PrepareGetRequest(uriBuilder.ToString(), auth.GetToken(true)); response = JObject.Parse(GetResponse(request)); } return(JsonConvert.DeserializeObject <RecentlyPublished>(response["response"]["data"].ToString())); }
private static void Published(OAuthAuthenticationStrategy auth) { var publishedClient = new PublishedFilesApiClient(auth, projectId); var search = new RecentlyPublishedSearch(DateTime.Now.AddDays(-5)); search.FileUris.Add("/content/Home/6A2CD795_en.xml"); search.LocaleIds.Add("ru-RU"); search.Limit = 10; search.Offset = 0; var searchResults = publishedClient.GetRecentlyPublished(search); foreach (var item in searchResults.items) { Console.WriteLine(item.fileUri + " " + item.localeId + " " + item.publishDate); } }
public void PublishedFiles_Should_Encode_Parameters() { // Arrange var auth = GetAuth(); var client = new Mock <PublishedFilesApiClient>(auth, "test"); client.CallBase = true; WebRequest saveObject = null; client.Setup(foo => foo.GetResponse(It.IsAny <WebRequest>())).Callback <WebRequest>((obj) => saveObject = obj).Returns(PublishedFilesApiResponse); var search = new RecentlyPublishedSearch(DateTime.Now.AddDays(-5)); search.FileUris.Add("/content/Home/John & Doe_en.xml"); // Act var result = client.Object.GetRecentlyPublished(search); // Assert Assert.IsTrue(saveObject.RequestUri.ToString().EndsWith("&fileUris[]=%2Fcontent%2FHome%2FJohn+%26+Doe_en.xml")); }