Align OMS TrackCenter client with the renamed UpsertSmallBag endpoint. Co-authored-by: Cursor <cursoragent@cursor.com>
40 lines
1.5 KiB
C#
40 lines
1.5 KiB
C#
using Newtonsoft.Json.Linq;
|
|
using Oms.Application.Integrations.SmallBagTrack;
|
|
using Oms.Application.Services.Orders.Batch;
|
|
using Oms.Domain.OrdersAggregate.Consts;
|
|
using Xunit;
|
|
|
|
namespace Oms.Tests;
|
|
|
|
public class OrderBatchTrackUpsertResultBuilderTests
|
|
{
|
|
[Fact]
|
|
public void BuildSuccess_IncludesTrackResponseBody()
|
|
{
|
|
var trackResult = new SmallBagTrackUpsertResult
|
|
{
|
|
Skipped = false,
|
|
Success = true,
|
|
Url = "http://track/ProviderService/Order/UpsertSmallBag",
|
|
RequestJson = "{\"orderNo\":\"IDE001\"}",
|
|
StatusCode = 200,
|
|
ResponseBody = "{\"code\":0,\"data\":{\"id\":1001}}"
|
|
};
|
|
|
|
var json = OrderBatchTrackUpsertResultBuilder.BuildSuccess(trackResult, 9001, "IDE001");
|
|
var obj = JObject.Parse(json);
|
|
|
|
Assert.True(obj.Value<bool>("success"));
|
|
Assert.Equal(OrderBatchActionCodes.TrackUpsertSmallBag, obj.Value<string>("action"));
|
|
Assert.Equal("轨迹订单创建成功", obj.Value<string>("message"));
|
|
Assert.Equal(9001, obj.Value<int>("orderId"));
|
|
Assert.Equal("IDE001", obj.Value<string>("serviceNo"));
|
|
|
|
var trackUpsert = obj["trackUpsert"] as JObject;
|
|
Assert.NotNull(trackUpsert);
|
|
Assert.Equal(200, trackUpsert!.Value<int>("responseStatusCode"));
|
|
Assert.Equal(0, trackUpsert["responseBody"]!.Value<int>("code"));
|
|
Assert.Equal(1001, trackUpsert["responseBody"]!["data"]!.Value<int>("id"));
|
|
}
|
|
}
|