This commit is contained in:
98
Tags/TagOps.cs
Normal file
98
Tags/TagOps.cs
Normal 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
|
||||||
Reference in New Issue
Block a user