3 changed files with 102 additions and 1 deletions
@ -0,0 +1,100 @@ |
|||||
|
// -----------------------------------------------------------------------
|
||||
|
// <copyright file="TemplatedControlTests.cs" company="Steven Kirk">
|
||||
|
// Copyright 2013 MIT Licence. See licence.md for more information.
|
||||
|
// </copyright>
|
||||
|
// -----------------------------------------------------------------------
|
||||
|
|
||||
|
namespace Perspex.UnitTests.Controls |
||||
|
{ |
||||
|
using System; |
||||
|
using System.Collections.Generic; |
||||
|
using System.Linq; |
||||
|
using System.Text; |
||||
|
using System.Threading.Tasks; |
||||
|
using Microsoft.VisualStudio.TestTools.UnitTesting; |
||||
|
using Perspex.Controls; |
||||
|
|
||||
|
[TestClass] |
||||
|
public class TemplatedControlTests |
||||
|
{ |
||||
|
[TestMethod] |
||||
|
public void Template_Doesnt_Get_Executed_On_Set() |
||||
|
{ |
||||
|
bool executed = false; |
||||
|
|
||||
|
var template = new ControlTemplate(_ => |
||||
|
{ |
||||
|
executed = true; |
||||
|
return new Control(); |
||||
|
}); |
||||
|
|
||||
|
var target = new TemplatedControl |
||||
|
{ |
||||
|
Template = template, |
||||
|
}; |
||||
|
|
||||
|
Assert.IsFalse(executed); |
||||
|
} |
||||
|
|
||||
|
[TestMethod] |
||||
|
public void Template_Gets_Executed_On_Reading_Visual_Children() |
||||
|
{ |
||||
|
bool executed = false; |
||||
|
|
||||
|
var template = new ControlTemplate(_ => |
||||
|
{ |
||||
|
executed = true; |
||||
|
return new Control(); |
||||
|
}); |
||||
|
|
||||
|
var target = new TemplatedControl |
||||
|
{ |
||||
|
Template = template, |
||||
|
}; |
||||
|
|
||||
|
var children = ((IVisual)target).VisualChildren.ToArray(); |
||||
|
|
||||
|
Assert.IsTrue(executed); |
||||
|
} |
||||
|
|
||||
|
[TestMethod] |
||||
|
public void Template_Result_Becomes_Visual_Child() |
||||
|
{ |
||||
|
Control templateResult = new Control(); |
||||
|
|
||||
|
var template = new ControlTemplate(_ => |
||||
|
{ |
||||
|
return templateResult; |
||||
|
}); |
||||
|
|
||||
|
var target = new TemplatedControl |
||||
|
{ |
||||
|
Template = template, |
||||
|
}; |
||||
|
|
||||
|
var children = ((IVisual)target).VisualChildren.ToArray(); |
||||
|
|
||||
|
CollectionAssert.AreEqual(new[] { templateResult }, children); |
||||
|
} |
||||
|
|
||||
|
[TestMethod] |
||||
|
public void TemplatedParent_Is_Set_On_Generated_Template() |
||||
|
{ |
||||
|
Control templateResult = new Control(); |
||||
|
|
||||
|
var template = new ControlTemplate(_ => |
||||
|
{ |
||||
|
return templateResult; |
||||
|
}); |
||||
|
|
||||
|
var target = new TemplatedControl |
||||
|
{ |
||||
|
Template = template, |
||||
|
}; |
||||
|
|
||||
|
var children = ((IVisual)target).VisualChildren.ToArray(); |
||||
|
|
||||
|
Assert.AreEqual(target, templateResult.TemplatedParent); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue