using System; using System.Threading.Tasks; using System.Collections.Generic; using Xunit; using PocketSharp.Models; namespace PocketSharp.Tests { public class RetrieveTests : TestsBase { public RetrieveTests() : base() { } [Fact] public async Task AreItemsRetrieved() { List items = await client.Get(); Assert.True(items.Count > 0); } [Fact] public async Task IsItemRetrievedById() { List items = await client.Get(); PocketItem item = items[0]; PocketItem itemDuplicate = await client.Get(item.ID); Assert.True(item.ID == itemDuplicate.ID); Assert.True(item.Uri == itemDuplicate.Uri); } [Fact] public async Task AreFilteredItemsRetrieved() { List items = await client.Get(RetrieveFilter.Favorite); Assert.True(items.Count > 0); } [Fact] public async Task RetrieveWithMultipleFilters() { List items = await client.Get( state: State.unread, tag: "pocket", sort: Sort.title, since: new DateTime(2010, 12, 10), count: 2 ); Assert.InRange(items.Count, 0, 2); } [Fact] public async Task ItemContainsUri() { List items = await client.Get(count: 1); Assert.True(items.Count == 1); Assert.True(items[0].Uri.ToString().StartsWith("http")); } [Fact] public async Task InvalidRetrievalReturnsNoResults() { List items = await client.Get( favorite: true, search: "xoiu987a#;" ); Assert.False(items.Count > 0); PocketItem item = await client.Get(99999999); Assert.Null(item); items = await client.Get(RetrieveFilter.Video); Assert.False(items.Count > 0); } [Fact] public async Task SearchReturnsResult() { List items = await client.Search("pocket"); Assert.True(items.Count > 0); Assert.True(items[0].FullTitle.ToLower().Contains("pocket")); } [Fact] public async Task InvalidSearchReturnsNoResult() { List items = await client.Search("adsüasd-opiu2;.398dfyx"); Assert.False(items.Count > 0); } [Fact] public async Task RetrieveTagsReturnsResult() { List items = await client.GetTags(); Assert.True(items.Count > 0); } [Fact] public async Task SearchByTagsReturnsResult() { List items = await client.SearchByTag("pocket"); Assert.True(items.Count == 1); bool found = false; items[0].Tags.ForEach(tag => { if (tag.Name.Contains("pocket")) { found = true; } }); Assert.True(found); } [Fact] public async Task InvalidSearchByTagsReturnsNoResult() { List items = await client.SearchByTag("adsüasd-opiu2;.398dfyx"); Assert.False(items.Count > 0); } } }