From 8e6ddbd943ffaf5c820b9de9e77dfb0050de031b Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Thu, 6 Dec 2018 17:46:06 +0000 Subject: [PATCH] --- server/AyaNova/util/AySchema.cs | 6 +- test/raven-integration/Tags/TagCrud.cs | 106 ------ test/raven-integration/Tags/TagGroupOps.cs | 138 -------- test/raven-integration/Tags/TagLists.cs | 82 ----- test/raven-integration/Tags/TagMapOps.cs | 375 --------------------- 5 files changed, 3 insertions(+), 704 deletions(-) delete mode 100644 test/raven-integration/Tags/TagCrud.cs delete mode 100644 test/raven-integration/Tags/TagGroupOps.cs delete mode 100644 test/raven-integration/Tags/TagLists.cs delete mode 100644 test/raven-integration/Tags/TagMapOps.cs diff --git a/server/AyaNova/util/AySchema.cs b/server/AyaNova/util/AySchema.cs index 25836550..a169cb08 100644 --- a/server/AyaNova/util/AySchema.cs +++ b/server/AyaNova/util/AySchema.cs @@ -20,10 +20,10 @@ namespace AyaNova.Util /////////// CHANGE THIS ON NEW SCHEMA UPDATE //////////////////// //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::PrepareDatabaseForSeeding WHEN NEW TABLES ADDED!!!! - private const int DESIRED_SCHEMA_LEVEL = 9; + private const int DESIRED_SCHEMA_LEVEL = 8; - internal const long EXPECTED_COLUMN_COUNT = 108; - internal const long EXPECTED_INDEX_COUNT = 25; + internal const long EXPECTED_COLUMN_COUNT = 93; + internal const long EXPECTED_INDEX_COUNT = 20; //!!!!WARNING: BE SURE TO UPDATE THE DbUtil::PrepareDatabaseForSeeding WHEN NEW TABLES ADDED!!!! diff --git a/test/raven-integration/Tags/TagCrud.cs b/test/raven-integration/Tags/TagCrud.cs deleted file mode 100644 index b53ec074..00000000 --- a/test/raven-integration/Tags/TagCrud.cs +++ /dev/null @@ -1,106 +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 TagCrud - { - - /// - /// Test all CRUD routes for a widget - /// - [Fact] - public async void CRUD() - { - /* - { - "name": "TestTag" - } - */ - - //CREATE - dynamic w1 = new JObject(); - w1.name = Util.Uniquify("TeStTaG"); - - - ApiResponse a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), w1.ToString()); - Util.ValidateDataReturnResponseOk(a); - long tagId = a.ObjectResponse["data"]["id"].Value(); - string tagName = a.ObjectResponse["data"]["name"].Value(); - tagName.Should().StartWith("testtag"); - - - //RETRIEVE - /* - { - "data": { - "id": 24, - "created": "2018-03-28T21:07:41.9703503Z", - "concurrencyToken": 9502, - "ownerId": 1, - "name": "یونی‌کُد چیست؟" - } - } - */ - //Get one - a = await Util.GetAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateDataReturnResponseOk(a); - a.ObjectResponse["data"]["name"].Value().Should().StartWith("testtag"); - - //UPDATE - - //PUT - w1.Id = tagId; - w1.name = Util.Uniquify("PutTestTag"); - w1.created = DateTime.UtcNow.ToString("s", System.Globalization.CultureInfo.InvariantCulture); - w1.concurrencyToken = a.ObjectResponse["data"]["concurrencyToken"].Value(); - w1.OwnerId = 1L; - - - ApiResponse PUTTestResponse = await Util.PutAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull"), w1.ToString()); - Util.ValidateHTTPStatusCode(PUTTestResponse, 200); - - //check PUT worked - ApiResponse checkPUTWorked = await Util.GetAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateNoErrorInResponse(checkPUTWorked); - checkPUTWorked.ObjectResponse["data"]["name"].Value().Should().Be(w1.name.ToString().ToLowerInvariant().Replace(" ", "-")); - uint concurrencyToken = PUTTestResponse.ObjectResponse["data"]["concurrencyToken"].Value(); - - //PATCH - var newName = Util.Uniquify("PatchUpdate"); - string patchJson = "[{\"value\": \"" + newName + "\",\"path\": \"/name\",\"op\": \"replace\"}]"; - ApiResponse PATCHTestResponse = await Util.PatchAsync("Tag/" + tagId.ToString() + "/" + concurrencyToken.ToString(), await Util.GetTokenAsync("BizAdminFull"), patchJson); - Util.ValidateHTTPStatusCode(PATCHTestResponse, 200); - - //check PATCH worked - ApiResponse checkPATCHWorked = await Util.GetAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateNoErrorInResponse(checkPATCHWorked); - checkPATCHWorked.ObjectResponse["data"]["name"].Value().Should().Be(newName.ToLowerInvariant().Replace(" ", "-")); - - // //DELETE - ApiResponse DELETETestResponse = await Util.DeleteAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(DELETETestResponse, 204); - } - - - - - - - - - - - - - - - //================================================== - - }//eoc -}//eons diff --git a/test/raven-integration/Tags/TagGroupOps.cs b/test/raven-integration/Tags/TagGroupOps.cs deleted file mode 100644 index d29ddf40..00000000 --- a/test/raven-integration/Tags/TagGroupOps.cs +++ /dev/null @@ -1,138 +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 TagGroupOps - { - - - /// - /// Test TagGroup operations - /// - [Fact] - public async void GroupOpsShouldWork() - { - - //CREATE TAG1 - dynamic D = new JObject(); - D.name = Util.Uniquify("test-tag1-4-tag-group"); - ApiResponse R = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), D.ToString()); - Util.ValidateDataReturnResponseOk(R); - long TestTag1Id = R.ObjectResponse["data"]["id"].Value(); - - - //CREATE TAG2 - D.name = Util.Uniquify("test-tag2-4-tag-group"); - R = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), D.ToString()); - Util.ValidateDataReturnResponseOk(R); - long TestTag2Id = R.ObjectResponse["data"]["id"].Value(); - - - //CREATE TAG-GROUP - D = new JObject(); - D.name = Util.Uniquify("test-tag-group-for-ops"); - - R = await Util.PostAsync("TagGroup", await Util.GetTokenAsync("BizAdminFull"), D.ToString()); - Util.ValidateDataReturnResponseOk(R); - long TestTagGroupId = R.ObjectResponse["data"]["id"].Value(); - - - //ADD TEST TAGS TO GROUP - D = new JObject(); - D.tagId = TestTag1Id; - D.tagGroupId = TestTagGroupId; - R = await Util.PostAsync("TagGroupMap", await Util.GetTokenAsync("BizAdminFull"), D.ToString()); - Util.ValidateDataReturnResponseOk(R); - - D.tagId = TestTag2Id; - D.tagGroupId = TestTagGroupId; - R = await Util.PostAsync("TagGroupMap", await Util.GetTokenAsync("BizAdminFull"), D.ToString()); - Util.ValidateDataReturnResponseOk(R); - - - //GET PICKLIST OF TAGS FOR GROUP - R = await Util.GetAsync("TagGroup/TagsInGroupPickList/" + TestTagGroupId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateDataReturnResponseOk(R); - - //VERIFY CANT DELETE TAG IN GROUP - R = await Util.DeleteAsync("Tag/" + TestTag2Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateErrorCodeResponse(R, 2200, 400); - - - //TAG ITEM WITH GROUP OF TAGS - //CREATE WIDGET - D = new JObject(); - D.name = Util.Uniquify("WIDGET_TAG_GROUP_TAG_TEST"); - D.created = DateTime.Now.ToString(); - D.dollarAmount = 1.11m; - D.active = true; - D.roles = 0; - - R = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), D.ToString()); - Util.ValidateDataReturnResponseOk(R); - long WidgetId = R.ObjectResponse["data"]["id"].Value(); - - - - //CREATE TAGMAP (tag the widget) - /* - { - "tagGroupId": 0, - "tagToObjectId": 0, - "tagToObjectType": 0 - } - */ - D = new JObject(); - D.tagGroupId = TestTagGroupId; - D.tagToObjectId = WidgetId; - D.tagToObjectType = 2;//widget - - - R = await Util.PostAsync("TagGroup/TagObject", await Util.GetTokenAsync("BizAdminFull"), D.ToString()); - Util.ValidateDataReturnResponseOk(R); - ((JArray)R.ObjectResponse["data"]).Count.Should().Be(2); - - - //VALIDATE HAS TAGS FROM GROUP - D = new JObject(); - D.objectId = WidgetId; - D.objectType = 2;//widget - R = await Util.GetAsync("TagMap/TagsOnObject/", await Util.GetTokenAsync("BizAdminFull"), D.ToString()); - Util.ValidateDataReturnResponseOk(R); - Util.ValidateHTTPStatusCode(R, 200); - //there should be 2 of them - ((JArray)R.ObjectResponse["data"]).Count.Should().Be(2); - - - //DELETE TAG-GROUP - R = await Util.DeleteAsync("TagGroup/" + TestTagGroupId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(R, 204); - - //DELETE WIDGET (which will delete tagmaps as well) - R = await Util.DeleteAsync("Widget/" + WidgetId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(R, 204); - - //VERIFY CAN NOW DELETE TAG IN GROUP - R = await Util.DeleteAsync("Tag/" + TestTag2Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(R, 204); - - } - - - - - - - - - - //================================================== - - }//eoc -}//eons diff --git a/test/raven-integration/Tags/TagLists.cs b/test/raven-integration/Tags/TagLists.cs deleted file mode 100644 index db893f22..00000000 --- a/test/raven-integration/Tags/TagLists.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using Xunit; -using Newtonsoft.Json.Linq; -using FluentAssertions; -using System.Collections.Generic; -using System.Threading.Tasks; -using System.Collections.Concurrent; - -namespace raven_integration -{ - - public class TagLists - { - - /// - /// - /// - [Fact] - public async void PickListSearchRouteShouldWorkAsExpected() - { - List createdTagList = new List(); - - //CREATE - dynamic d = new JObject(); - - - d.name = Util.Uniquify("Apple"); - ApiResponse a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - d.name = Util.Uniquify("Applesauce"); - a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - d.name = Util.Uniquify("Apple-Tar-Tar"); - a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - d.name = Util.Uniquify("Apple-Tini"); - a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - d.name = Util.Uniquify("Apple-Pie"); - a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - d.name = Util.Uniquify("AppleJack"); - a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - - //Get all - a = await Util.GetAsync("Tag/picklist?Offset=1&Limit=25&q=ApPlE", await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateDataReturnResponseOk(a); - Util.ValidateHTTPStatusCode(a, 200); - //there should be at least 5 of them - ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterThan(4); - - - //Delete them all here (just a cleanup) - foreach (long lId in createdTagList) - { - a = await Util.DeleteAsync("Tag/" + lId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(a, 204); - } - - - } - - - - - //================================================== - - }//eoc -}//eons diff --git a/test/raven-integration/Tags/TagMapOps.cs b/test/raven-integration/Tags/TagMapOps.cs deleted file mode 100644 index c02c0806..00000000 --- a/test/raven-integration/Tags/TagMapOps.cs +++ /dev/null @@ -1,375 +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 TagMapOps - { - - /// - /// Test tagmap map unmap and etc - /// - [Fact] - public async void MapUnmapShouldWork() - { - /* - { - "name": "TestTag" - } - */ - - //CREATE TAG - dynamic d = new JObject(); - d.name = Util.Uniquify("test-tag-4-widget"); - - - ApiResponse a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - long tagId = a.ObjectResponse["data"]["id"].Value(); - - - //CREATE WIDGET - dynamic w = new JObject(); - w.name = Util.Uniquify("WIDGET_TAG"); - w.created = DateTime.Now.ToString(); - w.dollarAmount = 1.11m; - w.active = true; - w.roles = 0; - - a = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), w.ToString()); - Util.ValidateDataReturnResponseOk(a); - long widgetId = a.ObjectResponse["data"]["id"].Value(); - - //CREATE TAGMAP (tag the widget) - /* - { - "tagId": 0, - "tagToObjectId": 0, - "tagToObjectType": 0 - } - */ - dynamic tm = new JObject(); - tm.tagId = tagId; - tm.tagToObjectId = widgetId; - tm.tagToObjectType = 2;//widget - - - a = await Util.PostAsync("TagMap", await Util.GetTokenAsync("BizAdminFull"), tm.ToString()); - Util.ValidateDataReturnResponseOk(a); - long tagMapId = a.ObjectResponse["data"]["id"].Value(); - - //VERIFY TAGMAP - a = await Util.GetAsync("TagMap/" + tagMapId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateDataReturnResponseOk(a); - a.ObjectResponse["data"]["id"].Value().Should().Be(tagMapId); - - - //ATTEMPT TO DELETE TAG THAT HAS TAGMAP SHOULD FAIL with 2200 / 400 - a = await Util.DeleteAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateViolatesReferentialIntegrityError(a); - - //DELETE TAGMAP - a = await Util.DeleteAsync("TagMap/" + tagMapId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(a, 204); - - //DELETE TAG - a = await Util.DeleteAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(a, 204); - - //DELETE WIDGET - a = await Util.DeleteAsync("Widget/" + widgetId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(a, 204); - } - - - - - /// - /// - /// - [Fact] - public async void TagMapShouldDeleteWhenParentDeletes() - { - /* - { - "name": "TestTag" - } - */ - - //CREATE TAG - dynamic d = new JObject(); - d.name = Util.Uniquify("test-unmap-tag-4-widget"); - - - ApiResponse a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - long tagId = a.ObjectResponse["data"]["id"].Value(); - - - //CREATE WIDGET - dynamic w = new JObject(); - w.name = Util.Uniquify("WIDGET_TAG_AUTO_UNMAP"); - w.created = DateTime.Now.ToString(); - w.dollarAmount = 1.11m; - w.active = true; - w.roles = 0; - - a = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), w.ToString()); - Util.ValidateDataReturnResponseOk(a); - long widgetId = a.ObjectResponse["data"]["id"].Value(); - - //CREATE TAGMAP (tag the widget) - /* - { - "tagId": 0, - "tagToObjectId": 0, - "tagToObjectType": 0 - } - */ - dynamic tm = new JObject(); - tm.tagId = tagId; - tm.tagToObjectId = widgetId; - tm.tagToObjectType = 2;//widget - - - a = await Util.PostAsync("TagMap", await Util.GetTokenAsync("BizAdminFull"), tm.ToString()); - Util.ValidateDataReturnResponseOk(a); - long tagMapId = a.ObjectResponse["data"]["id"].Value(); - - //VERIFY TAGMAP - a = await Util.GetAsync("TagMap/" + tagMapId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateDataReturnResponseOk(a); - a.ObjectResponse["data"]["id"].Value().Should().Be(tagMapId); - - - //DELETE PARENT (WIDGET) - a = await Util.DeleteAsync("Widget/" + widgetId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(a, 204); - - //VERIFY TAGMAP GONE - a = await Util.GetAsync("TagMap/" + tagMapId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateResponseNotFound(a); - - - //////////////////////// - //CLEANUP - - //DELETE TAG - a = await Util.DeleteAsync("Tag/" + tagId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(a, 204); - - } - - - /// - /// - /// - [Fact] - public async void TagMapListForObject() - { - List createdTagList = new List(); - - //CREATE a bunch of tags - dynamic d = new JObject(); - - - d.name = Util.Uniquify("Red"); - ApiResponse a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - d.name = Util.Uniquify("red-green"); - a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - d.name = Util.Uniquify("red-rum"); - a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - d.name = Util.Uniquify("red-dit"); - a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - d.name = Util.Uniquify("red-tailed-hawk"); - a = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), d.ToString()); - Util.ValidateDataReturnResponseOk(a); - createdTagList.Add(a.ObjectResponse["data"]["id"].Value()); - - - //Create a widget - dynamic w = new JObject(); - w.name = Util.Uniquify("WIDGET_4_TAG_LIST_TEST"); - w.created = DateTime.Now.ToString(); - w.dollarAmount = 1.11m; - w.active = true; - w.roles = 0; - - a = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), w.ToString()); - Util.ValidateDataReturnResponseOk(a); - long widgetId = a.ObjectResponse["data"]["id"].Value(); - - - //Tag all the tags to the widget - dynamic tm = new JObject(); - foreach (long tagId in createdTagList) - { - tm.tagId = tagId; - tm.tagToObjectId = widgetId; - tm.tagToObjectType = 2;//widget - - a = await Util.PostAsync("TagMap", await Util.GetTokenAsync("BizAdminFull"), tm.ToString()); - Util.ValidateDataReturnResponseOk(a); - } - - //GET TAGS FOR WIDGET - dynamic tid = new JObject(); - tid.objectId = widgetId; - tid.objectType = 2;//widget - a = await Util.GetAsync("TagMap/TagsOnObject/", await Util.GetTokenAsync("BizAdminFull"), tid.ToString()); - Util.ValidateDataReturnResponseOk(a); - Util.ValidateHTTPStatusCode(a, 200); - //there should be at least 5 of them - ((JArray)a.ObjectResponse["data"]).Count.Should().BeGreaterOrEqualTo(createdTagList.Count); - - //delete widget (which will delete tagmaps as well) - a = await Util.DeleteAsync("Widget/" + widgetId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(a, 204); - - - - //CLEANUP TAGS - foreach (long lId in createdTagList) - { - a = await Util.DeleteAsync("Tag/" + lId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(a, 204); - } - - - } - - - - /// - /// Test tagging a bunch of items then mass untag - /// - [Fact] - public async void UnTagEverythingWorks() - { - /* - { - "name": "TestTag" - } - */ - - //CREATE TAG - dynamic D = new JObject(); - D.name = Util.Uniquify("test-tag-4-untag"); - - - ApiResponse R = await Util.PostAsync("Tag", await Util.GetTokenAsync("BizAdminFull"), D.ToString()); - Util.ValidateDataReturnResponseOk(R); - long TestTagId = R.ObjectResponse["data"]["id"].Value(); - - - //CREATE WIDGET 1 - dynamic D2 = new JObject(); - D2.name = Util.Uniquify("WIDGET_UNTAG_TEST1"); - D2.created = DateTime.Now.ToString(); - D2.dollarAmount = 1.11m; - D2.active = true; - D2.roles = 0; - - R = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), D2.ToString()); - Util.ValidateDataReturnResponseOk(R); - long Widget1Id = R.ObjectResponse["data"]["id"].Value(); - - //CREATE WIDGET 2 - //D2 = new JObject(); - D2.name = Util.Uniquify("WIDGET_UNTAG_TEST2"); - D2.created = DateTime.Now.ToString(); - D2.dollarAmount = 1.11m; - D2.active = true; - D2.roles = 0; - - R = await Util.PostAsync("Widget", await Util.GetTokenAsync("BizAdminFull"), D2.ToString()); - Util.ValidateDataReturnResponseOk(R); - long Widget2Id = R.ObjectResponse["data"]["id"].Value(); - - //TAGMAP to Widget 1 - /* - { - "tagId": 0, - "tagToObjectId": 0, - "tagToObjectType": 0 - } - */ - dynamic D3 = new JObject(); - D3.tagId = TestTagId; - D3.tagToObjectId = Widget1Id; - D3.tagToObjectType = 2;//widget - - - R = await Util.PostAsync("TagMap", await Util.GetTokenAsync("BizAdminFull"), D3.ToString()); - Util.ValidateDataReturnResponseOk(R); - long TagMap1Id = R.ObjectResponse["data"]["id"].Value(); - - //VERIFY TAGMAP - R = await Util.GetAsync("TagMap/" + TagMap1Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateDataReturnResponseOk(R); - R.ObjectResponse["data"]["id"].Value().Should().Be(TagMap1Id); - R.ObjectResponse["data"]["tagToObjectId"].Value().Should().Be(Widget1Id); - - - //TAGMAP to Widget 2 - D3.tagId = TestTagId; - D3.tagToObjectId = Widget2Id; - D3.tagToObjectType = 2;//widget - - - R = await Util.PostAsync("TagMap", await Util.GetTokenAsync("BizAdminFull"), D3.ToString()); - Util.ValidateDataReturnResponseOk(R); - long TagMap2Id = R.ObjectResponse["data"]["id"].Value(); - - //VERIFY TAGMAP - R = await Util.GetAsync("TagMap/" + TagMap2Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateDataReturnResponseOk(R); - R.ObjectResponse["data"]["id"].Value().Should().Be(TagMap2Id); - R.ObjectResponse["data"]["tagToObjectId"].Value().Should().Be(Widget2Id); - - //UNTAG-ALL - R = await Util.PostAsync("Tag/UntagAll/" + TestTagId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(R, 204); - - - //DELETE TAG - //This should now work because untag all freed it up - R = await Util.DeleteAsync("Tag/" + TestTagId.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(R, 204); - - //DELETE WIDGETS - R = await Util.DeleteAsync("Widget/" + Widget1Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(R, 204); - - R = await Util.DeleteAsync("Widget/" + Widget2Id.ToString(), await Util.GetTokenAsync("BizAdminFull")); - Util.ValidateHTTPStatusCode(R, 204); - } - - - - - - - - - //================================================== - - }//eoc -}//eons