From d0f443f6e3c8e0f70f90434de5800dfd2d088de8 Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 25 Feb 2026 15:39:55 -0800 Subject: [PATCH] 4648 --- ServerState/ServerStateTest.cs | 4 +- Tags/TagOps.cs | 103 ++++++++++++--------------------- 2 files changed, 39 insertions(+), 68 deletions(-) diff --git a/ServerState/ServerStateTest.cs b/ServerState/ServerStateTest.cs index 0eec5a7..31ba8a2 100644 --- a/ServerState/ServerStateTest.cs +++ b/ServerState/ServerStateTest.cs @@ -11,8 +11,8 @@ namespace raven_integration /// [Fact] public async Task ServerStateShouldReturnOk() - { - ApiResponse a = await Util.GetAsync("server-state"); + { + ApiResponse a = await Util.GetAsync("server-state", await Util.GetTokenAsync("BizAdmin")); Util.ValidateDataReturnResponseOk(a); } diff --git a/Tags/TagOps.cs b/Tags/TagOps.cs index e0adbc5..49db126 100644 --- a/Tags/TagOps.cs +++ b/Tags/TagOps.cs @@ -1,7 +1,6 @@ using Xunit; using Newtonsoft.Json.Linq; using FluentAssertions; -using System.Collections.Generic; namespace raven_integration @@ -18,55 +17,51 @@ namespace raven_integration { var TestName = "TagListsWork"; - var WidgetRunNameStart = Util.Uniquify(TestName); + var ProjectRunNameStart = Util.Uniquify(TestName); var TagNameStart = Util.Uniquify("crud-tag-test-") + "-";//ensure this run gets it's own unique tags TagNameStart = TagNameStart.Replace(" ", ""); - List InitialTagsList = new List(); - InitialTagsList.Add(TagNameStart + "red"); - InitialTagsList.Add(TagNameStart + "orange"); - InitialTagsList.Add(TagNameStart + "yellow"); - InitialTagsList.Add(TagNameStart + "green"); - InitialTagsList.Add(TagNameStart + "blue"); - InitialTagsList.Add(TagNameStart + "indigo"); - InitialTagsList.Add(TagNameStart + "violet"); + List InitialTagsList = + [ + TagNameStart + "red", + TagNameStart + "orange", + TagNameStart + "yellow", + TagNameStart + "green", + TagNameStart + "blue", + TagNameStart + "indigo", + TagNameStart + "violet", + ]; - List UpdateTagsList = new List(); - //Newly added tags - UpdateTagsList.Add(TagNameStart + "crimson"); - UpdateTagsList.Add(TagNameStart + "amber"); - UpdateTagsList.Add(TagNameStart + "saffron"); - UpdateTagsList.Add(TagNameStart + "emerald"); - UpdateTagsList.Add(TagNameStart + "azure"); - UpdateTagsList.Add(TagNameStart + "cobalt"); - UpdateTagsList.Add(TagNameStart + "magenta"); - - //maintains these tags - UpdateTagsList.Add(TagNameStart + "red"); - UpdateTagsList.Add(TagNameStart + "blue"); + List UpdateTagsList = + [ + //Newly added tags + TagNameStart + "crimson", + TagNameStart + "amber", + TagNameStart + "saffron", + TagNameStart + "emerald", + TagNameStart + "azure", + TagNameStart + "cobalt", + TagNameStart + "magenta", + //maintains these tags + TagNameStart + "red", + TagNameStart + "blue", + ]; //Removes these tags by omission //orange, yellow, green, indigo, violet + var initialTtagsJson = string.Join(", ", InitialTagsList.Select(t => $"\"{t}\"")); + var projectName = Util.Uniquify(ProjectRunNameStart); + var dateStarted = DateTime.Now.ToString("o"); + var payload = $$""" + {"id":0,"concurrency":0,"name":"{{projectName}}","active":true,"notes":"blah","wiki":null,"customFields":"{}","tags":[{{initialTtagsJson}}],"dateStarted":"{{dateStarted}}","dateCompleted":null,"projectOverseerId":null,"accountNumber":null} + """; - dynamic w = new JObject(); - w.name = Util.Uniquify(WidgetRunNameStart); - w.notes = "blah"; - w.customFields = Util.WidgetRequiredCustomFieldsJsonString(); - w.usertype = 1; - //Tags - dynamic InitialTags = new JArray(); - foreach (string s in InitialTagsList) - { - InitialTags.Add(s); - } - w.tags = InitialTags; - - ApiResponse a = await Util.PostAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString()); + ApiResponse a = await Util.PostAsync("project", await Util.GetTokenAsync("superuser", "l3tm3in"), payload); Util.ValidateDataReturnResponseOk(a); - long WidgetId = a.ObjectResponse["data"]["id"].Value(); + long ProjectId = a.ObjectResponse["data"]["id"].Value(); uint Concurrency = a.ObjectResponse["data"]["concurrency"].Value(); - w = a.ObjectResponse["data"]; + dynamic w = a.ObjectResponse["data"]; //validate the repository LIST ROUTE of tags contains the ones above a = await Util.GetAsync($"tag-list/list?query={TagNameStart}", await Util.GetTokenAsync("superuser", "l3tm3in")); @@ -83,10 +78,10 @@ namespace raven_integration { UpdateTags.Add(s); } - //update Widget and put to server + //update Project and put to server w.concurrency = Concurrency; w.tags = UpdateTags; - ApiResponse PUTTestResponse = await Util.PutAsync("widget", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString()); + ApiResponse PUTTestResponse = await Util.PutAsync("project", await Util.GetTokenAsync("superuser", "l3tm3in"), w.ToString()); Util.ValidateHTTPStatusCode(PUTTestResponse, 200); @@ -104,7 +99,7 @@ namespace raven_integration a.ObjectResponse["data"][0]["refCount"].Value().Should().Be(1); //DELETE - ApiResponse DELETETestResponse = await Util.DeleteAsync("widget/" + WidgetId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in")); + ApiResponse DELETETestResponse = await Util.DeleteAsync("project/" + ProjectId.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in")); Util.ValidateHTTPStatusCode(DELETETestResponse, 204); //Verify the tags collection remaining @@ -135,30 +130,6 @@ namespace raven_integration - - // /// - // /// Test bulk tag - // /// - // [Fact] - // public async Task BulkTagDriver() - // { - - // dynamic d = new JArray(); - // d.Add(1); - // d.Add(2); - - - // ApiResponse a = await Util.PostAsync("tag-list/bulk-add/2/my new tag", await Util.GetTokenAsync("superuser", "l3tm3in"), d.ToString()); - // //http://localhost:7575/api/v8/tag-list/bulk-add-any/2/bulk-add-this-tag - // //http://localhost:7575/api/v8/tag-list/bulk-remove/2/happy%20new%20tag - // //http://localhost:7575/api/v8/tag-list/bulk-remove-any/2/red - // //http://localhost:7575/api/v8/tag-list/bulk-replace/2/bulk-add-this-tag?toTag=bulk-update-this-tag - // //http://localhost:7575/api/v8/tag-list/bulk-replace-any/2/bulk-update-this-tag?toTag=bulk-replace-this-tag-any - // ; - // } - - - //================================================== }//eoc