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