using Azimuth; using Blacklight.Core.Drawables; using System; using UnitTestSharp; namespace Blacklight.Core.UnitTests { public class EntityTests : TestFixture { static Vector TranslationOf(Entity entity) where T : IDrawable => entity.modelToWorld.TransformPoint(Vector.Zero); public class CtorTests : TestFixture { public void KeepsTheDrawableAndTransform() { var entity = new Entity( new Sprite { Additiveness = 1 }, AffineMatrix.BuildFromTranslation(new Vector(3, 0))); CheckEqual((Scalar)1, entity.drawable.Additiveness); CheckEqual(new Vector(3, 0), TranslationOf(entity)); } public void ANullReferenceDrawableThrows() { CheckThrow(); new Entity(null, AffineMatrix.Identity); } public void Rebuild_KeepsTheDrawableButTakesTheNewTransform() { var original = new Entity( new Sprite { Additiveness = 1 }, AffineMatrix.BuildFromTranslation(new Vector(3, 0))); var rebuilt = new Entity(original, AffineMatrix.BuildFromTranslation(new Vector(9, 0))); CheckEqual((Scalar)1, rebuilt.drawable.Additiveness); CheckEqual(new Vector(9, 0), TranslationOf(rebuilt)); } } } }