diff --git a/devdocs/todo.txt b/devdocs/todo.txt
index 3c8f635d..1bf0ab2c 100644
--- a/devdocs/todo.txt
+++ b/devdocs/todo.txt
@@ -1,6 +1,6 @@
# TODO (J.F.C. - Just fucking code it already)
-Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOiIxNTQyNjY5Njc3IiwiZXhwIjoiMTU0NTI2MTY3NyIsImlzcyI6ImF5YW5vdmEuY29tIiwiaWQiOiIxIiwiYXlhbm92YS9yb2xlcyI6IjE2NDI2In0.93IjHRXQA9c8Z0U9qcsS73KcbG3HzYWkRzF3LwCB_rY
+Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOiIxNTQ0NTU5NzAwIiwiZXhwIjoiMTU0NzE1MTcwMCIsImlzcyI6ImF5YW5vdmEuY29tIiwiaWQiOiIxIiwiYXlhbm92YS9yb2xlcyI6IjMyNzY3In0.fMq_8Dvia63rzN_U2zjczPvUNM40OEAeI4VOeV6ulGw
## IMMEDIATE ITEMS
@@ -317,6 +317,10 @@ TODO SERVER
- Client item actually: it should validate the time zone offset when the client software starts and if it's found to be off what was set offer to change it automatically
- This way it works client to client and will handle DST changes almost automatically
+ - Trial route needs in xml comments for route to add the timezone info parameter so it shows in the api explorer as well as the current trial size
+
+
+
- Stage 2 AFTER POSTED TEST ROUND COMPLETED
- Error handling at client (log? display?)
- Notification of some kind (bell / toast)
diff --git a/server/AyaNova/Controllers/TrialController.cs b/server/AyaNova/Controllers/TrialController.cs
index 036c64af..e8cc9906 100644
--- a/server/AyaNova/Controllers/TrialController.cs
+++ b/server/AyaNova/Controllers/TrialController.cs
@@ -49,7 +49,7 @@ namespace AyaNova.Api.Controllers
/// Valid values are "Small", "Medium", "Large", "Huge"
/// Value in hours of local time zone offset from UTC / GMT. This ensures that data is generated relative to the desired time zone
///
- [HttpPost("seed/{size}")]
+ [HttpPost("seed/{size}/{timeZoneOffset}")]
public ActionResult SeedTrialDatabase([FromRoute] string size,[FromRoute] decimal timeZoneOffset )
{
if (!serverState.IsOpen)
diff --git a/server/AyaNova/biz/FilterSpecialTokens.cs b/server/AyaNova/biz/FilterSpecialTokens.cs
index 92c9dd6c..c3f54ece 100644
--- a/server/AyaNova/biz/FilterSpecialTokens.cs
+++ b/server/AyaNova/biz/FilterSpecialTokens.cs
@@ -41,24 +41,16 @@ namespace AyaNova.Biz
//public const string GreaterThanZero = "{[>0]}";
//https://www.klipfolio.com/resources/articles/kpi-timeframe-comparison-metrics
- //Quarters: https://www.investopedia.com/terms/q/quarter.asp
+
//More business time frames
- public const string LastQuarter = "{[lastquarter]}";
+
public const string YearToDate = "{[yeartodate]}";
- public const string QuarterToDate = "{[quartertodate]}";
+
public const string Past90Days = "{[past90days]}";
public const string Past30Days = "{[past30days]}";
public const string Past24Hours = "{[past24hours]}";
- //The standard calendar quarters that make up the year are: January, February, and March (Q1); April, May, and June (Q2); July, August, and September (Q3); and October, November, and December (Q4). A quarter is often shown with its relevant year, as in Q1 2018 or Q1/18 which represents the first quarter of the year 2018.
- public const string Q1ThisYear = "{[q1thisyear]}";
- public const string Q2ThisYear = "{[q2thisyear]}";
- public const string Q3ThisYear = "{[q3thisyear]}";
- public const string Q4ThisYear = "{[q4thisyear]}";
- public const string Q1LastYear = "{[q1lastyear]}";
- public const string Q2LastYear = "{[q2lastyear]}";
- public const string Q3LastYear = "{[q3lastyear]}";
- public const string Q4LastYear = "{[q4lastyear]}";
+
diff --git a/server/AyaNova/biz/FilterSqlCriteriaBuilder.cs b/server/AyaNova/biz/FilterSqlCriteriaBuilder.cs
index 224437b9..5ba16e06 100644
--- a/server/AyaNova/biz/FilterSqlCriteriaBuilder.cs
+++ b/server/AyaNova/biz/FilterSqlCriteriaBuilder.cs
@@ -308,7 +308,7 @@ namespace AyaNova.Biz
// ILogger log = AyaNova.Util.ApplicationLogging.CreateLogger("FilterSqlCriteriaBuilder::DataFilterToColumnCriteria");
log.LogInformation("RelativeToday (adjusted):");
log.LogInformation(RelativeToday.ToString());
- log.LogInformation("RelativeNow (adjusted):");
+ log.LogInformation("RelativeNow (adjusted):");
log.LogInformation(RelativeNow.ToString());
log.LogInformation("Offset used:");
log.LogInformation(u.tz.ToString());
@@ -531,52 +531,7 @@ namespace AyaNova.Biz
//=======================
//NEW ONES FOR RAVEN
- case FilterSpecialToken.LastQuarter:
- //First determine what quarter we are in now, then get the date range for the quarter before that
- switch (RelativeNow.Month)
- {
- //are we in the first quarter?
- case 1:
- case 2:
- case 3:
- //Then we need the dates of the last quarter of last year
- //From zero hour October 1st last year
- dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- //To zero hour January 1 this year
- dtBefore = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- break;
- //are we in the second quarter?
- case 4:
- case 5:
- case 6:
- //Then we need this year first quarter JAN-FEB-MAR
- //From zero hour january 1 this year
- dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- //To zero hour April 1 this year
- dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- break;
- //Are we in the third quarter?
- case 7:
- case 8:
- case 9:
- //Then we need this year Second quarter APR-MAY-JUN
- //From zero hour April 1 this year
- dtAfter = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- //To zero hour July 1 this year
- dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- break;
- default:
- //We're in the fourth quarter
- //Then we need this year Third quarter JUL-AUG-SEP
- //From zero hour July 1 this year
- dtAfter = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- //To zero hour Oct 1 this year
- dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- break;
- }
- BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
- break;
case FilterSpecialToken.YearToDate:
//From zero hour january 1 this year
dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
@@ -584,42 +539,7 @@ namespace AyaNova.Biz
dtBefore = RelativeNow;
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
break;
- case FilterSpecialToken.QuarterToDate:
- switch (RelativeNow.Month)
- {
- //FirstQuarter to date
- case 1:
- case 2:
- case 3:
- //Jan 1st to now
- dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = RelativeNow;
- break;
- //Second Quarter to date
- case 4:
- case 5:
- case 6:
- //April 1st to now
- dtAfter = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = RelativeNow;
- break;
- //Third quarter to date
- case 7:
- case 8:
- case 9:
- //From July 1
- dtAfter = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = RelativeNow;
- break;
- default:
- //Fourth quarter to date
- //From Oct 1 this year
- dtAfter = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = RelativeNow;
- break;
- }
- BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
- break;
+
case FilterSpecialToken.Past90Days:
//From Now minus 90 days
dtAfter = DateTime.UtcNow.AddDays(-90);
@@ -641,46 +561,9 @@ namespace AyaNova.Biz
dtBefore = DateTime.UtcNow;
BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
break;
- case FilterSpecialToken.Q1ThisYear:
- dtAfter = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
- break;
- case FilterSpecialToken.Q2ThisYear:
- dtAfter = new DateTime(RelativeNow.Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
- break;
- case FilterSpecialToken.Q3ThisYear:
- dtAfter = new DateTime(RelativeNow.Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
- break;
- case FilterSpecialToken.Q4ThisYear:
- dtAfter = new DateTime(RelativeNow.Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = new DateTime(RelativeNow.AddYears(1).Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
- break;
- case FilterSpecialToken.Q1LastYear:
- dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 1, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = new DateTime(RelativeNow.AddYears(-1).Year, 4, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
- break;
- case FilterSpecialToken.Q2LastYear:
- dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 4, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = new DateTime(RelativeNow.AddYears(-1).Year, 7, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
- break;
- case FilterSpecialToken.Q3LastYear:
- dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 7, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = new DateTime(RelativeNow.AddYears(-1).Year, 10, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
- break;
- case FilterSpecialToken.Q4LastYear:
- dtAfter = new DateTime(RelativeNow.AddYears(-1).Year, 10, 1, 00, 00, 00).AddSeconds(-1).AddHours(TimeZoneAdjustment); ;
- dtBefore = new DateTime(RelativeNow.Year, 1, 1, 00, 00, 00).AddHours(TimeZoneAdjustment);
- BuildBetweenTwoDatesFragment(sColumn, sb, dtAfter, dtBefore);
- break;
+
+ default:
+ throw new System.ArgumentOutOfRangeException("TOKEN", sOperator, "GridToSqlCriteria invalid filter TOKEN type [" + sValue + "] IN DATE_TIME");
//-----
}
diff --git a/test/raven-integration/DataFilter/DataFilterFilteringLists.cs b/test/raven-integration/DataFilter/DataFilterFilteringLists.cs
index 03aa861c..1a43ac36 100644
--- a/test/raven-integration/DataFilter/DataFilterFilteringLists.cs
+++ b/test/raven-integration/DataFilter/DataFilterFilteringLists.cs
@@ -64,48 +64,14 @@ namespace raven_integration
public const string TokenInTheLastYear = "{[lastcalendaryear]}";
//More business time frames
- public const string TokenLastQuarter = "{[lastquarter]}";
+
public const string TokenYearToDate = "{[yeartodate]}";
- public const string TokenQuarterToDate = "{[quartertodate]}";
+
public const string TokenPast90Days = "{[past90days]}";
public const string TokenPast30Days = "{[past30days]}";
public const string TokenPast24Hours = "{[past24hours]}";
- //The standard calendar quarters that make up the year are: January, February, and March (Q1); April, May, and June (Q2); July, August, and September (Q3); and October, November, and December (Q4). A quarter is often shown with its relevant year, as in Q1 2018 or Q1/18 which represents the first quarter of the year 2018.
- public const string TokenQ1ThisYear = "{[q1thisyear]}";
- public const string TokenQ2ThisYear = "{[q2thisyear]}";
- public const string TokenQ3ThisYear = "{[q3thisyear]}";
- public const string TokenQ4ThisYear = "{[q4thisyear]}";
- public const string TokenQ1LastYear = "{[q1lastyear]}";
- public const string TokenQ2LastYear = "{[q2lastyear]}";
- public const string TokenQ3LastYear = "{[q3lastyear]}";
- public const string TokenQ4LastYear = "{[q4lastyear]}";
-
- private static int CurrentQuarter()
- {
- switch (DateTime.Now.Month)
- {
- //are we in the first quarter?
- case 1:
- case 2:
- case 3:
- return 1;
-
- //are we in the second quarter?
- case 4:
- case 5:
- case 6:
- return 2;
- //Are we in the third quarter?
- case 7:
- case 8:
- case 9:
- return 3;
- default:
- return 4;
-
- }
- }
+
#region DATE REGULAR FILTERS
@@ -2442,1179 +2408,7 @@ namespace raven_integration
#region DATE TOKEN FILTERS
- ///
- ///
- ///
- [Fact]
- public async void DateTokenInTheLastQuarterFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenInTheLastQuarterFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
- var ThisQuarter = CurrentQuarter();
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenLastQuarter;
- switch (ThisQuarter)
- {
- case 1:
- //We want 5 minutes into the start of q4 last year
- InclusiveStartDate = new DateTime(DateTime.UtcNow.AddYears(-1).Year, 10, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = DateTime.UtcNow.ToUniversalTime();
- break;
- case 2:
- //We want 5 minutes into the start of q1 this year
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 1, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = DateTime.UtcNow.ToUniversalTime();
- break;
- case 3:
- //We want 5 minutes into the start of q2 this year
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 4, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = DateTime.UtcNow.ToUniversalTime();
- break;
- default:
- //We want 5 minutes into the start of q3 this year
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 7, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = DateTime.UtcNow.ToUniversalTime();
- break;
- }
- //##################################################################################
-
-
- 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 = OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = 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 DateTokenQuarterToDateFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenQuarterToDateFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
- var ThisQuarter = CurrentQuarter();
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenQuarterToDate;
- switch (ThisQuarter)
- {
- case 1:
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 1, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year, 4, 1, 00, 5, 00).ToUniversalTime();
- break;
- case 2:
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 4, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year, 1, 1, 00, 5, 00).ToUniversalTime();
- break;
- case 3:
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 7, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year, 1, 1, 00, 5, 00).ToUniversalTime();
- break;
- default:
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 10, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year, 7, 1, 00, 5, 00).ToUniversalTime();
- break;
- }
- //##################################################################################
-
-
- 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 = OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = 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 DateTokenQ1ThisYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenQ1ThisYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenQ1ThisYear;
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 1, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year, 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 = OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = 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 DateTokenQ2ThisYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenQ2ThisYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenQ2ThisYear;
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 4, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year, 1, 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 = OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = 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 DateTokenQ3ThisYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenQ3ThisYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenQ3ThisYear;
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 7, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year, 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 = OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = 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 DateTokenQ4ThisYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenQ4ThisYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenQ4ThisYear;
- InclusiveStartDate = new DateTime(DateTime.Now.Year, 10, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year, 7, 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 = OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = 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 DateTokenQ1LastYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenQ1LastYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenQ1LastYear;
- InclusiveStartDate = new DateTime(DateTime.Now.Year - 1, 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 = OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = 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 DateTokenQ2LastYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenQ2LastYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenQ2LastYear;
- InclusiveStartDate = new DateTime(DateTime.Now.Year - 1, 4, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year - 1, 1, 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 = OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = 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 DateTokenQ3LastYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenQ3LastYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenQ3LastYear;
- InclusiveStartDate = new DateTime(DateTime.Now.Year - 1, 7, 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 = OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = 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 DateTokenQ4LastYearFilterWorks()
- {
-
- var WidgetNameStart = "DateTokenQ4LastYearFilterWorks";
-
- long IncludedWidgetId = 0;
- long ExcludedWidgetId = 0;
-
- //BUILD DATES FOR THIS TEST
-
- DateTime InclusiveStartDate;
- DateTime ExclusiveStartDate;
-
- //##################################################################################
- var FilterToken = TokenQ4LastYear;
- InclusiveStartDate = new DateTime(DateTime.Now.Year - 1, 10, 1, 00, 5, 00).ToUniversalTime();
- ExclusiveStartDate = new DateTime(DateTime.Now.Year - 1, 7, 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 = OpStartsWith;
- DataFilterNameStart.value = WidgetNameStart;
- dfilter.Add(DataFilterNameStart);
-
- //## INCLUSIVE FILTER
- dynamic FilterItem = new JObject();
- FilterItem.fld = "startdate";
- FilterItem.op = 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);
- }
+
///
diff --git a/test/raven-integration/util.cs b/test/raven-integration/util.cs
index 1a3a32c7..32ffafd7 100644
--- a/test/raven-integration/util.cs
+++ b/test/raven-integration/util.cs
@@ -12,8 +12,8 @@ namespace raven_integration
{
private static HttpClient client { get; } = new HttpClient();
- private static string API_BASE_URL = "http://localhost:7575/api/v8.0/";
- //private static string API_BASE_URL = "https://test.helloayanova.com/api/v8.0/";
+ // private static string API_BASE_URL = "http://localhost:7575/api/v8.0/";
+ private static string API_BASE_URL = "https://test.helloayanova.com/api/v8.0/";
public static string TEST_DATA_FOLDER = @"..\..\..\testdata\";