This commit is contained in:
2026-03-02 15:51:01 -08:00
parent 48f9f82c23
commit 27fa1efdd1
14 changed files with 822 additions and 4941 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -1,30 +0,0 @@
// using Xunit;
// using Newtonsoft.Json.Linq;
// using FluentAssertions;
// namespace raven_integration
// {
// public class DataListRights
// {
// /// <summary>
// ///
// /// </summary>
// [Fact]
// public async Task InsufficentRightsShouldNotRetrieve()
// {
// //Get without rights
// /*
// "{\"error\":{\"code\":\"2004\",\"message\":\"User not authorized for this resource operation (insufficient rights)\"}}"
// */
// //ApiResponse a = await Util.GetAsync("data-list/list?DataListKey=TestWidgetDataList&Offset=0&Limit=3", await Util.GetTokenAsync("CustomerRestricted"));
// ApiResponse a = await Util.PostAsync($"data-list", await Util.GetTokenAsync("CustomerRestricted"), Util.BuildDataListRequestEx());
// Util.ValidateErrorCodeResponse(a, 2004, 403);
// }
// //==================================================
// }//eoc
// }//eons

View File

@@ -1,413 +0,0 @@
// using System;
// using Xunit;
// using Newtonsoft.Json.Linq;
// using FluentAssertions;
// using System.Collections.Generic;
// using System.Collections.Concurrent;
// namespace raven_integration
// {
// public class DataListSorting
// {
// /// <summary>
// ///
// /// </summary>
// [Fact]
// public async Task DefaultSortByIdWorks()
// {
// var WidgetNameStart = Util.Uniquify("DefaultSortByIdWorks");
// //CREATE 3 TEST WIDGETS TO TEST ORDER
// long FirstInOrderWidgetId = 0;
// long SecondInOrderWidgetId = 0;
// long ThirdInOrderWidgetId = 0;
// dynamic w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.usertype = 1;
// ApiResponse a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// ThirdInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.usertype = 1;
// a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// SecondInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.usertype = 1;
// a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// FirstInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// //CREATE FILTER
// dynamic dListView = new JArray();
// //name starts with filter to constrict to widgets that this test block created only
// dListView.Add(Util.BuildSimpleFilterDataListViewColumn("widgetname", Util.OpStartsWith, WidgetNameStart));
// //NOW FETCH WIDGET LIST WITH FILTER
// // a = await Util.GetAsync($"data-list/list?DataListKey=TestWidgetDataList&Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("superuser", "l3tm3in"));
// a = await Util.PostAsync($"data-list", await Util.GetTokenAsync("superuser", "l3tm3in"), Util.BuildDataListRequestEx(dListView));
// 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][0]["i"].Value<long>().Should().Be(FirstInOrderWidgetId);
// a.ObjectResponse["data"][1][0]["i"].Value<long>().Should().Be(SecondInOrderWidgetId);
// a.ObjectResponse["data"][2][0]["i"].Value<long>().Should().Be(ThirdInOrderWidgetId);
// a = await Util.DeleteAsync("widget/" + FirstInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// a = await Util.DeleteAsync("widget/" + SecondInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// a = await Util.DeleteAsync("widget/" + ThirdInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// }
// /// <summary>
// ///
// /// </summary>
// [Fact]
// public async Task SortByFieldAscendingWorks()
// {
// var WidgetNameStart = Util.Uniquify("SortByFieldAscendingWorks");
// //CREATE 3 TEST WIDGETS TO TEST ORDER
// long FirstInOrderWidgetId = 0;
// long SecondInOrderWidgetId = 0;
// long ThirdInOrderWidgetId = 0;
// dynamic w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.startDate = DateTime.Now;
// w.endDate = DateTime.Now.AddHours(1);
// w.usertype = 1;
// ApiResponse a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// FirstInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.startDate = DateTime.Now.AddHours(1);
// w.endDate = DateTime.Now.AddHours(2);
// w.usertype = 1;
// a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// SecondInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.startDate = DateTime.Now.AddHours(2);
// w.endDate = DateTime.Now.AddHours(3);
// w.usertype = 1;
// a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// ThirdInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// //CREATE FILTER
// //FILTER IN BY NAME FOR TESTING THIS RUN ONLY
// dynamic dListView = new JArray();
// //name starts with filter to constrict to widgets that this test block created only
// //SORT ORDER ###################
// // dynamic dsortarray = new JArray();
// // dynamic dsort = new JObject();
// // dsort.fld = "widgetstartdate";
// // dsort.dir = "+";
// // dsortarray.Add(dsort);
// //both conditions filter and sort here
// dListView.Add(Util.BuildSimpleFilterDataListViewColumn("widgetname", Util.OpStartsWith, WidgetNameStart, "+"));
// //NOW FETCH WIDGET LIST WITH FILTER
// a = await Util.PostAsync($"data-list", await Util.GetTokenAsync("superuser", "l3tm3in"), Util.BuildDataListRequestEx(dListView));
// 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][0]["i"].Value<long>().Should().Be(FirstInOrderWidgetId);
// a.ObjectResponse["data"][1][0]["i"].Value<long>().Should().Be(SecondInOrderWidgetId);
// a.ObjectResponse["data"][2][0]["i"].Value<long>().Should().Be(ThirdInOrderWidgetId);
// a = await Util.DeleteAsync("widget/" + FirstInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// a = await Util.DeleteAsync("widget/" + SecondInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// a = await Util.DeleteAsync("widget/" + ThirdInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// }
// /// <summary>
// ///
// /// </summary>
// [Fact]
// public async Task SortByFieldDescendingWorks()
// {
// var WidgetNameStart = Util.Uniquify("SortByFieldDescendingWorks");
// //CREATE 3 TEST WIDGETS TO TEST ORDER
// long FirstInOrderWidgetId = 0;
// long SecondInOrderWidgetId = 0;
// long ThirdInOrderWidgetId = 0;
// dynamic w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.count = 999;
// w.usertype = 1;
// ApiResponse a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// FirstInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.count = 665;
// w.usertype = 1;
// a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// SecondInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.count = 333;
// w.usertype = 1;
// a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// ThirdInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// //CREATE FILTER
// //FILTER IN BY NAME FOR TESTING THIS RUN ONLY
// dynamic dListView = new JArray();
// //name starts with filter to constrict to widgets that this test block created only
// dListView.Add(Util.BuildSimpleFilterDataListViewColumn("widgetname", Util.OpStartsWith, WidgetNameStart));
// //SORT ORDER ###################
// // dynamic dsortarray = new JArray();
// // dynamic dsort = new JObject();
// // dsort.fld = "widgetcount";
// // dsort.dir = "-";
// dListView.Add(Util.BuildSimpleSortDataListViewColumn("widgetcount", "-"));
// //NOW FETCH WIDGET LIST WITH FILTER
// a = await Util.PostAsync($"data-list", await Util.GetTokenAsync("superuser", "l3tm3in"), Util.BuildDataListRequestEx(dListView));
// 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][0]["i"].Value<long>().Should().Be(FirstInOrderWidgetId);
// a.ObjectResponse["data"][1][0]["i"].Value<long>().Should().Be(SecondInOrderWidgetId);
// a.ObjectResponse["data"][2][0]["i"].Value<long>().Should().Be(ThirdInOrderWidgetId);
// a = await Util.DeleteAsync("widget/" + FirstInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// a = await Util.DeleteAsync("widget/" + SecondInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// a = await Util.DeleteAsync("widget/" + ThirdInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// }
// /// <summary>
// ///
// /// </summary>
// [Fact]
// public async Task SortByMultipleFieldsWorks()
// {
// /*
// Created order:
// dollaramount, count
// 2,1
// 1,2
// 2,2
// 1,1
// sorted order:
// dollar asc, count desc
// 1,2
// 1,1
// 2,2
// 2,1
// */
// var WidgetNameStart = Util.Uniquify("SortByMultipleFieldsWorks");
// //CREATE 4 TEST WIDGETS TO TEST ORDER
// long FirstInOrderWidgetId = 0;
// long SecondInOrderWidgetId = 0;
// long ThirdInOrderWidgetId = 0;
// long FourthInOrderWidgetId = 0;
// dynamic w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.dollaramount = 2.22;
// w.count = 1;
// w.usertype = 1;
// ApiResponse a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// FourthInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.dollaramount = 1.11;
// w.count = 2;
// w.usertype = 1;
// a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// FirstInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.dollaramount = 1.11;
// w.count = 1;
// w.usertype = 1;
// a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// SecondInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// w = new JObject();
// w.name = Util.Uniquify(WidgetNameStart);
// w.customFields = Util.WidgetRequiredCustomFieldsJsonString();
// w.notes = "blah";
// w.dollaramount = 2.22;
// w.count = 2;
// w.usertype = 1;
// a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString());
// Util.ValidateDataReturnResponseOk(a);
// ThirdInOrderWidgetId = a.ObjectResponse["data"]["id"].Value<long>();
// //CREATE FILTER
// //FILTER IN BY NAME FOR TESTING THIS RUN ONLY
// dynamic dListView = new JArray();
// //name starts with filter to constrict to widgets that this test block created only
// dListView.Add(Util.BuildSimpleFilterDataListViewColumn("widgetname", Util.OpStartsWith, WidgetNameStart));
// //SORT ORDER ###################
// // dynamic dsortarray = new JArray();
// //First column
// // dynamic dsort1 = new JObject();
// // dsort1.fld = "widgetdollaramount";
// // dsort1.dir = "+";
// // dsortarray.Add(dsort1);
// dListView.Add(Util.BuildSimpleSortDataListViewColumn("widgetdollaramount", "+"));
// //Second column
// // dynamic dsort2 = new JObject();
// // dsort2.fld = "widgetcount";
// // dsort2.dir = "-";
// // dsortarray.Add(dsort2);
// dListView.Add(Util.BuildSimpleSortDataListViewColumn("widgetcount", "-"));
// //NOW FETCH WIDGET LIST WITH FILTER
// a = await Util.PostAsync($"data-list", await Util.GetTokenAsync("superuser", "l3tm3in"), Util.BuildDataListRequestEx(dListView));
// Util.ValidateDataReturnResponseOk(a);
// Util.ValidateHTTPStatusCode(a, 200);
// //assert contains exactly 3 records
// ((JArray)a.ObjectResponse["data"]).Count.Should().Be(4);
// //assert the order returned
// a.ObjectResponse["data"][0][0]["i"].Value<long>().Should().Be(FirstInOrderWidgetId);
// a.ObjectResponse["data"][1][0]["i"].Value<long>().Should().Be(SecondInOrderWidgetId);
// a.ObjectResponse["data"][2][0]["i"].Value<long>().Should().Be(ThirdInOrderWidgetId);
// a.ObjectResponse["data"][3][0]["i"].Value<long>().Should().Be(FourthInOrderWidgetId);
// a = await Util.DeleteAsync("widget/" + FirstInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// a = await Util.DeleteAsync("widget/" + SecondInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// a = await Util.DeleteAsync("widget/" + ThirdInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// a = await Util.DeleteAsync("widget/" + FourthInOrderWidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"));
// Util.ValidateHTTPStatusCode(a, 204);
// }
// //========================================================================
// }//eoc
// }//eons

