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