public async Task GetPostsByCategoryTest(KnownChains apiName, string category) { var request = new PostsByCategoryModel(PostType.Top, category); var result = await Gateway[apiName].GetPostsByCategory(request, CancellationToken.None); Assert.IsTrue(result.IsSuccess, result.Error?.Message); }
private void GetPostsByCategoryTest(StringBuilder sb, int num) { sb.Append($"{num}) GetPostsByCategoryTest : "); StepFinished?.Invoke(sb.ToString()); var limit = 3; var request = new PostsByCategoryModel(PostType.New, "steepshot") { ShowNsfw = _user.IsNsfw, ShowLowRated = _user.IsLowRated, Limit = limit }; var response = _api.GetPostsByCategory(request, CancellationToken.None).Result; if (IsError1(sb, limit, response, response.Result.Results.Count)) { return; } request.Offset = response.Result.Results.Last().Url; response = _api.GetPostsByCategory(request, CancellationToken.None).Result; if (IsError2(sb, limit, response, request.Offset)) { return; } sb.AppendLine("pass."); }
public async Task Posts_By_Category_Empty_Name(KnownChains apiName) { var request = new PostsByCategoryModel(PostType.Top, string.Empty); var response = await Api[apiName].GetPostsByCategory(request, CancellationToken.None); Assert.That(response.Error.Message.StartsWith(nameof(LocalizationKeys.EmptyCategory))); }
public async Task Posts_By_Category_Invalid_Name(KnownChains apiName) { var request = new PostsByCategoryModel(PostType.Top, "asdas&^@dsad__sa@@d sd222f_f"); var response = await Api[apiName].GetPostsByCategory(request, CancellationToken.None); Assert.IsTrue(response.Error.Message.StartsWith("<h1>Not Found</h1>")); }
public async Task Posts_By_Category_Not_Existing_Name(KnownChains apiName) { var request = new PostsByCategoryModel(PostType.Top, "qweqweqweqewqwqweqe"); var response = await Api[apiName].GetPostsByCategory(request, CancellationToken.None); AssertResult(response); Assert.That(response.Result.Results, Is.Empty); }
public async Task Posts_By_Category_New(KnownChains apiName) { var category = "steepshot"; // Arrange var request = new PostsByCategoryModel(PostType.New, category); // Act var response = await Api[apiName].GetPostsByCategory(request, CancellationToken.None); // Assert AssertResult(response); Assert.That(response.Result.Results, Is.Not.Empty); var postsWithoutCategoryInTags = response.Result.Results.Where(x => !x.Tags.Contains(category)); var postShouldHaveCategoryInCategory = postsWithoutCategoryInTags.Any(x => !x.Category.Equals(category)); Assert.That(postShouldHaveCategoryInCategory, Is.False); }
public async Task Posts_By_Category_With_User(KnownChains apiName) { var category = "steepshot"; // Arrange var user = Users[apiName]; var request = new PostsByCategoryModel(PostType.Top, category) { Login = user.Login }; request.ShowNsfw = true; request.ShowLowRated = true; // Act var response = await Api[apiName].GetPostsByCategory(request, CancellationToken.None); // Assert AssertResult(response); Assert.That(response.Result.Results, Is.Not.Empty); }
public async Task Posts_By_Category_Offset_Limit(KnownChains apiName) { var category = "steepshot"; // Arrange var request = new PostsByCategoryModel(PostType.Top, category); var posts = await Api[apiName].GetPostsByCategory(request, CancellationToken.None); request.Offset = posts.Result.Results.First().Url; request.Limit = 5; // Act var response = await Api[apiName].GetPostsByCategory(request, CancellationToken.None); // Assert AssertResult(response); Assert.That(response.Result.Results, Is.Not.Empty); Assert.That(response.Result.Results.Where(x => !x.Tags.Contains(category)), Is.Empty); Assert.That(response.Result.Results.Count, Is.EqualTo(request.Limit)); Assert.That(response.Result.Results.First().Url, Is.EqualTo(request.Offset)); }
private async Task <Exception> GetSearchedPosts(CancellationToken ct) { var request = new PostsByCategoryModel(PostType, Tag.TagToEn()) { Login = AppSettings.User.Login, Limit = string.IsNullOrEmpty(OffsetUrl) ? ItemsLimit : ItemsLimit + 1, Offset = OffsetUrl, ShowNsfw = AppSettings.User.IsNsfw, ShowLowRated = AppSettings.User.IsLowRated }; Exception exception; bool isNeedRepeat; do { var response = await Api.GetPostsByCategory(request, ct); isNeedRepeat = ResponseProcessing(response, ItemsLimit, out exception, nameof(TryGetSearchedPosts)); } while (isNeedRepeat); return(exception); }
public async Task <OperationResult <ListResponse <Post> > > GetPostsByCategory(PostsByCategoryModel model, CancellationToken token) { if (!EnableRead) { return(null); } var results = Validate(model); if (results.Any()) { return(new OperationResult <ListResponse <Post> >(new ValidationError(string.Join(Environment.NewLine, results.Select(i => i.ErrorMessage))))); } var parameters = new Dictionary <string, object>(); AddOffsetLimitParameters(parameters, model.Offset, model.Limit); AddLoginParameter(parameters, model.Login); AddCensorParameters(parameters, model); var endpoint = $"posts/{model.Category}/{model.Type.ToString().ToLowerInvariant()}"; return(await Gateway.Get <ListResponse <Post> >(GatewayVersion.V1P1, endpoint, parameters, token)); }
public async Task <OperationResult <ListResponse <Post> > > GetPostsByCategory(PostsByCategoryModel model, CancellationToken token) { if (!EnableRead) { return(null); } var results = Validate(model); if (results != null) { return(new OperationResult <ListResponse <Post> >(results)); } var parameters = new Dictionary <string, object>(); AddOffsetLimitParameters(parameters, model.Offset, model.Limit); AddLoginParameter(parameters, model.Login); AddCensorParameters(parameters, model); var endpoint = $"{BaseUrl}/{GatewayVersion.V1P1}/posts/{model.Category}/{model.Type.ToString().ToLowerInvariant()}"; return(await HttpClient.Get <ListResponse <Post> >(endpoint, parameters, token)); }