This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
using LehrerApp.TemplateDesigner;
|
||||
using Xunit;
|
||||
|
||||
namespace LehrerApp.TemplateDesigner.Tests;
|
||||
|
||||
public sealed class AssetManagementTests
|
||||
{
|
||||
private static readonly byte[] OnePixelPng = Convert.FromBase64String(
|
||||
"iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNk+A8AAQUBAScY42YAAAAASUVORK5CYII=");
|
||||
|
||||
[Fact]
|
||||
public void Import_ZeigtMetadatenUndBenenntKollisionenUm()
|
||||
{
|
||||
var viewModel = new DesignerViewModel();
|
||||
|
||||
var first = viewModel.ImportAsset("mein logo.png", OnePixelPng);
|
||||
var second = viewModel.ImportAsset("mein logo.png", OnePixelPng);
|
||||
|
||||
Assert.Equal("mein-logo.png", first.Name);
|
||||
Assert.Equal("mein-logo-2.png", second.Name);
|
||||
Assert.Equal("1 × 1 px", first.Dimensions);
|
||||
Assert.Equal(2, viewModel.AssetItems.Count);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AlsImageEinfuegen_VerwendetKoordinatenUndAktualisiertReferenzzaehler()
|
||||
{
|
||||
var viewModel = new DesignerViewModel
|
||||
{ NewX = "15", NewY = "18", NewWidth = "32", NewHeight = "14" };
|
||||
viewModel.ImportAsset("logo.png", OnePixelPng);
|
||||
|
||||
viewModel.InsertSelectedAssetAsImage();
|
||||
|
||||
Assert.Contains("IMG logo.png 15 18 32 14 scale=100%", viewModel.LayoutSource);
|
||||
Assert.Equal(1, viewModel.SelectedAsset!.UsageCount);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void AlsImageEinfuegen_SchreibtProzentualeSkalierung()
|
||||
{
|
||||
var viewModel = new DesignerViewModel { NewImageScale = "37,5" };
|
||||
viewModel.ImportAsset("logo.png", OnePixelPng);
|
||||
|
||||
viewModel.InsertSelectedAssetAsImage();
|
||||
|
||||
Assert.Contains("scale=37.5%", viewModel.LayoutSource);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Entfernen_LoeschtAssetUndAlleLayoutReferenzen()
|
||||
{
|
||||
var viewModel = new DesignerViewModel();
|
||||
viewModel.ImportAsset("logo.png", OnePixelPng);
|
||||
viewModel.InsertSelectedAssetAsImage();
|
||||
|
||||
viewModel.RemoveSelectedAsset();
|
||||
|
||||
Assert.Empty(viewModel.AssetItems);
|
||||
Assert.Empty(viewModel.Assets);
|
||||
Assert.DoesNotContain("IMG logo.png", viewModel.LayoutSource);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void Ersetzen_BehältDateinamenUndLayoutReferenzen()
|
||||
{
|
||||
var viewModel = new DesignerViewModel();
|
||||
viewModel.ImportAsset("logo.png", OnePixelPng);
|
||||
viewModel.InsertSelectedAssetAsImage();
|
||||
|
||||
viewModel.ReplaceSelectedAsset(OnePixelPng);
|
||||
|
||||
Assert.Equal("logo.png", Assert.Single(viewModel.AssetItems).Name);
|
||||
Assert.Contains("IMG logo.png", viewModel.LayoutSource);
|
||||
Assert.Equal(1, viewModel.SelectedAsset!.UsageCount);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user