initial commit
This commit is contained in:
53
tests/TraceCad.Tests/SerializationTests.cs
Normal file
53
tests/TraceCad.Tests/SerializationTests.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using TraceCad.Core.Geometry;
|
||||
using TraceCad.Core.Model;
|
||||
using TraceCad.Core.Serialization;
|
||||
using Xunit;
|
||||
|
||||
namespace TraceCad.Tests;
|
||||
|
||||
public sealed class SerializationTests
|
||||
{
|
||||
[Fact]
|
||||
public void SketchDocumentRoundTripsEntitiesAndLayers()
|
||||
{
|
||||
var document = SketchDocument.CreateDefault();
|
||||
var lineId = Guid.NewGuid();
|
||||
var circleId = Guid.NewGuid();
|
||||
var arcId = Guid.NewGuid();
|
||||
|
||||
document.AddEntity(new LineEntity(lineId, Layer.Cut.Name, new Point2(10, 20), new Point2(40, 50)));
|
||||
document.AddEntity(new CircleEntity(circleId, Layer.Cut.Name, new Point2(15, 15), 8));
|
||||
document.AddEntity(new ArcEntity(arcId, Layer.Cut.Name, new Point2(0, 0), 12, 0, 90, false));
|
||||
|
||||
var json = SketchDocumentSerializer.Serialize(document);
|
||||
var reloaded = SketchDocumentSerializer.Deserialize(json);
|
||||
|
||||
Assert.Equal("mm", reloaded.Units);
|
||||
Assert.Equal(document.Layers.Count, reloaded.Layers.Count);
|
||||
Assert.Contains(reloaded.Entities, entity => entity.Id == lineId);
|
||||
Assert.Contains(reloaded.Entities, entity => entity.Id == circleId);
|
||||
Assert.Contains(reloaded.Entities, entity => entity.Id == arcId);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void SketchDocumentRoundTripsReferenceImage()
|
||||
{
|
||||
var document = SketchDocument.CreateDefault();
|
||||
document.Reference = new ReferenceImage(
|
||||
"reference.png",
|
||||
0.42,
|
||||
Locked: false,
|
||||
new ReferenceTransform(12.5, 20.0, 0.25, 0.25, 8.0));
|
||||
|
||||
var json = SketchDocumentSerializer.Serialize(document);
|
||||
var reloaded = SketchDocumentSerializer.Deserialize(json);
|
||||
|
||||
Assert.NotNull(reloaded.Reference);
|
||||
Assert.Equal("reference.png", reloaded.Reference.ImagePath);
|
||||
Assert.Equal(0.42, reloaded.Reference.Opacity, 9);
|
||||
Assert.False(reloaded.Reference.Locked);
|
||||
Assert.Equal(12.5, reloaded.Reference.Transform.OriginX, 9);
|
||||
Assert.Equal(0.25, reloaded.Reference.Transform.ScaleX, 9);
|
||||
Assert.Equal(8.0, reloaded.Reference.Transform.RotationDeg, 9);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user