From 5a289da6df08b8b967085e49b18f955fab331ace Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 10 Jan 2019 23:47:00 +0000 Subject: [PATCH] --- FormCustom/FormCustom.cs | 182 +++++++++++++++++++++++++++------------ 1 file changed, 127 insertions(+), 55 deletions(-) diff --git a/FormCustom/FormCustom.cs b/FormCustom/FormCustom.cs index fe3e143..c595f45 100644 --- a/FormCustom/FormCustom.cs +++ b/FormCustom/FormCustom.cs @@ -11,72 +11,144 @@ 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"; + /// + /// Test create or update + /// + [Fact] + public async void FormCustomCreateUpdate() + { - // //"[{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(); + //This is a special case, you can create or PUT a formcustom, but you can't delete one and you can't create one if one already exists + //so this test will either create or update depending upon if it's already created one or not - // //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"); + dynamic d = new JObject(); + d.formkey = "widget"; - // //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"); + /* + Example: + {template:[{fld:"ltkeyfieldname",hide:"true/false",required:"true/false", type:"bool"},{fld:"ltkeyfieldname",hide:"true/false",required:"true/false", type:"text"]} + */ + + dynamic dtemplate = new JArray(); + + dynamic dt = new JObject(); + dt.fld = "WidgetCustom1"; + dt.hide = false; + dt.required = true; + dt.type = "date"; + dtemplate.Add(dt); + + dt = new JObject(); + dt.fld = "WidgetCustom2"; + dt.hide = true; + dt.required = false; + dt.type = "bool"; + dtemplate.Add(dt); + + d.template = dtemplate.ToString();//it expects it to be a json string, not actual json - // //UPDATE + //Is there one already? + //RETRIEVE + //Get one + ApiResponse a = await Util.GetAsync("FormCustom/widget", await Util.GetTokenAsync("BizAdminFull")); - // //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()); + bool Exists = ((int)a.HttpResponse.StatusCode) == 200; - // //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); + if (Exists) + { - // // //DELETE - // ApiResponse DELETETestResponse = await Util.DeleteAsync("DataFilter/" + Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); - // Util.ValidateHTTPStatusCode(DELETETestResponse, 204); + //Update - // } + + //update it + d.concurrencyToken = a.ObjectResponse["data"]["concurrencyToken"].Value(); + a = await Util.PutAsync("FormCustom/widget", 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()); + + + } + else + { + //Create it + // a = await Util.PostAsync("FormCustom", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); + // Util.ValidateDataReturnResponseOk(a); + + + } + + // a.ObjectResponse["data"]["name"].Value().Should().StartWith("Test DataFilter"); + + + + + // //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 + + // 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); + + } /// ///