From 3c0d845ff623f1defe095654b8e688a9f61ddb2a Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 10 Jan 2019 19:12:39 +0000 Subject: [PATCH] --- FormCustom/FormCustom.cs | 172 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 172 insertions(+) create mode 100644 FormCustom/FormCustom.cs diff --git a/FormCustom/FormCustom.cs b/FormCustom/FormCustom.cs new file mode 100644 index 0000000..fe3e143 --- /dev/null +++ b/FormCustom/FormCustom.cs @@ -0,0 +1,172 @@ +using System; +using Xunit; +using Newtonsoft.Json.Linq; +using FluentAssertions; +using System.Collections.Generic; +using System.Collections.Concurrent; + +namespace raven_integration +{ + + public class FormCustom + { + + // /// + // /// Test all CRUD routes + // /// + // [Fact] + // public async void CRUD() + // { + // //CREATE + // dynamic d = new JObject(); + // d.name = Util.Uniquify("Test DataFilter"); + // // d.ownerId = 1L; + // d["public"] = true; + // d.listKey = "widget"; + + // //"[{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("DataFilter", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); + // Util.ValidateDataReturnResponseOk(a); + + // long Id = a.ObjectResponse["data"]["id"].Value(); + + + // //RETRIEVE + // //Get one + // a = await Util.GetAsync("DataFilter/" + Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); + // Util.ValidateDataReturnResponseOk(a); + // a.ObjectResponse["data"]["name"].Value().Should().StartWith("Test DataFilter"); + + // //Get as alternate user should work for public filter + // a = await Util.GetAsync("DataFilter/" + Id.ToString(), await Util.GetTokenAsync("SubContractorLimited")); + // Util.ValidateDataReturnResponseOk(a); + // a.ObjectResponse["data"]["name"].Value().Should().StartWith("Test DataFilter"); + + + // //UPDATE + + // //PUT, make private + // d["public"] = false; + // d.name = Util.Uniquify("Put - Test DataFilter (privatized)"); + // d.concurrencyToken = a.ObjectResponse["data"]["concurrencyToken"].Value(); + // a = await Util.PutAsync("DataFilter/" + Id.ToString(), await Util.GetTokenAsync("BizAdminFull"), d.ToString()); + // Util.ValidateHTTPStatusCode(a, 200); + + // //check PUT worked + // a = await Util.GetAsync("DataFilter/" + 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("DataFilter/" + Id.ToString(), await Util.GetTokenAsync("SubContractorLimited")); + // Util.ValidateResponseNotFound(a); + + // // //DELETE + // ApiResponse DELETETestResponse = await Util.DeleteAsync("DataFilter/" + Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); + // Util.ValidateHTTPStatusCode(DELETETestResponse, 204); + + // } + + /// + /// + /// + [Fact] + public async void InvalidAvailableFieldsFormKeyShouldFail() + { + + ApiResponse a = await Util.GetAsync("FormCustom/AvailableFields/nonexistent", await Util.GetTokenAsync("BizAdminFull")); + Util.ValidateErrorCodeResponse(a, 2010, 404); + + } + + + /// + /// + /// + [Fact] + public async void AvailableFieldsWorks() + { + + ApiResponse a = await Util.GetAsync("FormCustom/AvailableFields/widget", await Util.GetTokenAsync("BizAdminFull")); + Util.ValidateDataReturnResponseOk(a); + ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(25); + + } + + // /// + // /// + // /// + // [Fact] + // public async void InvalidFieldNameShouldFail() + // { + // //CREATE + // dynamic d = new JObject(); + // d.name = Util.Uniquify("Test DataFilter"); + // // d.ownerId = 1L; + // d["public"] = true; + // d.listKey = "widget"; + + // //"[{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("DataFilter", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); + // Util.ValidateErrorCodeResponse(a, 2200, 400); + // Util.ShouldContainValidationError(a, "Filter", "InvalidValue"); + + // } + + + + // /// + // /// + // /// + // [Fact] + // public async void InvalidOperatorShouldFail() + // { + // //CREATE + // dynamic d = new JObject(); + // d.name = Util.Uniquify("Test DataFilter"); + // // d.ownerId = 1L; + // d["public"] = true; + // d.listKey = "widget"; + + // //"[{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("DataFilter", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); + // Util.ValidateErrorCodeResponse(a, 2200, 400); + // Util.ShouldContainValidationError(a, "Filter", "InvalidValue"); + + // } + + + + //================================================== + + }//eoc +}//eons