Browse Source

Reimplement commented-out tests.

pull/1184/head
Steven Kirk 9 years ago
parent
commit
685a509c5c
  1. 2
      tests/Avalonia.UnitTests/TestRoot.cs
  2. 178
      tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests.cs

2
tests/Avalonia.UnitTests/TestRoot.cs

@ -49,8 +49,6 @@ namespace Avalonia.UnitTests
public ILayoutManager LayoutManager => AvaloniaLocator.Current.GetService<ILayoutManager>(); public ILayoutManager LayoutManager => AvaloniaLocator.Current.GetService<ILayoutManager>();
public IRenderTarget RenderTarget => null;
public IRenderer Renderer { get; set; } public IRenderer Renderer { get; set; }
public IAccessKeyHandler AccessKeyHandler => null; public IAccessKeyHandler AccessKeyHandler => null;

178
tests/Avalonia.Visuals.UnitTests/Rendering/DeferredRendererTests.cs

@ -129,102 +129,98 @@ namespace Avalonia.Visuals.UnitTests.Rendering
[Fact] [Fact]
public void Frame_Should_Create_Layer_For_Root() public void Frame_Should_Create_Layer_For_Root()
{ {
throw new NotImplementedException(); var loop = new Mock<IRenderLoop>();
//var loop = new Mock<IRenderLoop>(); var root = new TestRoot();
//var root = new TestRoot(); var rootLayer = new Mock<IRenderTargetBitmapImpl>();
//var rootLayer = new Mock<IRenderTargetBitmapImpl>(); var dispatcher = new ImmediateDispatcher();
//var dispatcher = new ImmediateDispatcher();
var sceneBuilder = new Mock<ISceneBuilder>();
//var sceneBuilder = new Mock<ISceneBuilder>(); sceneBuilder.Setup(x => x.UpdateAll(It.IsAny<Scene>()))
//sceneBuilder.Setup(x => x.UpdateAll(It.IsAny<Scene>())) .Callback<Scene>(scene =>
// .Callback<Scene>(scene => {
// { scene.Size = root.ClientSize;
// scene.Size = root.ClientSize; scene.Layers.Add(root).Dirty.Add(new Rect(root.ClientSize));
// scene.Layers.Add(root).Dirty.Add(new Rect(root.ClientSize)); });
// });
var renderInterface = new Mock<IPlatformRenderInterface>();
//var layers = new Mock<IRenderLayerFactory>();
//layers.Setup(x => x.CreateLayer(root, root.ClientSize, 96, 96)).Returns(CreateLayer()); var target = new DeferredRenderer(
root,
//var renderInterface = new Mock<IPlatformRenderInterface>(); loop.Object,
sceneBuilder: sceneBuilder.Object,
//var target = new DeferredRenderer( //layerFactory: layers.Object,
// root, dispatcher: dispatcher);
// loop.Object,
// sceneBuilder: sceneBuilder.Object, target.Start();
// layerFactory: layers.Object, RunFrame(loop);
// dispatcher: dispatcher);
var context = Mock.Get(root.CreateRenderTarget().CreateDrawingContext(null));
//target.Start(); context.Verify(x => x.CreateLayer(root.ClientSize));
//RunFrame(loop);
//layers.Verify(x => x.CreateLayer(root, root.ClientSize, 96, 96));
} }
[Fact] [Fact]
public void Should_Create_And_Delete_Layers_For_Transparent_Controls() public void Should_Create_And_Delete_Layers_For_Transparent_Controls()
{ {
throw new NotImplementedException(); Border border;
//Border border; var root = new TestRoot
//var root = new TestRoot {
//{ Width = 100,
// Width = 100, Height = 100,
// Height = 100, Child = new Border
// Child = new Border {
// { Background = Brushes.Red,
// Background = Brushes.Red, Child = border = new Border
// Child = border = new Border {
// { Background = Brushes.Green,
// Background = Brushes.Green, }
// } }
// } };
//};
root.Measure(Size.Infinity);
//root.Measure(Size.Infinity); root.Arrange(new Rect(root.DesiredSize));
//root.Arrange(new Rect(root.DesiredSize));
var rootLayer = CreateLayer();
//var loop = new Mock<IRenderLoop>(); var borderLayer = CreateLayer();
//var layerFactory = new MockRenderLayerFactory(new Dictionary<IVisual, IRenderTargetBitmapImpl> var renderTargetContext = Mock.Get(root.CreateRenderTarget().CreateDrawingContext(null));
//{ renderTargetContext.SetupSequence(x => x.CreateLayer(It.IsAny<Size>()))
// { root, CreateLayer() }, .Returns(rootLayer)
// { border, CreateLayer() }, .Returns(borderLayer);
//});
var loop = new Mock<IRenderLoop>();
//var target = new DeferredRenderer( var target = new DeferredRenderer(
// root, root,
// loop.Object, loop.Object,
// layerFactory: layerFactory, dispatcher: new ImmediateDispatcher());
// dispatcher: new ImmediateDispatcher()); root.Renderer = target;
//root.Renderer = target;
target.Start();
//target.Start(); RunFrame(loop);
//RunFrame(loop);
var rootContext = Mock.Get(rootLayer.CreateDrawingContext(null));
//var rootContext = layerFactory.GetMockDrawingContext(root); var borderContext = Mock.Get(borderLayer.CreateDrawingContext(null));
//var borderContext = layerFactory.GetMockDrawingContext(border);
rootContext.Verify(x => x.FillRectangle(Brushes.Red, new Rect(0, 0, 100, 100), 0), Times.Once);
//rootContext.Verify(x => x.FillRectangle(Brushes.Red, new Rect(0, 0, 100, 100), 0), Times.Once); rootContext.Verify(x => x.FillRectangle(Brushes.Green, new Rect(0, 0, 100, 100), 0), Times.Once);
//rootContext.Verify(x => x.FillRectangle(Brushes.Green, new Rect(0, 0, 100, 100), 0), Times.Once); borderContext.Verify(x => x.FillRectangle(It.IsAny<IBrush>(), It.IsAny<Rect>(), It.IsAny<float>()), Times.Never);
//borderContext.Verify(x => x.FillRectangle(It.IsAny<IBrush>(), It.IsAny<Rect>(), It.IsAny<float>()), Times.Never);
rootContext.ResetCalls();
//rootContext.ResetCalls(); borderContext.ResetCalls();
//borderContext.ResetCalls(); border.Opacity = 0.5;
//border.Opacity = 0.5; RunFrame(loop);
//RunFrame(loop);
rootContext.Verify(x => x.FillRectangle(Brushes.Red, new Rect(0, 0, 100, 100), 0), Times.Once);
//rootContext.Verify(x => x.FillRectangle(Brushes.Red, new Rect(0, 0, 100, 100), 0), Times.Once); rootContext.Verify(x => x.FillRectangle(Brushes.Green, new Rect(0, 0, 100, 100), 0), Times.Never);
//rootContext.Verify(x => x.FillRectangle(Brushes.Green, new Rect(0, 0, 100, 100), 0), Times.Never); borderContext.Verify(x => x.FillRectangle(Brushes.Green, new Rect(0, 0, 100, 100), 0), Times.Once);
//borderContext.Verify(x => x.FillRectangle(Brushes.Green, new Rect(0, 0, 100, 100), 0), Times.Once);
rootContext.ResetCalls();
//rootContext.ResetCalls(); borderContext.ResetCalls();
//borderContext.ResetCalls(); border.Opacity = 1;
//border.Opacity = 1; RunFrame(loop);
//RunFrame(loop);
Mock.Get(borderLayer).Verify(x => x.Dispose());
//layerFactory.GetMockBitmap(border).Verify(x => x.Dispose()); rootContext.Verify(x => x.FillRectangle(Brushes.Red, new Rect(0, 0, 100, 100), 0), Times.Once);
//rootContext.Verify(x => x.FillRectangle(Brushes.Red, new Rect(0, 0, 100, 100), 0), Times.Once); rootContext.Verify(x => x.FillRectangle(Brushes.Green, new Rect(0, 0, 100, 100), 0), Times.Once);
//rootContext.Verify(x => x.FillRectangle(Brushes.Green, new Rect(0, 0, 100, 100), 0), Times.Once); borderContext.Verify(x => x.FillRectangle(It.IsAny<IBrush>(), It.IsAny<Rect>(), It.IsAny<float>()), Times.Never);
//borderContext.Verify(x => x.FillRectangle(It.IsAny<IBrush>(), It.IsAny<Rect>(), It.IsAny<float>()), Times.Never);
} }
private void IgnoreFirstFrame(Mock<IRenderLoop> loop, Mock<ISceneBuilder> sceneBuilder) private void IgnoreFirstFrame(Mock<IRenderLoop> loop, Mock<ISceneBuilder> sceneBuilder)

Loading…
Cancel
Save