diff --git a/WorkOrder/WorkOrderCrud.cs b/WorkOrder/WorkOrderCrud.cs
index 138f766..90d40f7 100644
--- a/WorkOrder/WorkOrderCrud.cs
+++ b/WorkOrder/WorkOrderCrud.cs
@@ -274,38 +274,25 @@ namespace raven_integration
-
- ///
- /// Test all CRUD routes for a WorkOrder
- /// Build up graph, update graph, remove graph bit by bit
- ///
[Fact]
public async void ConfirmDeleteTransactionWorksAtServer()
{
ApiResponse a = await Util.GetAsync("BuildMode");
Util.ValidateDataReturnResponseOk(a);
- var BuildMode = a.ObjectResponse["data"]["buildMode"].Value();
- BuildMode.Should().BeOneOf((new string[] { "DEBUG", "RELEASE" }));
+ var BuildMode = (string)a.ObjectResponse["data"]["buildMode"];
- if (BuildMode == "DEBUG")
+ if (BuildMode == "DEBUG")//The key phrase that triggers exception during delete only exists in debug builds of server
{
- /////////////////////////////////////////////////////////////////////////
- // CREATE
- //
dynamic d = new JObject();
d.active = true;
d.notes = "WOHEADER";
- d.wiki = "INTEGRATION_DELETE_TEST_FAIL_BEFORE_COMMIT";
+ d.wiki = "INTEGRATION_DELETE_TEST_FAIL_BEFORE_COMMIT";//<-- key phrase triggers server exception in Workorder immediately before it would normally commit the whole thing
-
-
- ApiResponse a = await Util.PostAsync("workorders", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString());
+ a = await Util.PostAsync("workorders", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString());
Util.ValidateDataReturnResponseOk(a);
long WorkOrderId = a.ObjectResponse["data"]["id"].Value();
-
-
//CREATE WOITEM 1
d = new JObject();
d.active = true;
@@ -320,7 +307,6 @@ namespace raven_integration
d.workOrderItemId = WorkOrderItem1Id;
a = await Util.PostAsync("workorders/items/parts", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString());
Util.ValidateDataReturnResponseOk(a);
- long PartId = (long)a.ObjectResponse["data"]["id"];
//CREATE TWO WOITEMLABORS
//ONE
@@ -337,11 +323,6 @@ namespace raven_integration
a = await Util.PostAsync("workorders/items/labors", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString());
Util.ValidateDataReturnResponseOk(a);
-
- /////////////////////////////////////////
- // Second woitem
- //
-
//CREATE WOITEM-2
d = new JObject();
d.active = true;
@@ -350,17 +331,13 @@ namespace raven_integration
Util.ValidateDataReturnResponseOk(a);
long WorkOrderItem2Id = (long)a.ObjectResponse["data"]["id"];
-
-
//CREATE WOITEMPART-2
d = new JObject();
d.active = true;
d.workOrderItemId = WorkOrderItem2Id;
a = await Util.PostAsync("workorders/items/parts", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString());
-
Util.ValidateDataReturnResponseOk(a);
-
//CREATE WOITEMLABOR(S)-2
//ONE-2
d = new JObject();
@@ -376,21 +353,24 @@ namespace raven_integration
a = await Util.PostAsync("workorders/items/labors", await Util.GetTokenAsync("manager", "l3tm3in"), d.ToString());
Util.ValidateDataReturnResponseOk(a);
+ a = await Util.DeleteAsync("workorders/" + WorkOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in"));
+ Util.ValidateServerExceptionResponse(a);
- // a = await Util.DeleteAsync("workorders/items/labors/" + Labor1Id.ToString(), await Util.GetTokenAsync("manager", "l3tm3in"));
- // Util.ValidateHTTPStatusCode(a, 204);
- // a = await Util.GetAsync("workorders/items/labors/" + Labor1Id.ToString(), await Util.GetTokenAsync("manager", "l3tm3in"));
- // Util.ValidateHTTPStatusCode(a, 404);
+ //now confirm the workorder is still there and with it's children intact
+ //RETRIEVE WORKORDER AND VALIDATE ENTIRE
+ a = await Util.GetAsync("workorders/" + WorkOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in"));
+ Util.ValidateDataReturnResponseOk(a);
- // a = await Util.DeleteAsync("workorders/items/" + WorkOrderItem2Id.ToString(), await Util.GetTokenAsync("manager", "l3tm3in"));
- // Util.ValidateHTTPStatusCode(a, 204);
- // a = await Util.GetAsync("workorders/items/" + WorkOrderItem2Id.ToString(), await Util.GetTokenAsync("manager", "l3tm3in"));
- // Util.ValidateHTTPStatusCode(a, 404);
+ var w = a.ObjectResponse["data"];
+ w["items"].Count().Should().Be(2);
- // a = await Util.DeleteAsync("workorders/" + WorkOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in"));
- // Util.ValidateHTTPStatusCode(a, 204);
- // a = await Util.GetAsync("workorders/" + WorkOrderId.ToString(), await Util.GetTokenAsync("manager", "l3tm3in"));
- // Util.ValidateHTTPStatusCode(a, 404);
+ var woitem1 = w["items"].FirstOrDefault(z => (long)z["id"] == WorkOrderItem1Id);
+ woitem1["labors"].Count().Should().Be(2);
+ woitem1["parts"].Count().Should().Be(1);
+
+ var woitem2 = w["items"].FirstOrDefault(z => (long)z["id"] == WorkOrderItem2Id);
+ woitem2["labors"].Count().Should().Be(2);
+ woitem2["parts"].Count().Should().Be(1);
}