1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- using Drawie.Backend.Core.Bridge;
- using Drawie.Backend.Core.ColorsImpl.Paintables;
- using Drawie.Backend.Core.Surfaces.ImageData;
- using Drawie.Skia;
- using DrawiEngine;
- using PixiEditor.ChangeableDocument.Changeables.Interfaces;
- using PixiEditor.ChangeableDocument.Changes.NodeGraph;
- using PixiEditor.Models.Serialization;
- using PixiEditor.Models.Serialization.Factories;
- using PixiEditor.Models.Serialization.Factories.Paintables;
- using PixiEditor.Parser.Skia.Encoders;
- namespace PixiEditor.Tests;
- public class SerializationTests : PixiEditorTest
- {
- [Fact]
- public void TestThatAllPaintablesHaveFactories()
- {
- var allDrawiePaintableTypes = typeof(Paintable).Assembly.GetTypes()
- .Where(x => x.IsAssignableTo(typeof(Paintable))
- && x is { IsAbstract: false, IsInterface: false }).ToList();
- var pixiEditorAssemblyPaintables = typeof(SerializationFactory).Assembly.GetTypes()
- .Where(x => x.IsAssignableTo(typeof(Paintable))
- && x is { IsAbstract: false, IsInterface: false }).ToList();
- var allPaintables = allDrawiePaintableTypes.Concat(pixiEditorAssemblyPaintables).Distinct().ToList();
- var allFoundFactories = typeof(SerializationFactory).Assembly.GetTypes()
- .Where(x => x.IsAssignableTo(typeof(IPaintableSerializationFactory))
- && x is { IsAbstract: false, IsInterface: false }).ToList();
- List<SerializationFactory> factories = new();
- QoiEncoder encoder = new QoiEncoder();
- SerializationConfig config = new SerializationConfig(encoder, ColorSpace.CreateSrgbLinear());
- foreach (var factoryType in allFoundFactories)
- {
- var factory = (SerializationFactory)Activator.CreateInstance(factoryType);
- factories.Add(factory);
- }
- foreach (var type in allPaintables)
- {
- var factory = factories.FirstOrDefault(x => x.OriginalType == type);
- Assert.NotNull(factory);
- }
- }
- }
|