This commit is contained in:
2018-12-19 18:16:29 +00:00
parent ced65df01b
commit ab7ab36415

98
Tags/TagOps.cs Normal file
View File

@@ -0,0 +1,98 @@
using Xunit;
using Newtonsoft.Json.Linq;
using FluentAssertions;
using System.Collections.Generic;
namespace raven_integration
{
public class TagOps
{
/// <summary>
///
/// </summary>
[Fact]
public async void TagCRUDProcessingWorks()
{
var TestName = "TagCRUDProcessingWorks";
var WidgetRunNameStart = Util.Uniquify(TestName);
var TagNameStart = Util.Uniquify("crud-tag-test-") + "-";//ensure this run gets it's own unique tags
List<string> InitialTagsList = new List<string>();
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<string> UpdateTagsList = new List<string>();
//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");
//Removes these tags by omission
//orange, yellow, green, indigo, violet
dynamic w = new JObject();
w.name = Util.Uniquify(WidgetRunNameStart);
//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("manager", "l3tm3in"), w.ToString());
Util.ValidateDataReturnResponseOk(a);
long WidgetId = a.ObjectResponse["data"]["id"].Value<long>();
//HERE TODO: validate the repository LIST ROUTE of tags contains the ones above and that their refcount is 1
//UPDATE Tags
dynamic UpdateTags = new JArray();
//Adds these tags
foreach (string s in UpdateTagsList)
{
UpdateTags.Add(s);
}
//update Widget and put to server
w.concurrencyToken = a.ObjectResponse["data"]["concurrencyToken"].Value<uint>();
w.tags = UpdateTags;
ApiResponse PUTTestResponse = await Util.PutAsync("Widget/" + WidgetId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in"), w.ToString());
Util.ValidateHTTPStatusCode(PUTTestResponse, 200);
//Verify the tags collection remaining
//HERE TODO: validate the repository LIST ROUTE of tags contains the ones above and that their refcount is 1
}
//TODO: Deliberate concurrency violation tests here
//==================================================
}//eoc
}//eons