Skip to content

Commit

Permalink
Make FragmentClient the main entry point.
Browse files Browse the repository at this point in the history
  • Loading branch information
mehrandvd committed Aug 13, 2023
1 parent 5a002da commit a1e60a7
Show file tree
Hide file tree
Showing 9 changed files with 63 additions and 44 deletions.
3 changes: 2 additions & 1 deletion src/TonRadar.Fragment.Test/FragmentClientBaseTests.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using TonRadar.Fragment.Client;
using TonRadar.Fragment.Enum;

namespace TonRadar.Fragment.Test
Expand All @@ -7,7 +8,7 @@ public class FragmentClientBaseTests
[Fact]
public async Task GetHtml_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClientBase();

var content = await client.GetHtmlAsync(@"https://fragment.com/numbers");
Assert.NotNull(content);
Expand Down
27 changes: 14 additions & 13 deletions src/TonRadar.Fragment.Test/FragmentNumbersClientAuctionTests.cs
Original file line number Diff line number Diff line change
@@ -1,56 +1,57 @@
using TonRadar.Fragment.Client;
using TonRadar.Fragment.Enum;

namespace TonRadar.Fragment.Test
{
[Trait("GitHubActions", "Skip")]
public class FragmentNumbersClientAuctionTests
public class FragmentClientAuctionTests
{
[Fact]
public async Task GetAuctionItems_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync()).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync()).Any());
}

[Fact]
public async Task GetAuctionItems_OnAuction_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.OnAuction)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.OnAuction)).Any());
}

[Fact]
public async Task GetAuctionItems_OnAuction_EndingSoon_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.OnAuction, FragmentSortType.EndingSoon)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.OnAuction, FragmentSortType.EndingSoon)).Any());
}

[Fact]
public async Task GetAuctionItems_OnAuction_PriceHighToLow_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.OnAuction, FragmentSortType.PriceHighToLow)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.OnAuction, FragmentSortType.PriceHighToLow)).Any());
}

[Fact]
public async Task GetAuctionItems_OnAuction_PriceLowToHigh_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.OnAuction, FragmentSortType.PriceLowToHigh)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.OnAuction, FragmentSortType.PriceLowToHigh)).Any());
}

[Fact]
public async Task GetAuctionItems_OnAuction_RecentlyListed_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.OnAuction, FragmentSortType.RecentlyListed)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.OnAuction, FragmentSortType.RecentlyListed)).Any());
}
}
}
23 changes: 12 additions & 11 deletions src/TonRadar.Fragment.Test/FragmentNumbersClientSaleTests.cs
Original file line number Diff line number Diff line change
@@ -1,48 +1,49 @@
using TonRadar.Fragment.Client;
using TonRadar.Fragment.Enum;

namespace TonRadar.Fragment.Test
{
[Trait("GitHubActions", "Skip")]
public class FragmentNumbersClientSaleTests
public class FragmentClientSaleTests
{
[Fact]
public async Task GetAuctionItems_ForSale_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.ForSale)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.ForSale)).Any());
}

[Fact]
public async Task GetAuctionItems_ForSale_EndingSoon_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.ForSale, FragmentSortType.EndingSoon)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.ForSale, FragmentSortType.EndingSoon)).Any());
}

[Fact]
public async Task GetAuctionItems_ForSale_PriceHighToLow_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.ForSale, FragmentSortType.PriceHighToLow)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.ForSale, FragmentSortType.PriceHighToLow)).Any());
}

[Fact]
public async Task GetAuctionItems_ForSale_PriceLowToHigh_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.ForSale, FragmentSortType.PriceLowToHigh)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.ForSale, FragmentSortType.PriceLowToHigh)).Any());
}

[Fact]
public async Task GetAuctionItems_ForSale_RecentlyListed_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.ForSale, FragmentSortType.RecentlyListed)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.ForSale, FragmentSortType.RecentlyListed)).Any());
}
}
}
23 changes: 12 additions & 11 deletions src/TonRadar.Fragment.Test/FragmentNumbersClientSoldTests.cs
Original file line number Diff line number Diff line change
@@ -1,48 +1,49 @@
using TonRadar.Fragment.Client;
using TonRadar.Fragment.Enum;

