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