From 6750d54641e3f9de892d80fe84106df18e38776f Mon Sep 17 00:00:00 2001 From: John Cardinal Date: Wed, 25 Feb 2026 16:30:23 -0800 Subject: [PATCH] 4648 --- Translation/Translation.cs | 104 ++++++++----------------------------- 1 file changed, 21 insertions(+), 83 deletions(-) diff --git a/Translation/Translation.cs b/Translation/Translation.cs index 5014c91..61e5581 100644 --- a/Translation/Translation.cs +++ b/Translation/Translation.cs @@ -67,114 +67,52 @@ namespace raven_integration { //DUPLICATE - dynamic d = new JObject(); - d.id = 1; - d.name = Util.Uniquify("INTEGRATION-TEST-LOCALE"); - - ApiResponse a = await Util.PostAsync("translation/Duplicate", await Util.GetTokenAsync("BizAdmin"), d.ToString()); + ApiResponse a = await Util.PostAsync("translation/Duplicate/1", await Util.GetTokenAsync("BizAdmin")); Util.ValidateDataReturnResponseOk(a); Util.ValidateHTTPStatusCode(a, 201); + //verify the object returned is as expected - a.ObjectResponse["data"]["name"].Value().Should().Be(d.name.ToString()); + a.ObjectResponse["data"]["name"].Value().Should().Contain("en-");//based on english - 1 a.ObjectResponse["data"]["stock"].Value().Should().Be(false); a.ObjectResponse["data"]["id"].Value().Should().BeGreaterThan(4); a.ObjectResponse["data"]["concurrency"].Value().Should().BeGreaterThan(0); ((JArray)a.ObjectResponse["data"]["translationItems"]).Count.Should().BeGreaterThan(0); - long NewId = a.ObjectResponse["data"]["id"].Value(); + dynamic d2 = a.ObjectResponse["data"]; //UPDATE - //Update translation name - - dynamic d2 = new JObject(); - d2.id = NewId; - d2.newText = Util.Uniquify("INTEGRATION-TEST-LOCALE NAME UPDATE"); - d2.concurrency = a.ObjectResponse["data"]["concurrency"].Value(); - ApiResponse PUTTestResponse = await Util.PutAsync("translation/UpdateTranslationName", await Util.GetTokenAsync("BizAdmin"), d2.ToString()); + //Update translation name + d2.name = Util.Uniquify("INTEGRATION-TEST-LOCALE NAME UPDATE"); + ApiResponse PUTTestResponse = await Util.PutAsync("translation", await Util.GetTokenAsync("BizAdmin"), d2.ToString()); Util.ValidateHTTPStatusCode(PUTTestResponse, 200); - ApiResponse checkPUTWorked = await Util.GetAsync("translation/" + NewId.ToString(), await Util.GetTokenAsync("BizAdmin")); Util.ValidateNoErrorInResponse(checkPUTWorked); - checkPUTWorked.ObjectResponse["data"]["name"].Value().Should().Be(d2.newText.ToString()); - //uint concurrency = PUTTestResponse.ObjectResponse["data"]["concurrency"].Value(); - - - //Update translation key - var FirstTranslationKey = ((JArray)a.ObjectResponse["data"]["translationItems"])[0]; - long UpdatedTranslationKeyId = FirstTranslationKey["id"].Value(); - d2.id = UpdatedTranslationKeyId; - d2.newText = Util.Uniquify("INTEGRATION-TEST-LOCALEITEM DISPLAY UPDATE"); - d2.concurrency = FirstTranslationKey["concurrency"].Value(); + checkPUTWorked.ObjectResponse["data"]["name"].Value().Should().Be(d2.name.ToString()); + //Update translation key + d2 = a.ObjectResponse["data"]; + var FirstTranslationKey = ((JArray)d2["translationItems"])[0]; + var FirstTranslationKeyNewText=Util.Uniquify("INTEGRATION-TEST-LOCALEITEM DISPLAY UPDATE"); + FirstTranslationKey["display"] = FirstTranslationKeyNewText; string UpdatedTranslationKey = FirstTranslationKey["key"].Value(); - - PUTTestResponse = await Util.PutAsync("translation/UpdateTranslationItemDisplayText", await Util.GetTokenAsync("BizAdmin"), d2.ToString()); + PUTTestResponse = await Util.PutAsync("translation", await Util.GetTokenAsync("BizAdmin"), d2.ToString()); Util.ValidateHTTPStatusCode(PUTTestResponse, 200); - //create user that is set to new translation so can use getSubset - var Login = Util.Uniquify("LOGIN"); - var Password = Util.Uniquify("PASSWORD"); - dynamic DUSER = new JObject(); - DUSER.name = Util.Uniquify("TranslationUpdateSubsetTestUser"); - - DUSER.active = true; - DUSER.login = Login; - DUSER.password = Password; - DUSER.roles = 0;//norole (any role can get a subset of translation keys) - // DUSER.translationId = NewId; - DUSER.userType = 2;// not service type user - //Required by form custom rules - DUSER.notes = "notes"; - DUSER.customFields = Util.UserRequiredCustomFieldsJsonString(); - a = await Util.PostAsync("User", await Util.GetTokenAsync("superuser", "l3tm3in"), DUSER.ToString()); - Util.ValidateDataReturnResponseOk(a); - long DUSERID = a.ObjectResponse["data"]["id"].Value(); - - - //RETRIEVE companion USEROPTIONS object - ApiResponse R = await Util.GetAsync("user-option/" + DUSERID.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in")); - Util.ValidateDataReturnResponseOk(R); - //ensure the default value is set - R.ObjectResponse["data"]["uiColor"].Value().Should().Be("#000000"); - uint concurrency = R.ObjectResponse["data"]["concurrency"].Value(); - - //UPDATE - - //PUT - dynamic D2 = new JObject(); - D2.translationId = NewId; - - D2.concurrency = concurrency; - PUTTestResponse = await Util.PutAsync("user-option/" + DUSERID.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in"), D2.ToString()); - Util.ValidateHTTPStatusCode(PUTTestResponse, 200); - - //VALIDATE - R = await Util.GetAsync("user-option/" + DUSERID.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in")); - Util.ValidateDataReturnResponseOk(R); - - - List keys = new List(); keys.AddRange(new string[] { UpdatedTranslationKey }); - dynamic d3 = new JObject(); + dynamic d = new JObject(); + d = JToken.FromObject(keys); - d3 = JToken.FromObject(keys); - - checkPUTWorked = await Util.PostAsync("translation/subset", await Util.GetTokenAsync(Login, Password), d3.ToString()); + checkPUTWorked = await Util.PostAsync($"translation/subset/{NewId}", await Util.GetTokenAsync("BizAdmin"), d.ToString()); Util.ValidateDataReturnResponseOk(checkPUTWorked); Util.ValidateHTTPStatusCode(checkPUTWorked, 200); ((JArray)checkPUTWorked.ObjectResponse["data"]).Count.Should().Be(1); var FirstTranslationKeyUpdated = ((JArray)checkPUTWorked.ObjectResponse["data"])[0]; - - FirstTranslationKeyUpdated["value"].Value().Should().Be(d2.newText.ToString()); - - //DELETE TEMPORARY USER SO CAN DELETE LOCALE - a = await Util.DeleteAsync("User/" + DUSERID.ToString(), await Util.GetTokenAsync("superuser", "l3tm3in")); - Util.ValidateHTTPStatusCode(a, 204); - - //DELETE TEMP LOCALE - a = await Util.DeleteAsync("translation/" + NewId.ToString(), await Util.GetTokenAsync("BizAdmin")); + FirstTranslationKeyUpdated["value"].Value().Should().Be(FirstTranslationKeyNewText); + + //DELETE TEMP TRANSLATION + a = await Util.DeleteAsync($"translation/{NewId}", await Util.GetTokenAsync("BizAdmin")); Util.ValidateHTTPStatusCode(a, 204);