using Microsoft.eShopWeb;
using Microsoft.eShopWeb.PublicApi.CatalogItemEndpoints;
using Microsoft.eShopWeb.Web.ViewModels;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Linq;
using System.Threading.Tasks;
namespace PublicApiIntegrationTests.CatalogItemEndpoints
{
[TestClass]
public class CatalogItemListPagedEndpoint
{
[TestMethod]
public async Task ReturnsFirst10CatalogItems()
{
var client = ProgramTest.NewClient;
var response = await client.GetAsync("/api/catalog-items?pageSize=10");
response.EnsureSuccessStatusCode();
var stringResponse = await response.Content.ReadAsStringAsync();
var model = stringResponse.FromJson<CatalogIndexViewModel>();
Assert.AreEqual(10, model.CatalogItems.Count());
}
[TestMethod]
public async Task ReturnsCorrectCatalogItemsGivenPageIndex1()
{
var pageSize = 10;
var pageIndex = 1;
var client = ProgramTest.NewClient;
var response = await client.GetAsync($"/api/catalog-items");
response.EnsureSuccessStatusCode();
var stringResponse = await response.Content.ReadAsStringAsync();
var model = stringResponse.FromJson<ListPagedCatalogItemResponse>();
var totalItem = model.CatalogItems.Count();
var response2 = await client.GetAsync($"/api/catalog-items?pageSize={pageSize}&pageIndex={pageIndex}");
response.EnsureSuccessStatusCode();
var stringResponse2 = await response2.Content.ReadAsStringAsync();
var model2 = stringResponse2.FromJson<ListPagedCatalogItemResponse>();
var totalExpected = totalItem - (pageSize * pageIndex);
Assert.AreEqual(totalExpected, model2.CatalogItems.Count());
}
}
}