83 lines
2.6 KiB
C#
83 lines
2.6 KiB
C#
using OpenNest.Data;
|
|
|
|
using Vector = OpenNest.Geometry.Vector;
|
|
|
|
namespace OpenNest.Tests.Data;
|
|
|
|
public class NestRecordFactoryTests
|
|
{
|
|
[Fact]
|
|
public void FromNest_CountsPlatesAndNonCutoffParts()
|
|
{
|
|
var nest = new Nest("Job 42")
|
|
{
|
|
Customer = "Cozy Cat",
|
|
Material = new Material("Aluminum"),
|
|
Thickness = 0.125,
|
|
Status = NestStatus.ToBeCut,
|
|
MadeBy = "AJ",
|
|
Notes = "rush order",
|
|
DateCreated = new DateTime(2026, 1, 1),
|
|
DateLastModified = new DateTime(2026, 2, 2),
|
|
};
|
|
|
|
var plate1 = nest.CreatePlate();
|
|
var drawingA = new Drawing("A");
|
|
var drawingB = new Drawing("B");
|
|
nest.Drawings.Add(drawingA);
|
|
nest.Drawings.Add(drawingB);
|
|
plate1.Parts.Add(new Part(drawingA));
|
|
plate1.Parts.Add(new Part(drawingB));
|
|
|
|
var plate2 = nest.CreatePlate();
|
|
var drawingC = new Drawing("C");
|
|
nest.Drawings.Add(drawingC);
|
|
plate2.Parts.Add(new Part(drawingC));
|
|
var cutoff = new CutOff(new Vector(0, 0), CutOffAxis.Vertical);
|
|
plate2.CutOffs.Add(cutoff);
|
|
plate2.Parts.Add(new Part(cutoff.Drawing));
|
|
|
|
var record = NestRecordFactory.FromNest(nest, Guid.Empty, fileSize: 1024);
|
|
|
|
Assert.Equal(Guid.Empty, record.Id);
|
|
Assert.Equal("Job 42", record.Name);
|
|
Assert.Equal("Cozy Cat", record.Customer);
|
|
Assert.Equal("Aluminum", record.Material);
|
|
Assert.Equal(0.125, record.Thickness);
|
|
Assert.Equal(NestStatus.ToBeCut, record.Status);
|
|
Assert.Equal("AJ", record.MadeBy);
|
|
Assert.Equal("rush order", record.Comments);
|
|
Assert.Equal(new DateTime(2026, 1, 1), record.DateCreated);
|
|
Assert.Equal(new DateTime(2026, 2, 2), record.DateModified);
|
|
Assert.Equal(2, record.PlateCount);
|
|
// 2 real parts on plate1 + 1 real part on plate2; the cutoff part is excluded.
|
|
Assert.Equal(3, record.PartCount);
|
|
Assert.Equal(1024, record.FileSize);
|
|
}
|
|
|
|
[Fact]
|
|
public void FromNest_EmptyNest_ZeroCounts()
|
|
{
|
|
var nest = new Nest("Empty");
|
|
|
|
var record = NestRecordFactory.FromNest(nest, Guid.NewGuid(), fileSize: 0);
|
|
|
|
Assert.Equal(0, record.PlateCount);
|
|
Assert.Equal(0, record.PartCount);
|
|
Assert.Equal("", record.Material);
|
|
Assert.Equal("", record.Comments);
|
|
Assert.Equal("", record.MadeBy);
|
|
}
|
|
|
|
[Fact]
|
|
public void FromNest_PreservesGivenId()
|
|
{
|
|
var id = Guid.NewGuid();
|
|
var nest = new Nest("Keep Id");
|
|
|
|
var record = NestRecordFactory.FromNest(nest, id, fileSize: 5);
|
|
|
|
Assert.Equal(id, record.Id);
|
|
}
|
|
}
|