feat(delmia-notifier): recipe DTOs + JSON source-gen context
This commit is contained in:
@@ -0,0 +1,7 @@
|
|||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace ZB.MOM.WW.ScadaBridge.DelmiaNotifier;
|
||||||
|
|
||||||
|
[JsonSerializable(typeof(RecipeDownload))]
|
||||||
|
[JsonSerializable(typeof(RecipeDownloadResult))]
|
||||||
|
internal partial class NotifierJsonContext : JsonSerializerContext;
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
namespace ZB.MOM.WW.ScadaBridge.DelmiaNotifier;
|
||||||
|
|
||||||
|
internal sealed class RecipeDownload
|
||||||
|
{
|
||||||
|
public string? MachineCode { get; set; }
|
||||||
|
public string? DownloadPath { get; set; }
|
||||||
|
public string? WorkOrderNumber { get; set; }
|
||||||
|
public string? PartNumber { get; set; }
|
||||||
|
public string? JobStepNumber { get; set; }
|
||||||
|
public string? Username { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
namespace ZB.MOM.WW.ScadaBridge.DelmiaNotifier;
|
||||||
|
|
||||||
|
internal sealed class RecipeDownloadResult
|
||||||
|
{
|
||||||
|
public bool Result { get; set; }
|
||||||
|
public string? ResultText { get; set; }
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
using System.Text.Json;
|
||||||
|
using ZB.MOM.WW.ScadaBridge.DelmiaNotifier;
|
||||||
|
|
||||||
|
namespace ZB.MOM.WW.ScadaBridge.DelmiaNotifier.Tests;
|
||||||
|
|
||||||
|
public class JsonContractTests
|
||||||
|
{
|
||||||
|
[Fact]
|
||||||
|
public void RecipeDownload_serializes_pascalcase()
|
||||||
|
{
|
||||||
|
var json = JsonSerializer.Serialize(
|
||||||
|
new RecipeDownload { MachineCode = "Z28061", DownloadPath = @"C:\r.nc",
|
||||||
|
WorkOrderNumber = "W1", PartNumber = "P1", JobStepNumber = "0100", Username = "op" },
|
||||||
|
NotifierJsonContext.Default.RecipeDownload);
|
||||||
|
Assert.Contains("\"MachineCode\":\"Z28061\"", json);
|
||||||
|
Assert.Contains("\"DownloadPath\"", json);
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void RecipeDownloadResult_deserializes_pascalcase()
|
||||||
|
{
|
||||||
|
var r = JsonSerializer.Deserialize("{\"Result\":true,\"ResultText\":\"ok\"}",
|
||||||
|
NotifierJsonContext.Default.RecipeDownloadResult);
|
||||||
|
Assert.True(r!.Result);
|
||||||
|
Assert.Equal("ok", r.ResultText);
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user