Files
LehrerApp/LehrerApp.TemplateDesigner.Tests/OverlayEditorTests.cs
T

74 lines
2.6 KiB
C#

using Avalonia;
using LehrerApp.TemplateDesigner;
using Xunit;
namespace LehrerApp.TemplateDesigner.Tests;
public sealed class OverlayEditorTests
{
[Fact]
public void Koordinatenabbildung_BeruecksichtigtLetterboxUndIstUmkehrbar()
{
var displayedPage = OverlayCoordinateMapper.PageRect(new Size(1000, 1000), 210, 297);
var dslRect = new Rect(20, 30, 80, 45);
var controlRect = OverlayCoordinateMapper.ToControl(dslRect, displayedPage, 210, 297);
var mappedTopLeft = OverlayCoordinateMapper.ToDsl(controlRect.TopLeft, displayedPage, 210, 297);
var mappedBottomRight = OverlayCoordinateMapper.ToDsl(controlRect.BottomRight, displayedPage, 210, 297);
Assert.Equal(1000, displayedPage.Height, 6);
Assert.True(displayedPage.X > 140);
Assert.Equal(dslRect.X, mappedTopLeft.X, 6);
Assert.Equal(dslRect.Y, mappedTopLeft.Y, 6);
Assert.Equal(dslRect.Right, mappedBottomRight.X, 6);
Assert.Equal(dslRect.Bottom, mappedBottomRight.Y, 6);
}
[Fact]
public void Messbereich_WirdInElementformularUebernommen()
{
var viewModel = new DesignerViewModel();
viewModel.ApplyMeasurement(new(12.5, 34.25, 80, 22.5, true));
Assert.Equal("12.5", viewModel.NewX);
Assert.Equal("34.25", viewModel.NewY);
Assert.Equal("80", viewModel.NewWidth);
Assert.Equal("22.5", viewModel.NewHeight);
}
[Fact]
public void TextVerschieben_ErhaeltInhaltUndAttribute()
{
var viewModel = new DesignerViewModel
{ LayoutSource = "PAGE 210 297 mm\nTEXT 20 30 \"Hallo Welt\" size=10 bold=true" };
viewModel.ApplyElementGeometry(new(2, "TEXT", 25.5, 40, 70, 5));
Assert.Contains("TEXT 25.5 40 \"Hallo Welt\" size=10 bold=true", viewModel.LayoutSource);
}
[Fact]
public void SkaliertesBildResize_RechnetEffektivenRahmenZurueckUndErhaeltScale()
{
var viewModel = new DesignerViewModel
{ LayoutSource = "PAGE 210 297 mm\nIMG logo.png 10 15 30 12 scale=50%" };
viewModel.ApplyElementGeometry(new(2, "IMG", 20, 25, 30, 12));
Assert.Contains("IMG logo.png 20 25 60 24 scale=50%", viewModel.LayoutSource);
}
[Fact]
public void DslSeitengroesse_SteuertOverlayAuchBeiAbweichendemManifestformular()
{
var viewModel = new DesignerViewModel { PageWidth = 210, PageHeight = 297 };
viewModel.LayoutSource = "PAGE 200 200 pt";
Assert.Equal(200, viewModel.OverlayPageWidth);
Assert.Equal(200, viewModel.OverlayPageHeight);
Assert.Equal("pt", viewModel.OverlayPageUnit);
}
}