From c92bf812a788875337b4c27cd357bfe4b4c4324d Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 13 Dec 2018 19:33:25 +0000 Subject: [PATCH] --- devdocs/todo.txt | 7 +---- server/AyaNova/biz/WidgetBiz.cs | 4 --- test/raven-integration/User/UserCrud.cs | 24 +++++++++++++++ test/raven-integration/Widget/WidgetLists.cs | 32 +++++++++++++++++++- 4 files changed, 56 insertions(+), 11 deletions(-) diff --git a/devdocs/todo.txt b/devdocs/todo.txt index 3d496916..6842476a 100644 --- a/devdocs/todo.txt +++ b/devdocs/todo.txt @@ -5,12 +5,7 @@ Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOiIxNTQ0NTU5NzAwIiwiZXhwIjoi ## IMMEDIATE ITEMS - Item below half done: widget picklist is done, might need test cleanup for that, user picklist needs to have code copied - - Widget and user picklist, modify to use filter and sort criteria, remove the startswith built in filter - - Fix up the old tests for picklists and replace with new test using filter ID - - Don't forget to test with no filter ID to ensure still works as normal (default picklist should sort by alpha, need extra default method for sql query) - + GetMany - have a look at the widget getmany code and the get picklist utility helper and see if there is a possibility of moving the getmany code into a helper similarly to picklist ENUM diff --git a/server/AyaNova/biz/WidgetBiz.cs b/server/AyaNova/biz/WidgetBiz.cs index 21670aee..c5d1bf4b 100644 --- a/server/AyaNova/biz/WidgetBiz.cs +++ b/server/AyaNova/biz/WidgetBiz.cs @@ -227,12 +227,8 @@ namespace AyaNova.Biz { pagingOptions.Offset = pagingOptions.Offset ?? PagingOptions.DefaultOffset; pagingOptions.Limit = pagingOptions.Limit ?? PagingOptions.DefaultLimit; - - var ret = PickListFetcher.GetPickList(ct, UserId, pagingOptions, "awidget"); - var pageLinks = new PaginationLinkBuilder(Url, routeName, null, pagingOptions, ret.TotalRecordCount).PagingLinksObject(); - ApiPagedResponse pr = new ApiPagedResponse(ret.Items, pageLinks); return pr; } diff --git a/test/raven-integration/User/UserCrud.cs b/test/raven-integration/User/UserCrud.cs index d8a632a3..ba6dface 100644 --- a/test/raven-integration/User/UserCrud.cs +++ b/test/raven-integration/User/UserCrud.cs @@ -436,6 +436,30 @@ namespace raven_integration } + /// + /// + /// + [Fact] + public async void UserPickListDefaultSortNoFilterWorks() + { + var RouteName = "User";//########## + + //NOW FETCH LIST WITH FILTER + ApiResponse a = await Util.GetAsync($"{RouteName}/picklist?Offset=0&Limit=999", await Util.GetTokenAsync("manager", "l3tm3in")); + Util.ValidateDataReturnResponseOk(a); + Util.ValidateHTTPStatusCode(a, 200); + + //assert contains exactly 3 records + var ItemCount = ((JArray)a.ObjectResponse["data"]).Count; + + for (int i = 0; i < ItemCount - 1; i++) + { + var firstName = a.ObjectResponse["data"][i]["name"].Value().Replace(" ",""); + var secondName = a.ObjectResponse["data"][i + 1]["name"].Value().Replace(" ",""); + int comparison = String.Compare(firstName, secondName, comparisonType: StringComparison.OrdinalIgnoreCase); + comparison.Should().BeNegative(); + } + } diff --git a/test/raven-integration/Widget/WidgetLists.cs b/test/raven-integration/Widget/WidgetLists.cs index 789737c6..1ae974d8 100644 --- a/test/raven-integration/Widget/WidgetLists.cs +++ b/test/raven-integration/Widget/WidgetLists.cs @@ -12,6 +12,36 @@ namespace raven_integration public class WidgetLists { + + + + /// + /// + /// + [Fact] + public async void WidgetPickListDefaultSortNoFilterWorks() + { + var RouteName = "Widget";//########## + + //NOW FETCH LIST WITH FILTER + ApiResponse a = await Util.GetAsync($"{RouteName}/picklist?Offset=0&Limit=999", await Util.GetTokenAsync("manager", "l3tm3in")); + Util.ValidateDataReturnResponseOk(a); + Util.ValidateHTTPStatusCode(a, 200); + + //assert contains exactly 3 records + var ItemCount = ((JArray)a.ObjectResponse["data"]).Count; + + for (int i = 0; i < ItemCount - 1; i++) + { + //Note it's necessary to replace the spaces because postgres thinks spaces go last and the string comparison thinks they go first + var firstName = a.ObjectResponse["data"][i]["name"].Value().Replace(" ",""); + var secondName = a.ObjectResponse["data"][i + 1]["name"].Value().Replace(" ",""); + int comparison = String.Compare(firstName, secondName, comparisonType: StringComparison.OrdinalIgnoreCase); + comparison.Should().BeNegative(); + } + } + + /// /// /// @@ -20,7 +50,7 @@ namespace raven_integration { var NameStart = Util.Uniquify("WidgetPickListSortByFieldAscendingWorks"); - var RouteName="Widget"; + var RouteName = "Widget"; //CREATE 3 TEST OBJECTS TO TEST ORDER long FirstInOrderId = 0;