admin/src/Oms.Tests/OrderBatchTrackUpsertResultBuilderTests.cs
zzh 17fe638be6 fix: point SmallBag track upsert to ProviderService/Order/UpsertSmallBag
Align OMS TrackCenter client with the renamed UpsertSmallBag endpoint.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-31 21:13:03 +08:00

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"));
}
}