using System; using Xunit; using Newtonsoft.Json.Linq; using FluentAssertions; using System.Collections.Generic; using System.Threading.Tasks; using System.Collections.Concurrent; namespace raven_integration { public class WidgetLists { /// /// /// [Fact] public async void PickListSearchRouteShouldWorkAsExpected() { //CREATE dynamic d = new JObject(); d.name = Util.Uniquify("Soft PickListSearchRouteShouldWorkAsExpected"); d.created = DateTime.Now.ToString(); d.dollarAmount = 1.11m; d.active = true; d.roles = 0; ApiResponse r1 = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); Util.ValidateDataReturnResponseOk(r1); //Get all ApiResponse a = await Util.GetAsync("Widget/picklist?Offset=2&Limit=3&q=%25of%25", await Util.GetTokenAsync("InventoryLimited")); Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 200); ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0); } /// /// Paging test /// [Fact] public async void PagingShouldWorkAsExpected() { //Get all ApiResponse a = await Util.GetAsync("Widget/listwidgets?Offset=2&Limit=3", await Util.GetTokenAsync("manager", "l3tm3in")); Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 200); //assert aAll contains at least two records ((JArray)a.ObjectResponse["data"]).Count.Should().Be(3); JObject jp = (JObject)a.ObjectResponse["paging"]; jp["count"].Value().Should().BeGreaterThan(5); jp["offset"].Value().Should().Be(2); jp["limit"].Value().Should().Be(3); jp["first"].Value().Should().EndWith("&pageSize=3"); jp["previous"].Value().Should().EndWith("&pageSize=3"); jp["next"].Value().Should().EndWith("&pageSize=3"); jp["last"].Value().Should().EndWith("&pageSize=3"); } /// /// /// [Fact] public async void FilterOptionsRouteShouldWorkAsExpected() { //Get options with manager (english user) ApiResponse a = await Util.GetAsync("Widget/FilterOptions", await Util.GetTokenAsync("manager", "l3tm3in")); Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 200); a.ObjectResponse["data"]["key"].Value().Should().Be("widget"); ((JArray)a.ObjectResponse["data"]["flds"]).Count.Should().Be(8); a.ObjectResponse["data"]["flds"][3]["lt"].Value().Should().Be("Price"); a = await Util.GetAsync("Widget/FilterOptions", await Util.GetTokenAsync("es", "es")); Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 200); a.ObjectResponse["data"]["flds"][3]["lt"].Value().Should().Be("Importe"); a = await Util.GetAsync("Widget/FilterOptions", await Util.GetTokenAsync("fr", "fr")); Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 200); a.ObjectResponse["data"]["flds"][3]["lt"].Value().Should().Be("Montant"); a = await Util.GetAsync("Widget/FilterOptions", await Util.GetTokenAsync("de", "de")); Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 200); a.ObjectResponse["data"]["flds"][3]["lt"].Value().Should().Be("Betrag"); } //================================================== }//eoc }//eons