namespace TonRadar.Fragment.Test
{
[Trait("GitHubActions", "Skip")]
public class FragmentNumbersClientSoldTests
public class FragmentClientSoldTests
{
[Fact]
public async Task GetAuctionItems_Sold_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.Sold)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.Sold)).Any());
}

[Fact]
public async Task GetAuctionItems_Sold_EndingSoon_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.Sold, FragmentSortType.EndingSoon)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.Sold, FragmentSortType.EndingSoon)).Any());
}

[Fact]
public async Task GetAuctionItems_Sold_PriceHighToLow_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.Sold, FragmentSortType.PriceHighToLow)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.Sold, FragmentSortType.PriceHighToLow)).Any());
}

[Fact]
public async Task GetAuctionItems_Sold_PriceLowToHigh_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.Sold, FragmentSortType.PriceLowToHigh)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.Sold, FragmentSortType.PriceLowToHigh)).Any());
}

[Fact]
public async Task GetAuctionItems_Sold_RecentlyListed_MustWork()
{
var client = new FragmentNumbersClient();
var client = new FragmentClient();

Assert.True((await client.GetAuctionItemsAsync(FragmentFilterType.Sold, FragmentSortType.RecentlyListed)).Any());
Assert.True((await client.Numbers.GetAuctionItemsAsync(FragmentFilterType.Sold, FragmentSortType.RecentlyListed)).Any());
}
}
}
1 change: 1 addition & 0 deletions src/TonRadar.Fragment.Test/FragmentParserTests.cs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
using System.Reflection;
using TonRadar.Fragment.Model;
using TonRadar.Fragment.Parser;
using TonRadar.Fragment.Test.Util;

namespace TonRadar.Fragment.Test;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
using System.Text;
using TonRadar.Fragment.Enum;
using TonRadar.Fragment.Parser;

namespace TonRadar.Fragment;
namespace TonRadar.Fragment.Client;

public class FragmentClientBase
{
Expand Down Expand Up @@ -59,5 +60,5 @@ protected string CreateQueryParams(FragmentFilterType? filterType = null, Fragme
return string.Join("&", queryParams);
}


}
Original file line number Diff line number Diff line change
@@ -1,10 +1,20 @@
using TonRadar.Fragment.Enum;
using TonRadar.Fragment.Model;

namespace TonRadar.Fragment;
namespace TonRadar.Fragment.Client;

public class FragmentNumbersClient : FragmentClientBase
{
public FragmentNumbersClient(HttpClient httpClient) : base(httpClient)
{

}

public FragmentNumbersClient() : this(new HttpClient())
{

}

public async Task<List<AuctionItem>> GetAuctionItemsAsync(
FragmentFilterType filter = FragmentFilterType.OnAuction,
FragmentSortType sort = FragmentSortType.PriceHighToLow)
Expand All @@ -22,5 +32,5 @@ public async Task<List<AuctionItem>> GetAuctionItemsAsync(
return auctionItems;
}


}
9 changes: 6 additions & 3 deletions src/TonRadar.Fragment/FragmentClient.cs
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
namespace TonRadar.Fragment
using TonRadar.Fragment.Client;

namespace TonRadar.Fragment
{
public class FragmentClient
{
public HttpClient HttpClient { get; }

private HttpClient HttpClient { get; }
public FragmentNumbersClient Numbers { get; }
public FragmentClient(HttpClient httpClient)
{
HttpClient = httpClient;
Numbers = new FragmentNumbersClient(httpClient);
}

public FragmentClient() : this(new HttpClient())
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
using TonRadar.Fragment.Enum;


namespace TonRadar.Fragment
namespace TonRadar.Fragment.Parser
{
public class FragmentHtmlParser
{
Expand Down

0 comments on commit a1e60a7

Please sign in to comment.