From 375a9a8a7fbe8b064a505d12fdac7e27291a4178 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 23 Jan 2020 17:14:39 +0000 Subject: [PATCH] --- {DataFilter => DataList}/DataFilterCrud.cs | 0 .../DataFilterFilteringLists.cs | 0 {DataFilter => DataList}/DataFilterOrderBy.cs | 0 DataList/Paging.cs | 48 ++++ User/UserCrud.cs | 235 +++++++++--------- Widget/WidgetLists.cs | 220 ---------------- 6 files changed, 167 insertions(+), 336 deletions(-) rename {DataFilter => DataList}/DataFilterCrud.cs (100%) rename {DataFilter => DataList}/DataFilterFilteringLists.cs (100%) rename {DataFilter => DataList}/DataFilterOrderBy.cs (100%) create mode 100644 DataList/Paging.cs delete mode 100644 Widget/WidgetLists.cs diff --git a/DataFilter/DataFilterCrud.cs b/DataList/DataFilterCrud.cs similarity index 100% rename from DataFilter/DataFilterCrud.cs rename to DataList/DataFilterCrud.cs diff --git a/DataFilter/DataFilterFilteringLists.cs b/DataList/DataFilterFilteringLists.cs similarity index 100% rename from DataFilter/DataFilterFilteringLists.cs rename to DataList/DataFilterFilteringLists.cs diff --git a/DataFilter/DataFilterOrderBy.cs b/DataList/DataFilterOrderBy.cs similarity index 100% rename from DataFilter/DataFilterOrderBy.cs rename to DataList/DataFilterOrderBy.cs diff --git a/DataList/Paging.cs b/DataList/Paging.cs new file mode 100644 index 0000000..b8b5e7c --- /dev/null +++ b/DataList/Paging.cs @@ -0,0 +1,48 @@ +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 DataListPaging + { + + + /// + /// 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"); + } + + + + + + + //================================================== + + }//eoc +}//eons diff --git a/User/UserCrud.cs b/User/UserCrud.cs index c508216..23fae81 100644 --- a/User/UserCrud.cs +++ b/User/UserCrud.cs @@ -474,152 +474,155 @@ 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); +//DEPRECATED THESE BECAUSE THEY DON'T TEST ANYTHING UNIQUELY THAT ISN'T ALREADY COVERED BY THE DATALISTFILTER AND ORDER BY TESTS ELSEWHERE +//AND THE PICKLIST IS NOW MINI FORMAT OF REGULAR LIST + // /// + // /// + // /// + // [Fact] + // public async void UserPickListDefaultSortNoFilterWorks() + // { + // var RouteName = "User";//########## - //assert contains at least 3 records - var ItemCount = ((JArray)a.ObjectResponse["data"]).Count; - ItemCount.Should().BeGreaterOrEqualTo(3); + // //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); - var firstName = a.ObjectResponse["data"][0]["name"].Value().Replace(" ", ""); - var secondName = a.ObjectResponse["data"][1]["name"].Value().Replace(" ", ""); - int comparison = String.Compare(firstName, secondName, comparisonType: StringComparison.OrdinalIgnoreCase); - comparison.Should().BeNegative(); - } + // //assert contains at least 3 records + // var ItemCount = ((JArray)a.ObjectResponse["data"]).Count; + // ItemCount.Should().BeGreaterOrEqualTo(3); + + // var firstName = a.ObjectResponse["data"][0]["name"].Value().Replace(" ", ""); + // var secondName = a.ObjectResponse["data"][1]["name"].Value().Replace(" ", ""); + // int comparison = String.Compare(firstName, secondName, comparisonType: StringComparison.OrdinalIgnoreCase); + // comparison.Should().BeNegative(); + // } - /// - /// - /// - [Fact] - public async void UserPickListSortByFieldAscendingWorks() - { + // /// + // /// + // /// + // [Fact] + // public async void UserPickListSortByFieldAscendingWorks() + // { - var NameStart = Util.Uniquify("UserPickListSortByFieldAscendingWorks"); + // var NameStart = Util.Uniquify("UserPickListSortByFieldAscendingWorks"); - //CREATE 3 TEST objects TO TEST ORDER - long FirstInOrderId = 0; - long SecondInOrderId = 0; - long ThirdInOrderId = 0; + // //CREATE 3 TEST objects TO TEST ORDER + // long FirstInOrderId = 0; + // long SecondInOrderId = 0; + // long ThirdInOrderId = 0; - dynamic d = new JObject(); - d.name = Util.Uniquify(NameStart); - d.active = false; - d.login = Util.Uniquify("LOGIN"); - d.password = Util.Uniquify("PASSWORD"); - d.roles = 0;//norole - d.localeId = 1;//random locale - d.userType = 3;//non scheduleable - //Required by form custom rules - d.notes = "notes"; - d.customFields = Util.UserRequiredCustomFieldsJsonString(); + // dynamic d = new JObject(); + // d.name = Util.Uniquify(NameStart); + // d.active = false; + // d.login = Util.Uniquify("LOGIN"); + // d.password = Util.Uniquify("PASSWORD"); + // d.roles = 0;//norole + // d.localeId = 1;//random locale + // d.userType = 3;//non scheduleable + // //Required by form custom rules + // d.notes = "notes"; + // d.customFields = Util.UserRequiredCustomFieldsJsonString(); - ApiResponse a = await Util.PostAsync("User", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - ThirdInOrderId = a.ObjectResponse["data"]["id"].Value(); + // ApiResponse a = await Util.PostAsync("User", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); + // Util.ValidateDataReturnResponseOk(a); + // ThirdInOrderId = a.ObjectResponse["data"]["id"].Value(); - d = new JObject(); - d.name = Util.Uniquify(NameStart); - d.active = true; - d.login = Util.Uniquify("LOGIN"); - d.password = Util.Uniquify("PASSWORD"); - d.roles = 0;//norole - d.localeId = 1;//random locale - d.userType = 2;//non scheduleable - //Required by form custom rules - d.notes = "notes"; - d.customFields = Util.UserRequiredCustomFieldsJsonString(); + // d = new JObject(); + // d.name = Util.Uniquify(NameStart); + // d.active = true; + // d.login = Util.Uniquify("LOGIN"); + // d.password = Util.Uniquify("PASSWORD"); + // d.roles = 0;//norole + // d.localeId = 1;//random locale + // d.userType = 2;//non scheduleable + // //Required by form custom rules + // d.notes = "notes"; + // d.customFields = Util.UserRequiredCustomFieldsJsonString(); - a = await Util.PostAsync("User", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - SecondInOrderId = a.ObjectResponse["data"]["id"].Value(); + // a = await Util.PostAsync("User", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); + // Util.ValidateDataReturnResponseOk(a); + // SecondInOrderId = a.ObjectResponse["data"]["id"].Value(); - d = new JObject(); - d.name = Util.Uniquify(NameStart); - d.active = false; - d.login = Util.Uniquify("LOGIN"); - d.password = Util.Uniquify("PASSWORD"); - d.roles = 0;//norole - d.localeId = 1;//random locale - d.userType = 1;//non scheduleable - //Required by form custom rules - d.notes = "notes"; - d.customFields = Util.UserRequiredCustomFieldsJsonString(); + // d = new JObject(); + // d.name = Util.Uniquify(NameStart); + // d.active = false; + // d.login = Util.Uniquify("LOGIN"); + // d.password = Util.Uniquify("PASSWORD"); + // d.roles = 0;//norole + // d.localeId = 1;//random locale + // d.userType = 1;//non scheduleable + // //Required by form custom rules + // d.notes = "notes"; + // d.customFields = Util.UserRequiredCustomFieldsJsonString(); - a = await Util.PostAsync("User", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - FirstInOrderId = a.ObjectResponse["data"]["id"].Value(); + // a = await Util.PostAsync("User", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); + // Util.ValidateDataReturnResponseOk(a); + // FirstInOrderId = a.ObjectResponse["data"]["id"].Value(); - //CREATE FILTER - d = new JObject(); - d.name = Util.Uniquify(NameStart); - d["public"] = true; - d.listKey = "user"; + // //CREATE FILTER + // d = new JObject(); + // d.name = Util.Uniquify(NameStart); + // d["public"] = true; + // d.listKey = "user"; - //FILTER IN BY NAME FOR TESTING THIS RUN ONLY - dynamic dfilter = new JArray(); - //name starts with filter to constrict to widgets that this test block created only - dynamic DataFilterNameStart = new JObject(); - DataFilterNameStart.fld = "name"; - DataFilterNameStart.op = Util.OpStartsWith; - DataFilterNameStart.value = NameStart; - dfilter.Add(DataFilterNameStart); - d.filter = dfilter.ToString(); + // //FILTER IN BY NAME FOR TESTING THIS RUN ONLY + // dynamic dfilter = new JArray(); + // //name starts with filter to constrict to widgets that this test block created only + // dynamic DataFilterNameStart = new JObject(); + // DataFilterNameStart.fld = "name"; + // DataFilterNameStart.op = Util.OpStartsWith; + // DataFilterNameStart.value = NameStart; + // dfilter.Add(DataFilterNameStart); + // d.filter = dfilter.ToString(); - //SORT ORDER ################### - dynamic dsortarray = new JArray(); - dynamic dsort = new JObject(); - dsort.fld = "usertype"; - dsort.dir = "+"; - dsortarray.Add(dsort); - d.sort = dsortarray.ToString(); + // //SORT ORDER ################### + // dynamic dsortarray = new JArray(); + // dynamic dsort = new JObject(); + // dsort.fld = "usertype"; + // dsort.dir = "+"; + // dsortarray.Add(dsort); + // d.sort = dsortarray.ToString(); - a = await Util.PostAsync("DataListFilter", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); + // a = await Util.PostAsync("DataListFilter", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); + // Util.ValidateDataReturnResponseOk(a); - long DataFilterId = a.ObjectResponse["data"]["id"].Value(); + // long DataFilterId = a.ObjectResponse["data"]["id"].Value(); - //NOW FETCH WIDGET LIST WITH FILTER - a = await Util.GetAsync($"User/picklist?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in")); - Util.ValidateDataReturnResponseOk(a); - Util.ValidateHTTPStatusCode(a, 200); + // //NOW FETCH WIDGET LIST WITH FILTER + // a = await Util.GetAsync($"User/picklist?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in")); + // Util.ValidateDataReturnResponseOk(a); + // Util.ValidateHTTPStatusCode(a, 200); - //assert contains exactly 3 records - ((JArray)a.ObjectResponse["data"]).Count.Should().Be(3); + // //assert contains exactly 3 records + // ((JArray)a.ObjectResponse["data"]).Count.Should().Be(3); - //assert the order returned - a.ObjectResponse["data"][0]["id"].Value().Should().Be(FirstInOrderId); - a.ObjectResponse["data"][1]["id"].Value().Should().Be(SecondInOrderId); - a.ObjectResponse["data"][2]["id"].Value().Should().Be(ThirdInOrderId); + // //assert the order returned + // a.ObjectResponse["data"][0]["id"].Value().Should().Be(FirstInOrderId); + // a.ObjectResponse["data"][1]["id"].Value().Should().Be(SecondInOrderId); + // a.ObjectResponse["data"][2]["id"].Value().Should().Be(ThirdInOrderId); - a = await Util.DeleteAsync("User/" + FirstInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); - Util.ValidateHTTPStatusCode(a, 204); + // a = await Util.DeleteAsync("User/" + FirstInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); + // Util.ValidateHTTPStatusCode(a, 204); - a = await Util.DeleteAsync("User/" + SecondInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); - Util.ValidateHTTPStatusCode(a, 204); + // a = await Util.DeleteAsync("User/" + SecondInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); + // Util.ValidateHTTPStatusCode(a, 204); - a = await Util.DeleteAsync("User/" + ThirdInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); - Util.ValidateHTTPStatusCode(a, 204); + // a = await Util.DeleteAsync("User/" + ThirdInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); + // Util.ValidateHTTPStatusCode(a, 204); - //DELETE DATAFILTER - a = await Util.DeleteAsync("DataListFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); - Util.ValidateHTTPStatusCode(a, 204); + // //DELETE DATAFILTER + // a = await Util.DeleteAsync("DataListFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); + // Util.ValidateHTTPStatusCode(a, 204); - } + // } //================================================== diff --git a/Widget/WidgetLists.cs b/Widget/WidgetLists.cs deleted file mode 100644 index 8d26acf..0000000 --- a/Widget/WidgetLists.cs +++ /dev/null @@ -1,220 +0,0 @@ -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 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(); - } - } - - - /// - /// - /// - [Fact] - public async void WidgetPickListSortByFieldAscendingWorks() - { - - var NameStart = Util.Uniquify("WidgetPickListSortByFieldAscendingWorks"); - var RouteName = "Widget"; - - //CREATE 3 TEST OBJECTS TO TEST ORDER - long FirstInOrderId = 0; - long SecondInOrderId = 0; - long ThirdInOrderId = 0; - - dynamic d = new JObject(); - d.name = Util.Uniquify(NameStart); - d.notes="blah"; - d.customFields = Util.WidgetRequiredCustomFieldsJsonString(); - d.startDate = DateTime.Now; - d.endDate = DateTime.Now.AddHours(1); - - ApiResponse a = await Util.PostAsync(RouteName, await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - FirstInOrderId = a.ObjectResponse["data"]["id"].Value(); - - d = new JObject(); - d.name = Util.Uniquify(NameStart); - d.notes="blah"; - d.customFields = Util.WidgetRequiredCustomFieldsJsonString(); - d.startDate = DateTime.Now.AddHours(1); - d.endDate = DateTime.Now.AddHours(2); - a = await Util.PostAsync(RouteName, await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - SecondInOrderId = a.ObjectResponse["data"]["id"].Value(); - - d = new JObject(); - d.name = Util.Uniquify(NameStart); - d.notes="blah"; - d.customFields = Util.WidgetRequiredCustomFieldsJsonString(); - d.startDate = DateTime.Now.AddHours(2); - d.endDate = DateTime.Now.AddHours(3); - a = await Util.PostAsync(RouteName, await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - ThirdInOrderId = a.ObjectResponse["data"]["id"].Value(); - - - //CREATE FILTER - d = new JObject(); - d.name = Util.Uniquify(NameStart); - d["public"] = true; - d.listKey="TestWidgetDataList"; - - //FILTER IN BY NAME FOR TESTING THIS RUN ONLY - dynamic dfilter = new JArray(); - //name starts with filter to constrict to objects that this test block created only - dynamic DataFilterNameStart = new JObject(); - DataFilterNameStart.fld = "name"; - DataFilterNameStart.op = Util.OpStartsWith; - DataFilterNameStart.value = NameStart; - dfilter.Add(DataFilterNameStart); - d.filter = dfilter.ToString(); - - //SORT ORDER ################### - dynamic dsortarray = new JArray(); - dynamic dsort = new JObject(); - dsort.fld = "startdate"; - dsort.dir = "+"; - dsortarray.Add(dsort); - d.sort = dsortarray.ToString(); - - a = await Util.PostAsync("DataListFilter", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - - long DataFilterId = a.ObjectResponse["data"]["id"].Value(); - - //NOW FETCH LIST WITH FILTER - a = await Util.GetAsync($"{RouteName}/picklist?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in")); - Util.ValidateDataReturnResponseOk(a); - Util.ValidateHTTPStatusCode(a, 200); - - //assert contains exactly 3 records - ((JArray)a.ObjectResponse["data"]).Count.Should().Be(3); - - //assert the order returned - a.ObjectResponse["data"][0]["id"].Value().Should().Be(FirstInOrderId); - a.ObjectResponse["data"][1]["id"].Value().Should().Be(SecondInOrderId); - a.ObjectResponse["data"][2]["id"].Value().Should().Be(ThirdInOrderId); - - - a = await Util.DeleteAsync($"{RouteName}/" + FirstInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); - Util.ValidateHTTPStatusCode(a, 204); - - a = await Util.DeleteAsync($"{RouteName}/" + SecondInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); - Util.ValidateHTTPStatusCode(a, 204); - - a = await Util.DeleteAsync($"{RouteName}/" + ThirdInOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); - Util.ValidateHTTPStatusCode(a, 204); - - //DELETE DATAFILTER - a = await Util.DeleteAsync("DataListFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in")); - Util.ValidateHTTPStatusCode(a, 204); - - } - - - /// - /// 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(10); - - int DollarAmountFieldNumber = 4; - - a.ObjectResponse["data"]["flds"][DollarAmountFieldNumber]["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"][DollarAmountFieldNumber]["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"][DollarAmountFieldNumber]["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"][DollarAmountFieldNumber]["lt"].Value().Should().Be("Betrag"); - - } - - - - - - - //================================================== - - }//eoc -}//eons