View File

@@ -1,202 +0,0 @@
// using System;
// using Xunit;
// using Newtonsoft.Json.Linq;
// using FluentAssertions;
// using System.Collections.Generic;
// using System.Collections.Concurrent;
// namespace raven_integration
// {
// public class DataListFilterCrud
// {
// /// <summary>
// /// Test all CRUD routes
// /// </summary>
// [Fact]
// public async Task CRUD()
// {
// //CREATE
// dynamic d = new JObject();
// d.name = Util.Uniquify("Test DataListView");
// d["public"] = true;
// d.listKey="TestWidgetDataList";
// //"[{fld:"name",op:"!=",value:"Notequaltothis"},{fld:"tags",op:"Eq",value:"[23,456,54]"}]
// dynamic dListView = new JArray();
// // dynamic df = new JObject();
// // df.fld = "widgetname";
// // df.op = "%-";
// // df.value = "Generic";//lots of seed widgets start with Generic
// // dListView.Add(df);
// // d.filter = dListView.ToString();//it expects it to be a json string, not actual json
// dListView.Add(Util.BuildSimpleFilterDataListViewColumn("widgetname", Util.OpStartsWith, "Generic"));
// d.listView=dListView.ToString(Newtonsoft.Json.Formatting.None);
// ApiResponse a = await Util.PostAsync("data-list-view", await Util.GetTokenAsync("BizAdmin"), d.ToString(Newtonsoft.Json.Formatting.None));
// Util.ValidateDataReturnResponseOk(a);
// long Id = a.ObjectResponse["data"]["id"].Value<long>();
// //RETRIEVE
// //Get one
// a = await Util.GetAsync("data-list-view/" + Id.ToString(), await Util.GetTokenAsync("BizAdmin"));
// Util.ValidateDataReturnResponseOk(a);
// a.ObjectResponse["data"]["name"].Value<string>().Should().StartWith("Test DataListView");
// //Get as alternate user should work for public filter
// a = await Util.GetAsync("data-list-view/" + Id.ToString(), await Util.GetTokenAsync("SubContractorRestricted"));
// Util.ValidateDataReturnResponseOk(a);
// a.ObjectResponse["data"]["name"].Value<string>().Should().StartWith("Test DataListView");
// //UPDATE
// //PUT, make private
// d["public"] = false;
// d.name = Util.Uniquify("Put - Test DataListView (privatized)");
// d.concurrency = a.ObjectResponse["data"]["concurrency"].Value<uint>();
// a = await Util.PutAsync("data-list-view/" + Id.ToString(), await Util.GetTokenAsync("BizAdmin"), d.ToString());
// Util.ValidateHTTPStatusCode(a, 200);
// //check PUT worked
// a = await Util.GetAsync("data-list-view/" + Id.ToString(), await Util.GetTokenAsync("BizAdmin"));
// Util.ValidateNoErrorInResponse(a);
// a.ObjectResponse["data"]["name"].Value<string>().Should().Be(d.name.ToString());
// //FETCH DISALLOWED
// //Get as alternate user should fail for private filter
// a = await Util.GetAsync("data-list-view/" + Id.ToString(), await Util.GetTokenAsync("SubContractorRestricted"));
// Util.ValidateResponseNotFound(a);
// // //DELETE
// ApiResponse DELETETestResponse = await Util.DeleteAsync("data-list-view/" + Id.ToString(), await Util.GetTokenAsync("BizAdmin"));
// Util.ValidateHTTPStatusCode(DELETETestResponse, 204);
// }
// /// <summary>
// ///
// /// </summary>
// [Fact]
// public async Task InvalidListKeyShouldFail()
// {
// //CREATE
// dynamic d = new JObject();
// d.name = Util.Uniquify("Test DataListView");
// d["public"] = true;
// d.listKey = "nonexistant";
// //"[{fld:"name",op:"!=",value:"Notequaltothis"},{fld:"tags",op:"Eq",value:"[23,456,54]"}]
// // dynamic dfilter = new JArray();
// // dynamic df = new JObject();
// // df.fld = "name";
// // df.op = "%-";
// // df.value = "Generic";//lots of seed widgets start with Generic
// // dfilter.Add(df);
// // d.filter = dfilter.ToString();//it expects it to be a json string, not actual json
// // ApiResponse a = await Util.PostAsync("data-list-view", await Util.GetTokenAsync("BizAdmin"), d.ToString());
// dynamic dListView = new JArray();
// // dynamic df = new JObject();
// // df.fld = "widgetname";
// // df.op = "%-";
// // df.value = "Generic";//lots of seed widgets start with Generic
// // dListView.Add(df);
// // d.filter = dListView.ToString();//it expects it to be a json string, not actual json
// dListView.Add(Util.BuildSimpleFilterDataListViewColumn("widgetname", Util.OpStartsWith, "Generic"));
// d.listView=dListView.ToString(Newtonsoft.Json.Formatting.None);
// ApiResponse a = await Util.PostAsync("data-list-view", await Util.GetTokenAsync("BizAdmin"), d.ToString(Newtonsoft.Json.Formatting.None));
// Util.ValidateErrorCodeResponse(a, 2200, 400);
// Util.ShouldContainValidationError(a, "ListKey", "2203");
// }
// /// <summary>
// ///
// /// </summary>
// [Fact]
// public async Task InvalidFieldNameShouldFail()
// {
// //CREATE
// dynamic d = new JObject();
// d.name = Util.Uniquify("Test DataListView");
// d["public"] = true;
// d.listKey="TestWidgetDataList";
// //"[{fld:"name",op:"!=",value:"Notequaltothis"},{fld:"tags",op:"Eq",value:"[23,456,54]"}]
// // dynamic dfilter = new JArray();
// // dynamic df = new JObject();
// // df.fld = "doesntexist";
// // df.op = "%-";
// // df.value = "Generic";//lots of seed widgets start with Generic
// // dfilter.Add(df);
// // d.filter = dfilter.ToString();//it expects it to be a json string, not actual json
// // ApiResponse a = await Util.PostAsync("data-list-view", await Util.GetTokenAsync("BizAdmin"), d.ToString());
// dynamic dListView = new JArray();
// // dynamic df = new JObject();
// // df.fld = "widgetname";
// // df.op = "%-";
// // df.value = "Generic";//lots of seed widgets start with Generic
// // dListView.Add(df);
// // d.filter = dListView.ToString();//it expects it to be a json string, not actual json
// dListView.Add(Util.BuildSimpleFilterDataListViewColumn("doesntexist", Util.OpStartsWith, "Generic"));
// d.listView=dListView.ToString(Newtonsoft.Json.Formatting.None);
// ApiResponse a = await Util.PostAsync("data-list-view", await Util.GetTokenAsync("BizAdmin"), d.ToString(Newtonsoft.Json.Formatting.None));
// Util.ValidateErrorCodeResponse(a, 2200, 400);
// Util.ShouldContainValidationError(a, "ListView", "2203");
// }
// //REMOVED THIS VALIDATION TEST AS SWITCH TO DATALISTVIEW NO LONGER VALIDATES FILTER ANYWAY
// //ONLY COLUMN NAMES AND LIST NAME
// // /// <summary>
// // ///
// // /// </summary>
// // [Fact]
// // public async Task InvalidOperatorShouldFail()
// // {
// // //CREATE
// // dynamic d = new JObject();
// // d.name = Util.Uniquify("Test DataListView");
// // d["public"] = true;
// // d.listKey="TestWidgetDataList";
// // //"[{fld:"name",op:"!=",value:"Notequaltothis"},{fld:"tags",op:"Eq",value:"[23,456,54]"}]
// // dynamic dfilter = new JArray();
// // dynamic df = new JObject();
// // df.fld = "name";
// // df.op = "wtf";
// // df.value = "Generic";//lots of seed widgets start with Generic
// // dfilter.Add(df);
// // d.filter = dfilter.ToString();//it expects it to be a json string, not actual json
// // ApiResponse a = await Util.PostAsync("data-list-view", await Util.GetTokenAsync("BizAdmin"), d.ToString());
// // Util.ValidateErrorCodeResponse(a, 2200, 400);
// // Util.ShouldContainValidationError(a, "Filter", "2203");
// // }
// //==================================================
// }//eoc
// }//eons