4648
This commit is contained in:
@@ -140,13 +140,56 @@ namespace raven_integration
|
|||||||
long WorkOrderItemOutsideServiceToBeUpdatedId = a.ObjectResponse["data"]["id"].Value<long>();
|
long WorkOrderItemOutsideServiceToBeUpdatedId = a.ObjectResponse["data"]["id"].Value<long>();
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////
|
||||||
|
/// STATE
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
//set locking state "Closed", confirm frozen then unlock state for remainder
|
||||||
|
payload = $$"""
|
||||||
|
{"workOrderId":{{WorkOrderId}},"workOrderStatusId":9}
|
||||||
|
""";
|
||||||
|
a = await Util.PostAsync("workorder/states", await Util.GetTokenAsync("BizAdmin"), payload);
|
||||||
|
Util.ValidateDataReturnResponseOk(a);
|
||||||
|
|
||||||
|
|
||||||
|
//confirm update fails
|
||||||
|
a = await Util.GetAsync($"workorder/{WorkOrderId}", await Util.GetTokenAsync("BizAdmin"));
|
||||||
|
Util.ValidateDataReturnResponseOk(a);
|
||||||
|
var o = a.ObjectResponse["data"];
|
||||||
|
((JObject)o).Remove("items");
|
||||||
|
o["notes"] = "thisshouldfail";
|
||||||
|
a = await Util.PutAsync("workorder", await Util.GetTokenAsync("BizAdmin"), o.ToString());
|
||||||
|
Util.ValidateErrorCodeResponse(a,2200,400);
|
||||||
|
// {{
|
||||||
|
// "error": {
|
||||||
|
// "code": "2200",
|
||||||
|
// "details": [
|
||||||
|
// {
|
||||||
|
// "message": "Work order is set to a locked status and can't be changed",
|
||||||
|
// "target": "generalerror",
|
||||||
|
// "error": "2209"
|
||||||
|
// }
|
||||||
|
// ],
|
||||||
|
// "message": "ErrorAPI2200"
|
||||||
|
// }
|
||||||
|
// }}
|
||||||
|
|
||||||
|
//unlocked status "Scheduled"
|
||||||
|
payload = $$"""
|
||||||
|
{"workOrderId":{{WorkOrderId}},"workOrderStatusId":3}
|
||||||
|
""";
|
||||||
|
a = await Util.PostAsync("workorder/states", await Util.GetTokenAsync("BizAdmin"), payload);
|
||||||
|
Util.ValidateDataReturnResponseOk(a);
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////
|
||||||
//UPDATES
|
//UPDATES
|
||||||
//
|
//
|
||||||
|
|
||||||
a = await Util.GetAsync($"workorder/items/labors/{WorkOrderItemLaborToBeUpdatedId}", await Util.GetTokenAsync("BizAdmin"));
|
a = await Util.GetAsync($"workorder/items/labors/{WorkOrderItemLaborToBeUpdatedId}", await Util.GetTokenAsync("BizAdmin"));
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
Util.ValidateDataReturnResponseOk(a);
|
||||||
var o = a.ObjectResponse["data"];
|
o = a.ObjectResponse["data"];
|
||||||
o["serviceDetails"] = "UpdatedLaborNotes";
|
o["serviceDetails"] = "UpdatedLaborNotes";
|
||||||
a = await Util.PutAsync("workorder/items/labors", await Util.GetTokenAsync("BizAdmin"), o.ToString());
|
a = await Util.PutAsync("workorder/items/labors", await Util.GetTokenAsync("BizAdmin"), o.ToString());
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
Util.ValidateDataReturnResponseOk(a);
|
||||||
@@ -295,107 +338,8 @@ namespace raven_integration
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
[Fact]
|
|
||||||
public async Task ConfirmDeleteTransactionWorksAtServer()
|
|
||||||
{
|
|
||||||
ApiResponse a = await Util.GetAsync("build-mode", await Util.GetTokenAsync("BizAdmin"));
|
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
|
||||||
var BuildMode = (string)a.ObjectResponse["data"]["buildMode"];
|
|
||||||
|
|
||||||
if (BuildMode == "DEBUG")//The key phrase that triggers exception during delete only exists in debug builds of server
|
|
||||||
{
|
|
||||||
|
|
||||||
dynamic d = new JObject();
|
|
||||||
d.active = true;
|
|
||||||
d.notes = "WOHEADER";
|
|
||||||
d.wiki = "INTEGRATION_DELETE_TEST_FAIL_BEFORE_COMMIT";//<-- key phrase triggers server exception in Workorder immediately before it would normally commit the whole thing
|
|
||||||
|
|
||||||
a = await Util.PostAsync("workorder", await Util.GetTokenAsync("BizAdmin"), d.ToString());
|
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
|
||||||
long WorkOrderId = a.ObjectResponse["data"]["id"].Value<long>();
|
|
||||||
|
|
||||||
//CREATE WOITEM 1
|
|
||||||
d = new JObject();
|
|
||||||
d.active = true;
|
|
||||||
d.workOrderId = WorkOrderId;
|
|
||||||
a = await Util.PostAsync("workorder/items", await Util.GetTokenAsync("BizAdmin"), d.ToString());
|
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
|
||||||
long WorkOrderItem1Id = a.ObjectResponse["data"]["id"].Value<long>();
|
|
||||||
|
|
||||||
//CREATE WOITEMPART
|
|
||||||
d = new JObject();
|
|
||||||
d.active = true;
|
|
||||||
d.workOrderItemId = WorkOrderItem1Id;
|
|
||||||
a = await Util.PostAsync("workorder/items/parts", await Util.GetTokenAsync("BizAdmin"), d.ToString());
|
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
|
||||||
|
|
||||||
//CREATE TWO WOITEMLABORS
|
|
||||||
//ONE
|
|
||||||
d = new JObject();
|
|
||||||
d.active = true;
|
|
||||||
d.workOrderItemId = WorkOrderItem1Id;
|
|
||||||
a = await Util.PostAsync("workorder/items/labors", await Util.GetTokenAsync("BizAdmin"), d.ToString());
|
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
|
||||||
|
|
||||||
//TWO
|
|
||||||
d = new JObject();
|
|
||||||
d.active = true;
|
|
||||||
d.workOrderItemId = WorkOrderItem1Id;
|
|
||||||
a = await Util.PostAsync("workorder/items/labors", await Util.GetTokenAsync("BizAdmin"), d.ToString());
|
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
|
||||||
|
|
||||||
//CREATE WOITEM-2
|
|
||||||
d = new JObject();
|
|
||||||
d.active = true;
|
|
||||||
d.workOrderId = WorkOrderId;
|
|
||||||
a = await Util.PostAsync("workorder/items", await Util.GetTokenAsync("BizAdmin"), d.ToString());
|
|
||||||
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("workorder/items/parts", await Util.GetTokenAsync("BizAdmin"), d.ToString());
|
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
|
||||||
|
|
||||||
//CREATE WOITEMLABOR(S)-2
|
|
||||||
//ONE-2
|
|
||||||
d = new JObject();
|
|
||||||
d.active = true;
|
|
||||||
d.workOrderItemId = WorkOrderItem2Id;
|
|
||||||
a = await Util.PostAsync("workorder/items/labors", await Util.GetTokenAsync("BizAdmin"), d.ToString());
|
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
|
||||||
|
|
||||||
//TWO-2
|
|
||||||
d = new JObject();
|
|
||||||
d.active = true;
|
|
||||||
d.workOrderItemId = WorkOrderItem2Id;
|
|
||||||
a = await Util.PostAsync("workorder/items/labors", await Util.GetTokenAsync("BizAdmin"), d.ToString());
|
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
|
||||||
|
|
||||||
a = await Util.DeleteAsync("workorder/" + WorkOrderId.ToString(), await Util.GetTokenAsync("BizAdmin"));
|
|
||||||
Util.ValidateErrorCodeResponse(a, 2200, 400);
|
|
||||||
|
|
||||||
//now confirm the workorder is still there and with it's children intact
|
|
||||||
//RETRIEVE WORKORDER AND VALIDATE ENTIRE
|
|
||||||
a = await Util.GetAsync("workorder/" + WorkOrderId.ToString(), await Util.GetTokenAsync("BizAdmin"));
|
|
||||||
Util.ValidateDataReturnResponseOk(a);
|
|
||||||
|
|
||||||
var w = a.ObjectResponse["data"];
|
|
||||||
w["items"].Count().Should().Be(2);
|
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user