diff --git a/test/raven-integration/.vscode/launch.json b/test/raven-integration/.vscode/launch.json
deleted file mode 100644
index 8a3f0fde..00000000
--- a/test/raven-integration/.vscode/launch.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- // Use IntelliSense to find out which attributes exist for C# debugging
- // Use hover for the description of the existing attributes
- // For further information visit https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md
- "version": "0.2.0",
- "configurations": [
- {
- "name": ".NET Core Launch (console)",
- "type": "coreclr",
- "request": "launch",
- "preLaunchTask": "build",
- // If you have changed target frameworks, make sure to update the program path.
- "program": "${workspaceFolder}/bin/Debug/netcoreapp2.0/raven-integration.dll",
- "args": [],
- "cwd": "${workspaceFolder}",
- // For more information about the 'console' field, see https://github.com/OmniSharp/omnisharp-vscode/blob/master/debugger-launchjson.md#console-terminal-window
- "console": "internalConsole",
- "stopAtEntry": false,
- "internalConsoleOptions": "openOnSessionStart"
- },
- {
- "name": ".NET Core Attach",
- "type": "coreclr",
- "request": "attach",
- "processId": "${command:pickProcess}"
- }
- ]
-}
\ No newline at end of file
diff --git a/test/raven-integration/.vscode/settings.json b/test/raven-integration/.vscode/settings.json
deleted file mode 100644
index c2aabc7d..00000000
--- a/test/raven-integration/.vscode/settings.json
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "editor.codeLens": true
-}
\ No newline at end of file
diff --git a/test/raven-integration/.vscode/tasks.json b/test/raven-integration/.vscode/tasks.json
deleted file mode 100644
index 51afd6ad..00000000
--- a/test/raven-integration/.vscode/tasks.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "version": "2.0.0",
- "tasks": [
- {
- "taskName": "build",
- "command": "dotnet",
- "type": "process",
- "args": [
- "build",
- "${workspaceFolder}/raven-integration.csproj"
- ],
- "problemMatcher": "$msCompile"
- }
- ]
-}
\ No newline at end of file
diff --git a/test/raven-integration/ApiResponse.cs b/test/raven-integration/ApiResponse.cs
deleted file mode 100644
index b6269018..00000000
--- a/test/raven-integration/ApiResponse.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.Net.Http;
-using Newtonsoft.Json.Linq;
-
-namespace raven_integration
-{
- public class ApiResponse
- {
- public HttpResponseMessage HttpResponse {get;set;}
- public JObject ObjectResponse {get;set;}
-
-
- }//eoc
-}//eons
\ No newline at end of file
diff --git a/test/raven-integration/ApiTextResponse.cs b/test/raven-integration/ApiTextResponse.cs
deleted file mode 100644
index 6cad35a8..00000000
--- a/test/raven-integration/ApiTextResponse.cs
+++ /dev/null
@@ -1,13 +0,0 @@
-using System.Net.Http;
-using Newtonsoft.Json.Linq;
-
-namespace raven_integration
-{
- public class ApiTextResponse
- {
- public HttpResponseMessage HttpResponse {get;set;}
- public string TextResponse {get;set;}
-
-
- }//eoc
-}//eons
\ No newline at end of file
diff --git a/test/raven-integration/Attachments/AttachmentTest.cs b/test/raven-integration/Attachments/AttachmentTest.cs
deleted file mode 100644
index bc77b88d..00000000
--- a/test/raven-integration/Attachments/AttachmentTest.cs
+++ /dev/null
@@ -1,182 +0,0 @@
-using System;
-using Xunit;
-using Newtonsoft.Json.Linq;
-using FluentAssertions;
-using System.Collections.Generic;
-using System.Collections.Concurrent;
-using System.Net.Http;
-using System.Net.Http.Headers;
-using System.IO;
-
-namespace raven_integration
-{
- //https://stackoverflow.com/questions/17725882/testing-asp-net-web-api-multipart-form-data-file-upload
- public class AttachmentTest
- {
- ///
- /// test attach CRUD
- ///
- [Fact]
- public async void AttachmentUploadDownloadDeleteShouldWork()
- {
-
- //////////////////////////////////////////
- //// Upload the files
- MultipartFormDataContent formDataContent = new MultipartFormDataContent();
-
- //Form data like the bizobject type and id
- formDataContent.Add(new StringContent("2"), name: "AttachToObjectType");
- formDataContent.Add(new StringContent("1"), name: "AttachToObjectId");
- //or if testing non-existant this is probably safe: long.MaxValue
-
-
- StreamContent file1 = new StreamContent(File.OpenRead($"{Util.TEST_DATA_FOLDER}\\test.png"));
- file1.Headers.ContentType = new MediaTypeHeaderValue("image/png");
- file1.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data");
- file1.Headers.ContentDisposition.FileName = "test.png";
- formDataContent.Add(file1);
- StreamContent file2 = new StreamContent(File.OpenRead($"{Util.TEST_DATA_FOLDER}\\test.zip"));
- file2.Headers.ContentType = new MediaTypeHeaderValue("application/zip");
- file2.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data");
- file2.Headers.ContentDisposition.FileName = "test.zip";
- formDataContent.Add(file2);
-
- //create via inventory full test user as attachments use the role of the object attaching to
- ApiResponse a = await Util.PostFormDataAsync("Attachment", formDataContent, await Util.GetTokenAsync("InventoryFull"));
-
-
- Util.ValidateDataReturnResponseOk(a);
-
-
- long lTestPngAttachmentId = a.ObjectResponse["data"][0]["id"].Value();
- long lTestZipAttachmentId = a.ObjectResponse["data"][1]["id"].Value();
-
- //saw negative values on a db issue that I corrected (I think)
- //Keeping these in case it arises again, if it does, see log, it's a db error with async issue of some kind
- lTestPngAttachmentId.Should().BePositive();
- lTestZipAttachmentId.Should().BePositive();
-
- //////////////////////////////////////////
- //// DOWNLOAD: Get the file attachment
-
- //Get the inventoryfull account download token
- // {
- // "data": {
- // "dlkey": "w7iE1cXF8kOxo8eomd1r8A",
- // "expires": "2018-04-25T23:45:39.05665"
- // }
- // }
- a = await Util.GetAsync("Attachment/DownloadToken", await Util.GetTokenAsync("InventoryFull"));
- Util.ValidateDataReturnResponseOk(a);
- string downloadToken = a.ObjectResponse["data"]["dlkey"].Value();
-
- //now get the file https://rockfish.ayanova.com/api/rfcaseblob/download/248?dlkey=9O2eDAAlZ0Wknj19SBK2iA
- var dlresponse = await Util.DownloadFileAsync("Attachment/Download/" + lTestZipAttachmentId.ToString() + "?dlkey=" + downloadToken, await Util.GetTokenAsync("InventoryFull"));
-
- //ensure it's the zip file we expected
- dlresponse.Content.Headers.ContentDisposition.FileName.Should().Be("test.zip");
- dlresponse.Content.Headers.ContentLength.Should().BeGreaterThan(2000);
-
-
- //////////////////////////////////////////
- //// DELETE: Delete the file attachments
- ApiResponse d = await Util.DeleteAsync("Attachment/" + lTestPngAttachmentId.ToString(), await Util.GetTokenAsync("InventoryFull"));
- Util.ValidateHTTPStatusCode(d, 204);
-
- d = await Util.DeleteAsync("Attachment/" + lTestZipAttachmentId.ToString(), await Util.GetTokenAsync("InventoryFull"));
- Util.ValidateHTTPStatusCode(d, 204);
-
-
- }
-
-
-
- ///
- /// test no rights
- ///
- [Fact]
- public async void NoRightsTest()
- {
-
- MultipartFormDataContent formDataContent = new MultipartFormDataContent();
-
- formDataContent.Add(new StringContent("2"), name: "AttachToObjectType");
- formDataContent.Add(new StringContent("1"), name: "AttachToObjectId");
-
- StreamContent file1 = new StreamContent(File.OpenRead($"{Util.TEST_DATA_FOLDER}\\test.png"));
- file1.Headers.ContentType = new MediaTypeHeaderValue("image/png");
- file1.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data");
- file1.Headers.ContentDisposition.FileName = "test.png";
- formDataContent.Add(file1);
-
- //ERROR CONDITION: BizAdminLimited user should not be able to attach a file to a widget
- ApiResponse a = await Util.PostFormDataAsync("Attachment", formDataContent, await Util.GetTokenAsync("BizAdminLimited"));
-
- //2004 unauthorized
- Util.ValidateErrorCodeResponse(a, 2004, 401);
-
- }
-
-
- ///
- /// test not attachable
- ///
- [Fact]
- public async void UnattachableTest()
- {
- MultipartFormDataContent formDataContent = new MultipartFormDataContent();
-
- //Form data bizobject type and id
-
- //HERE IS THE ERROR CONDITION: LICENSE TYPE OBJECT WHICH IS UNATTACHABLE
- formDataContent.Add(new StringContent("5"), name: "AttachToObjectType");
- formDataContent.Add(new StringContent("1"), name: "AttachToObjectId");
-
- StreamContent file1 = new StreamContent(File.OpenRead($"{Util.TEST_DATA_FOLDER}\\test.png"));
- file1.Headers.ContentType = new MediaTypeHeaderValue("image/png");
- file1.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data");
- file1.Headers.ContentDisposition.FileName = "test.png";
- formDataContent.Add(file1);
- ApiResponse a = await Util.PostFormDataAsync("Attachment", formDataContent, await Util.GetTokenAsync("InventoryFull"));
-
- //2203 unattachable object
- Util.ValidateErrorCodeResponse(a, 2203, 400);
-
- }
-
-
- ///
- /// test bad object values
- ///
- [Fact]
- public async void BadObject()
- {
- MultipartFormDataContent formDataContent = new MultipartFormDataContent();
-
- //Form data like the bizobject type and id
- formDataContent.Add(new StringContent("2"), name: "AttachToObjectType");
-
- //HERE IS THE ERROR CONDITION, A NON EXISTENT ID VALUE FOR THE WIDGET
- formDataContent.Add(new StringContent(long.MaxValue.ToString()), name: "AttachToObjectId");//non-existent widget
-
- StreamContent file1 = new StreamContent(File.OpenRead($"{Util.TEST_DATA_FOLDER}\\test.png"));
- file1.Headers.ContentType = new MediaTypeHeaderValue("image/png");
- file1.Headers.ContentDisposition = new ContentDispositionHeaderValue("form-data");
- file1.Headers.ContentDisposition.FileName = "test.png";
- formDataContent.Add(file1);
- ApiResponse a = await Util.PostFormDataAsync("Attachment", formDataContent, await Util.GetTokenAsync("InventoryFull"));
-
- //2203 invalid attachment object
- Util.ValidateErrorCodeResponse(a, 2203, 400);
-
- }
-
-
-
-
-
-
- //==================================================
-
- }//eoc
-}//eons
diff --git a/test/raven-integration/Authentication/Auth.cs b/test/raven-integration/Authentication/Auth.cs
deleted file mode 100644
index 9e9233f2..00000000
--- a/test/raven-integration/Authentication/Auth.cs
+++ /dev/null
@@ -1,36 +0,0 @@
-using System;
-using Xunit;
-using Newtonsoft.Json.Linq;
-using FluentAssertions;
-
-namespace raven_integration
-{
-
- public class Auth
- {
- ///
- ///
- ///
- [Fact]
- public async void BadLoginShouldNotWork()
- {
- //Expect status code 401 and result:
- // {{
- // "error": {
- // "code": "2003",
- // "message": "Authentication failed"
- // }
- // }}
-
- dynamic d = new JObject();
- d.login = "BOGUS";
- d.password = "ACCOUNT";
- ApiResponse a = await Util.PostAsync("Auth", null, d.ToString());
- Util.ValidateErrorCodeResponse(a,2003,401);
- }
-
- //==================================================
-
- }//eoc
-}//eons
-
diff --git a/test/raven-integration/AutoId.cs b/test/raven-integration/AutoId.cs
deleted file mode 100644
index 676fef91..00000000
--- a/test/raven-integration/AutoId.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.Threading.Tasks;
-namespace raven_integration
-{
- public class AutoId
- {
- private readonly object valueLock = new object();
- private uint currentValue; //postgre bigint
-
- public AutoId(uint initialValue)
- {
- currentValue = initialValue;
- }
-
- public uint GetNext()
- {
- lock (valueLock)
- {
- currentValue += 1;
- if (currentValue == 0)
- currentValue += 1;
- return currentValue;
- }
- }
- }
-}
\ No newline at end of file
diff --git a/test/raven-integration/AyaType/AyaType.cs b/test/raven-integration/AyaType/AyaType.cs
deleted file mode 100644
index 17a2d86e..00000000
--- a/test/raven-integration/AyaType/AyaType.cs
+++ /dev/null
@@ -1,36 +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 AyaType
- {
-
- ///
- ///
- ///
- [Fact]
- public async void AyaTypeListShouldWork()
- {
- ApiResponse a = await Util.GetAsync("AyaType");
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
- //there should be at least 8 of them (at time of writing late March 2018)
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterOrEqualTo(8);
-
- //Number 2 is widget and list is zero based so confirm:
- a.ObjectResponse["data"][2]["id"].Value().Should().Be(2);
- a.ObjectResponse["data"][2]["name"].Value().Should().Be("Widget [Attachable]");
-
- }
-
-
- //==================================================
-
- }//eoc
-}//eons
diff --git a/test/raven-integration/DataFilter/DataFilterCrud.cs b/test/raven-integration/DataFilter/DataFilterCrud.cs
deleted file mode 100644
index d337fd11..00000000
--- a/test/raven-integration/DataFilter/DataFilterCrud.cs
+++ /dev/null
@@ -1,176 +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 DataFilterCrud
- {
-
- ///
- /// 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 InvalidListKeyShouldFail()
- {
- //CREATE
- dynamic d = new JObject();
- d.name = Util.Uniquify("Test DataFilter");
- // d.ownerId = 1L;
- 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("DataFilter", await Util.GetTokenAsync("BizAdminFull"), d.ToString());
- Util.ValidateErrorCodeResponse(a, 2200, 400);
- Util.ShouldContainValidationError(a, "ListKey", "InvalidValue");
-
- }
-
-
- ///
- ///
- ///
- [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
diff --git a/test/raven-integration/DataFilter/DataFilterFilteringLists.cs b/test/raven-integration/DataFilter/DataFilterFilteringLists.cs
deleted file mode 100644
index cb0c2671..00000000
--- a/test/raven-integration/DataFilter/DataFilterFilteringLists.cs
+++ /dev/null
@@ -1,6237 +0,0 @@
-using System;
-using Xunit;
-using Newtonsoft.Json.Linq;
-using FluentAssertions;
-using System.Collections.Generic;
-using System.Collections.Concurrent;
-
-namespace raven_integration
-{
-
-
- /*
-
- EVERY TYPE, EVERY OP
-
- Using the widget object test all filtering options
- for all data types, all operation types
-
- This is the supertest to always confirm the filtering code is working as expected.
-
-
- */
-
- public class DataFilterFilteringLists
- {
-
-
-
-
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //DATE
- //
-
- #region DATE FILTER TESTS
-
- public const string TokenYesterday = "{[yesterday]}";
- public const string TokenToday = "{[today]}";
- public const string TokenTomorrow = "{[tomorrow]}";
- public const string TokenLastWeek = "{[lastweek]}";
- public const string TokenThisWeek = "{[thisweek]}";
- public const string TokenNextWeek = "{[nextweek]}";
- public const string TokenLastMonth = "{[lastmonth]}";
- public const string TokenThisMonth = "{[thismonth]}";
- public const string TokenNextMonth = "{[nextmonth]}";
- public const string TokenFourteenDayWindow = "{[14daywindow]}";
- public const string TokenPast = "{[past]}";
- public const string TokenFuture = "{[future]}";
- public const string TokenLastYear = "{[lastyear]}";
- public const string TokenThisYear = "{[thisyear]}";
- public const string TokenInTheLast3Months = "{[last3months]}";
- public const string TokenInTheLast6Months = "{[last6months]}";
- public const string TokenInTheLastYear = "{[lastcalendaryear]}";
-
- //More business time frames
-
- public const string TokenYearToDate = "{[yeartodate]}";
-
- public const string TokenPast90Days = "{[past90days]}";
- public const string TokenPast30Days = "{[past30days]}";
- public const string TokenPast24Hours = "{[past24hours]}";
-
-
-
-
- #region DATE REGULAR FILTERS
-
- ///
- ///
- ///
- [Fact]
- public async void DateOpEqualityFilterWorks()
- {
-
- var WidgetNameStart = "DateOpEqualityFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1968, 3, 12, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1968, 3, 12, 11, 0, 0).ToUniversalTime();
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1968, 3, 10, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1968, 3, 10, 11, 0, 0).ToUniversalTime();
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = new DateTime(1968, 3, 12, 10, 0, 0).ToUniversalTime();
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateOpGreaterThanFilterWorks()
- {
-
- var WidgetNameStart = "DateOpGreaterThanFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1970, 3, 12, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1970, 3, 12, 11, 0, 0).ToUniversalTime();
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1968, 3, 10, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1968, 3, 10, 11, 0, 0).ToUniversalTime();
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpGreaterThan;
- FilterItem.value = new DateTime(1970, 3, 12, 9, 0, 0).ToUniversalTime();
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateOpGreaterThanOrEqualToFilterWorks()
- {
-
- var WidgetNameStart = "DateOpGreaterThanOrEqualToFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1970, 3, 12, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1970, 3, 12, 11, 0, 0).ToUniversalTime();
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1968, 3, 10, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1968, 3, 10, 11, 0, 0).ToUniversalTime();
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpGreaterThanOrEqualTo;
- FilterItem.value = new DateTime(1970, 3, 12, 10, 0, 0).ToUniversalTime();
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateOpLessThanFilterWorks()
- {
-
- var WidgetNameStart = "DateOpLessThanFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1970, 3, 12, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1970, 3, 12, 11, 0, 0).ToUniversalTime();
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1970, 4, 10, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1970, 4, 10, 11, 0, 0).ToUniversalTime();
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpLessThan;
- FilterItem.value = new DateTime(1970, 3, 12, 11, 0, 0).ToUniversalTime();
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateOpLessThanOrEqualToFilterWorks()
- {
-
- var WidgetNameStart = "DateOpLessThanOrEqualToFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1970, 3, 12, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1970, 3, 12, 11, 0, 0).ToUniversalTime();
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1970, 4, 10, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1970, 4, 10, 11, 0, 0).ToUniversalTime();
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpLessThanOrEqualTo;
- FilterItem.value = new DateTime(1970, 3, 12, 10, 0, 0).ToUniversalTime();
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateOpNotEqualToFilterWorks()
- {
-
- var WidgetNameStart = "DateOpNotEqualToFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1970, 3, 12, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1970, 3, 12, 11, 0, 0).ToUniversalTime();
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = new DateTime(1970, 4, 10, 10, 0, 0).ToUniversalTime();
- w.endDate = new DateTime(1970, 4, 10, 11, 0, 0).ToUniversalTime();
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpNotEqual;
- FilterItem.value = new DateTime(1970, 4, 10, 10, 0, 0).ToUniversalTime();
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenYesterdayFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenYesterdayFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = DateTime.UtcNow.AddDays(-1);
- w.endDate = DateTime.UtcNow.AddHours(1).AddDays(-1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = DateTime.UtcNow;
- w.endDate = DateTime.UtcNow.AddHours(1);
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenYesterday;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenTodayFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenTodayFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = DateTime.UtcNow;
- w.endDate = DateTime.UtcNow.AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = DateTime.UtcNow.AddDays(-1);
- w.endDate = DateTime.UtcNow.AddHours(1).AddDays(-1);
-
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenToday;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenTomorrowFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenTomorrowFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = DateTime.UtcNow.AddDays(1);
- w.endDate = DateTime.UtcNow.AddDays(1).AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = DateTime.UtcNow;
- w.endDate = DateTime.UtcNow.AddHours(1);
-
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenTomorrow;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenLastWeekFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenLastWeekFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //My theory is any date - 7 days is last week if you go sunday to sunday
- w.startDate = DateTime.UtcNow.AddDays(-7);
- w.endDate = DateTime.UtcNow.AddHours(1).AddDays(-7);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = DateTime.UtcNow;
- w.endDate = DateTime.UtcNow.AddHours(1);
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenLastWeek;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenThisWeekFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenThisWeekFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = DateTime.UtcNow;
- w.endDate = DateTime.UtcNow.AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //My theory is any date - 7 days is last week if you go sunday to sunday
- w.startDate = DateTime.UtcNow.AddDays(-7);
- w.endDate = DateTime.UtcNow.AddHours(1).AddDays(-7);
-
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenThisWeek;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenNextWeekFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenNextWeekFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //My theory is any date + 7 days is next week if you go sunday to sunday
- w.startDate = DateTime.UtcNow.AddDays(7);
- w.endDate = DateTime.UtcNow.AddHours(1).AddDays(7);
-
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = DateTime.UtcNow;
- w.endDate = DateTime.UtcNow.AddHours(1);
-
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenNextWeek;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenLastMonthFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenLastMonthFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //First day of this month minus 2 days equals second to last day of last month
- w.startDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).AddDays(-2).ToUniversalTime();
- w.endDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).AddDays(-2).AddHours(1).ToUniversalTime();
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //Put it right at midnight this month to ensure boundaries are respected
- w.startDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).ToUniversalTime();
- w.endDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).AddHours(1).ToUniversalTime();
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenLastMonth;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenThisMonthFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenThisMonthFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //Put it right at midnight this month to ensure boundaries are respected
- w.startDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).ToUniversalTime();
- w.endDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).AddHours(1).ToUniversalTime();
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //First day of this month minus 2 days equals second to last day of last month
- w.startDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).AddDays(-2).ToUniversalTime();
- w.endDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).AddDays(-2).AddHours(1).ToUniversalTime();
-
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenThisMonth;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenNextMonthFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenNextMonthFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //Put it right at midnight next month to ensure boundaries are respected
- w.startDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).AddMonths(1).ToUniversalTime();
- w.endDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).AddMonths(1).AddHours(1).ToUniversalTime();
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //First day of next month minus 1 second
- w.startDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).AddMonths(1).AddSeconds(-1).ToUniversalTime();
- w.endDate = new DateTime(DateTime.Today.Year, DateTime.Today.Month, 1, 00, 00, 00).AddMonths(1).AddSeconds(-1).AddHours(1).ToUniversalTime();
-
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenNextMonth;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- //SELECT *, xmin FROM AWIDGET where name Like 'DateTokenNextMonthFilterWorks%' AND startdate >'2019-01-01T15:59:59.0000000Z' AND startdate <'2019-02-01T16:00:00.0000000Z'
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateToken14DayWindowFilterWorks()
- {
-
- var WidgetNameStart = "DateToken14DayWindowFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
-
- w.startDate = DateTime.UtcNow;
- w.endDate = DateTime.UtcNow.AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //9 days ago will be outside the 14 day window
- w.startDate = DateTime.UtcNow.AddDays(-9);
- w.endDate = DateTime.UtcNow.AddDays(-9).AddHours(1);
-
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenFourteenDayWindow;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenPastFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenPastFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //Test if for the past, definitely going to be in the past when the list is fetched after saving, but will it work with the server on another machine??
- //Best to pad in 5 minutes to be on the safe side, these days no two computers on earth should be out by more than 5 minutes to UTC from each other
- w.startDate = DateTime.UtcNow.AddMinutes(-5);
- w.endDate = DateTime.UtcNow.AddMinutes(-5).AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //8 days ago will be outside the 14 day window
- w.startDate = DateTime.UtcNow.AddMonths(1);
- w.endDate = DateTime.UtcNow.AddMonths(1).AddHours(1);
-
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenPast;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenFutureFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenFutureFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow.AddMinutes(5);
- w.endDate = DateTime.UtcNow.AddMinutes(5).AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow;
- w.endDate = DateTime.UtcNow.AddHours(1);
-
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenFuture;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenLastYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenLastYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow.AddYears(-1).AddMinutes(-5);
- w.endDate = DateTime.UtcNow.AddYears(-1).AddMinutes(-5).AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow;
- w.endDate = DateTime.UtcNow.AddHours(1);
-
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenLastYear;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenThisYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenThisYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow;
- w.endDate = DateTime.UtcNow.AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow.AddYears(-1).AddMinutes(-5);
- w.endDate = DateTime.UtcNow.AddYears(-1).AddMinutes(-5).AddHours(1);
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenThisYear;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenInTheLast3MonthsFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenInTheLast3MonthsFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow.AddMonths(-3).AddMinutes(5);
- w.endDate = DateTime.UtcNow.AddMonths(-3).AddMinutes(5).AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow.AddMonths(-3).AddMinutes(-5);
- w.endDate = DateTime.UtcNow.AddMonths(-3).AddMinutes(-5).AddHours(1);
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenInTheLast3Months;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenInTheLast6MonthsFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenInTheLast6MonthsFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow.AddMonths(-6).AddMinutes(5);
- w.endDate = DateTime.UtcNow.AddMonths(-6).AddMinutes(5).AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow.AddMonths(-6).AddMinutes(-5);
- w.endDate = DateTime.UtcNow.AddMonths(-6).AddMinutes(-5).AddHours(1);
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenInTheLast6Months;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenInTheLastYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenInTheLastYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //CREATE TEST WIDGETS
-
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow.AddDays(-365).AddMinutes(5);
- w.endDate = DateTime.UtcNow.AddDays(-365).AddMinutes(5).AddHours(1);
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- //####
- w.startDate = DateTime.UtcNow.AddDays(-365).AddMinutes(-5);
- w.endDate = DateTime.UtcNow.AddDays(-365).AddMinutes(-5).AddHours(1);
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = TokenInTheLastYear;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- #endregion DATE REGULAR FILTERS
-
- #region DATE TOKEN FILTERS
-
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenYearToDateFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenYearToDateFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenYearToDate;
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 1, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year - 1, 4, 1, 00, 5, 00).ToUniversalTime();
- //##################################################################################
-
-
- DateTime InclusiveEndDate = InclusiveStartDate.AddHours(1);
- DateTime ExclusiveEndDate = ExclusiveStartDate.AddHours(1);
-
- //CREATE TEST WIDGETS
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = InclusiveStartDate;
- w.endDate = InclusiveEndDate;
-
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = ExclusiveStartDate;
- w.endDate = ExclusiveEndDate;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = FilterToken;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenPast90DaysFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenPast90DaysFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenPast90Days;
- InclusiveStartDate = DateTime.UtcNow.AddDays(-90).AddMinutes(5).ToUniversalTime();
- ExclusiveStartDate = DateTime.UtcNow.AddDays(-90).AddMinutes(-5).ToUniversalTime();
- //##################################################################################
-
-
- DateTime InclusiveEndDate = InclusiveStartDate.AddHours(1);
- DateTime ExclusiveEndDate = ExclusiveStartDate.AddHours(1);
-
- //CREATE TEST WIDGETS
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = InclusiveStartDate;
- w.endDate = InclusiveEndDate;
-
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = ExclusiveStartDate;
- w.endDate = ExclusiveEndDate;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = FilterToken;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenPast30DaysFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenPast30DaysFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenPast30Days;
- InclusiveStartDate = DateTime.UtcNow.AddDays(-30).AddMinutes(5).ToUniversalTime();
- ExclusiveStartDate = DateTime.UtcNow.AddDays(-30).AddMinutes(-5).ToUniversalTime();
- //##################################################################################
-
-
- DateTime InclusiveEndDate = InclusiveStartDate.AddHours(1);
- DateTime ExclusiveEndDate = ExclusiveStartDate.AddHours(1);
-
- //CREATE TEST WIDGETS
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = InclusiveStartDate;
- w.endDate = InclusiveEndDate;
-
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = ExclusiveStartDate;
- w.endDate = ExclusiveEndDate;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = FilterToken;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void DateTokenPast24HoursFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenPast24HoursFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenPast24Hours;
- InclusiveStartDate = DateTime.UtcNow.AddHours(-24).AddMinutes(5).ToUniversalTime();
- ExclusiveStartDate = DateTime.UtcNow.AddHours(-24).AddMinutes(-5).ToUniversalTime();
- //##################################################################################
-
-
- DateTime InclusiveEndDate = InclusiveStartDate.AddHours(1);
- DateTime ExclusiveEndDate = ExclusiveStartDate.AddHours(1);
-
- //CREATE TEST WIDGETS
- //included widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = InclusiveStartDate;
- w.endDate = InclusiveEndDate;
-
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- IncludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //Excluded widget
- w.name = Util.Uniquify(WidgetNameStart);
- w.startDate = ExclusiveStartDate;
- w.endDate = ExclusiveEndDate;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExcludedWidgetId = a.ObjectResponse["data"]["id"].Value();
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = Util.OpEquality;
- FilterItem.value = FilterToken;
- dfilter.Add(FilterItem);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least this test record
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(0);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (IncludedWidgetId == o["id"].Value())
- InclusiveMatchCount++;
- if (ExcludedWidgetId == o["id"].Value())//whups
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().BeGreaterOrEqualTo(1);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- a = await Util.DeleteAsync("Widget/" + IncludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
- a = await Util.DeleteAsync("Widget/" + ExcludedWidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
-
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
- #endregion date token filters
- //========
-
- #endregion date filter tests
-
-
-
- ///////////////////////////////////////////////////////////////////////////////
- //TEXT
- //
-
- #region STRING FILTER TESTS
-
- ///
- ///
- ///
- [Fact]
- public async void TextOpEqualityFilterWorks()
- {
-
- var TestName = "TextOpEqualityFilterWorks";
- var WidgetRunNameStart = Util.Uniquify(TestName);
-
- List InclusiveWidgetIdList = new List();
- List ExclusiveWidgetIdList = new List();
-
- //CREATE 4 TEST WIDGETS
- //two inclusive and two not inclusive
-
- //first inclusive widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.notes = "aardvark";
- w.roles = 0;
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- InclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //second inclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- InclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //first exclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.notes = "zebra";
- w.active = false;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //second exclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.active = false;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetRunNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetRunNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //active bool test filter
- dynamic DataFilterActive = new JObject();
- DataFilterActive.fld = "notes";
- DataFilterActive.op = Util.OpEquality;
- DataFilterActive.value = "aardvark";
- dfilter.Add(DataFilterActive);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least two records
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(1);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (InclusiveWidgetIdList.Contains(o["id"].Value()))
- InclusiveMatchCount++;
- if (ExclusiveWidgetIdList.Contains(o["id"].Value()))
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().Be(InclusiveWidgetIdList.Count);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- foreach (long l in InclusiveWidgetIdList)
- {
- a = await Util.DeleteAsync("Widget/" + l.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- foreach (long l in ExclusiveWidgetIdList)
- {
- a = await Util.DeleteAsync("Widget/" + l.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
-
-
- ///
- /// Specifically test a string with an apostrophe in it (for inclusive)
- ///
- [Fact]
- public async void TextApostropheOpEqualityFilterWorks()
- {
-
- var TestName = "TextApostropheOpEqualityFilterWorks";
- var WidgetRunNameStart = Util.Uniquify(TestName);
-
- List InclusiveWidgetIdList = new List();
- List ExclusiveWidgetIdList = new List();
-
- //CREATE 4 TEST WIDGETS
- //two inclusive and two not inclusive
-
- //first inclusive widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.notes = "O'Flaherty's pub";
- w.roles = 0;
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- InclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //second inclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- InclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //first exclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.notes = "Outback steak house";
- w.active = false;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //second exclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.active = false;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetRunNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetRunNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //active bool test filter
- dynamic DataFilterActive = new JObject();
- DataFilterActive.fld = "notes";
- DataFilterActive.op = Util.OpEquality;
- DataFilterActive.value = "O'Flaherty's pub";
- dfilter.Add(DataFilterActive);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least two records
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(1);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (InclusiveWidgetIdList.Contains(o["id"].Value()))
- InclusiveMatchCount++;
- if (ExclusiveWidgetIdList.Contains(o["id"].Value()))
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().Be(InclusiveWidgetIdList.Count);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- foreach (long l in InclusiveWidgetIdList)
- {
- a = await Util.DeleteAsync("Widget/" + l.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- foreach (long l in ExclusiveWidgetIdList)
- {
- a = await Util.DeleteAsync("Widget/" + l.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- ///
- /// specifically test a string with an ampersand character in it for inclusive (finding it)
- ///
- [Fact]
- public async void TextAmpersandOpEqualityFilterWorks()
- {
-
- var TestName = "TextAmpersandOpEqualityFilterWorks";
- var WidgetRunNameStart = Util.Uniquify(TestName);
-
- List InclusiveWidgetIdList = new List();
- List ExclusiveWidgetIdList = new List();
-
- //CREATE 4 TEST WIDGETS
- //two inclusive and two not inclusive
-
- //first inclusive widget
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.notes = "Bill & Ted's excellent adventure";
- w.roles = 0;
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- InclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //second inclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- InclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //first exclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.notes = "Strange things are afoot at the Circle-K";
- w.active = false;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //second exclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.active = false;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetRunNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetRunNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //active bool test filter
- dynamic DataFilterActive = new JObject();
- DataFilterActive.fld = "notes";
- DataFilterActive.op = Util.OpEquality;
- DataFilterActive.value = "Bill & Ted's excellent adventure";
- dfilter.Add(DataFilterActive);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least two records
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(1);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (InclusiveWidgetIdList.Contains(o["id"].Value()))
- InclusiveMatchCount++;
- if (ExclusiveWidgetIdList.Contains(o["id"].Value()))
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().Be(InclusiveWidgetIdList.Count);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- foreach (long l in InclusiveWidgetIdList)
- {
- a = await Util.DeleteAsync("Widget/" + l.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- foreach (long l in ExclusiveWidgetIdList)
- {
- a = await Util.DeleteAsync("Widget/" + l.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- ///
- /// specifically test a non english unicode string
- ///
- [Fact]
- public async void TextUnicodeOpEqualityFilterWorks()
- {
-
- var TestName = "TextUnicodeOpEqualityFilterWorks";
- var WidgetRunNameStart = Util.Uniquify(TestName);
-
- List InclusiveWidgetIdList = new List();
- List ExclusiveWidgetIdList = new List();
-
- //CREATE 4 TEST WIDGETS
- //two inclusive and two not inclusive
-
- //first inclusive widget
- var InclusiveTestString = "Ādam Iñtërnâtiônà ližætiøn";
- dynamic w = new JObject();
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.notes = InclusiveTestString;
- w.roles = 0;
-
- ApiResponse a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- InclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //second inclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- InclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //first exclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.notes = "Adam Internationalization";
- w.active = false;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
- //second exclusive widget
- w.name = Util.Uniquify(WidgetRunNameStart);
- w.active = false;
-
- a = await Util.PostAsync("Widget", await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
- Util.ValidateDataReturnResponseOk(a);
- ExclusiveWidgetIdList.Add(a.ObjectResponse["data"]["id"].Value());
-
-
- //CREATE FILTER
- dynamic d = new JObject();
- d.name = Util.Uniquify(WidgetRunNameStart);
- // d.ownerId = 1L;
- d["public"] = true;
- d.listKey = "widget";
-
- dynamic dfilter = new JArray();
-
- //name starts with filter to constrict to widgets that this test block created only
- dynamic DataFilterNameStart = new JObject();
- DataFilterNameStart.fld = "name";
- DataFilterNameStart.op = Util.OpStartsWith;
- DataFilterNameStart.value = WidgetRunNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //active bool test filter
- dynamic DataFilterActive = new JObject();
- DataFilterActive.fld = "notes";
- DataFilterActive.op = Util.OpEquality;
- DataFilterActive.value = InclusiveTestString;
- dfilter.Add(DataFilterActive);
-
- 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 DataFilterId = a.ObjectResponse["data"]["id"].Value();
-
- //NOW FETCH WIDGET LIST WITH FILTER
- a = await Util.GetAsync($"Widget/listwidgets?Offset=0&Limit=999&DataFilterId={DataFilterId.ToString()}", await Util.GetTokenAsync("manager", "l3tm3in"));
- Util.ValidateDataReturnResponseOk(a);
- Util.ValidateHTTPStatusCode(a, 200);
-
- //assert contains at least two records
- ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(1);
- var v = ((JArray)a.ObjectResponse["data"]);
- List IDInResultList = new List();
- int InclusiveMatchCount = 0;
- int ExclusiveMatchCount = 0;
- foreach (JObject o in v)
- {
- if (InclusiveWidgetIdList.Contains(o["id"].Value()))
- InclusiveMatchCount++;
- if (ExclusiveWidgetIdList.Contains(o["id"].Value()))
- ExclusiveMatchCount++;
- }
-
- InclusiveMatchCount.Should().Be(InclusiveWidgetIdList.Count);
- ExclusiveMatchCount.Should().Be(0);
-
- //DELETE WIDGETS
- foreach (long l in InclusiveWidgetIdList)
- {
- a = await Util.DeleteAsync("Widget/" + l.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- foreach (long l in ExclusiveWidgetIdList)
- {
- a = await Util.DeleteAsync("Widget/" + l.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
- //DELETE DATAFILTER
- a = await Util.DeleteAsync("DataFilter/" + DataFilterId.ToString(), await Util.GetTokenAsync("BizAdminFull"));
- Util.ValidateHTTPStatusCode(a, 204);
- }
-
-
- ///
- ///
- ///
- [Fact]
- public async void TextOpGreaterThanFilterWorks()
- {
-
- var TestName = "TextOpGreaterThanFilterWorks";
- var WidgetRunNameStart = Util.Uniquify(TestName);
-
- List InclusiveWidgetIdList = new List();
- List ExclusiveWidgetIdList = new List