diff --git a/PickList/PickListAllTests.cs b/PickList/PickListAllTests.cs new file mode 100644 index 0000000..0610d3c --- /dev/null +++ b/PickList/PickListAllTests.cs @@ -0,0 +1,202 @@ +using System; +using Xunit; +using Newtonsoft.Json.Linq; +using FluentAssertions; +using System.Collections.Generic; +using System.Collections.Concurrent; + +namespace raven_integration +{ + + public class PickListAllTests + { + + //NOTE: in order not to interfere in each other will use Widget picklist to test with standard unmodified picklist template + //and will use User PickList to test the template functionality + + /// + /// Test all Template editing related routes + /// + [Fact] + public async void UserPickListTemplates() + { + //NOTE: Due to there being only one possible template per type, this test will need to test ALL potential tests in one function + //and only for the User picklist in order to not step over other potential tests running in parallel + + //REPLACE USER TEMPLATE + dynamic d = new JObject(); + d.Id = 3;//User type + + //template, simple test, nothing fancy + dynamic dTemplateArray = new JArray(); + dynamic df = new JObject(); + df.fld = "useremployeenumber"; + dTemplateArray.Add(df); + d.Template = dTemplateArray.ToString(Newtonsoft.Json.Formatting.None); + + //replace the User template at the server + ApiResponse a = await Util.PostAsync("PickList/Template", await Util.GetTokenAsync("BizAdminFull"), d.ToString(Newtonsoft.Json.Formatting.None)); + Util.ValidateHTTPStatusCode(a, 204); + // Util.ValidateDataReturnResponseOk(a); + + + + // //RETRIEVE + // //Get one + // a = await Util.GetAsync("DataListView/" + Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); + // Util.ValidateDataReturnResponseOk(a); + // a.ObjectResponse["data"]["name"].Value().Should().StartWith("Test DataListView"); + + // //Get as alternate user should work for public filter + // a = await Util.GetAsync("DataListView/" + Id.ToString(), await Util.GetTokenAsync("SubContractorLimited")); + // Util.ValidateDataReturnResponseOk(a); + // a.ObjectResponse["data"]["name"].Value().Should().StartWith("Test DataListView"); + + + // //UPDATE + + // //PUT, make private + // d["public"] = false; + // d.name = Util.Uniquify("Put - Test DataListView (privatized)"); + // d.concurrencyToken = a.ObjectResponse["data"]["concurrencyToken"].Value(); + // a = await Util.PutAsync("DataListView/" + Id.ToString(), await Util.GetTokenAsync("BizAdminFull"), d.ToString()); + // Util.ValidateHTTPStatusCode(a, 200); + + // //check PUT worked + // a = await Util.GetAsync("DataListView/" + Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); + // Util.ValidateNoErrorInResponse(a); + // a.ObjectResponse["data"]["name"].Value().Should().Be(d.name.ToString()); + + + // //FETCH DISALLOWED + // //Get as alternate user should fail for private filter + // a = await Util.GetAsync("DataListView/" + Id.ToString(), await Util.GetTokenAsync("SubContractorLimited")); + // Util.ValidateResponseNotFound(a); + + // // //DELETE + // ApiResponse DELETETestResponse = await Util.DeleteAsync("DataListView/" + Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); + // Util.ValidateHTTPStatusCode(DELETETestResponse, 204); + + } + + // /// + // /// + // /// + // [Fact] + // public async void 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("DataListView", await Util.GetTokenAsync("BizAdminFull"), 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("DataListView", await Util.GetTokenAsync("BizAdminFull"), d.ToString(Newtonsoft.Json.Formatting.None)); + // Util.ValidateErrorCodeResponse(a, 2200, 400); + // Util.ShouldContainValidationError(a, "ListKey", "2203"); + + // } + + + // /// + // /// + // /// + // [Fact] + // public async void 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("DataListView", await Util.GetTokenAsync("BizAdminFull"), 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("DataListView", await Util.GetTokenAsync("BizAdminFull"), 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 + // // /// + // // /// + // // /// + // // [Fact] + // // public async void 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("DataListView", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); + // // Util.ValidateErrorCodeResponse(a, 2200, 400); + // // Util.ShouldContainValidationError(a, "Filter", "2203"); + + // // } + + + + //================================================== + + }//eoc +}//eons