A cross-platform UI framework for .NET
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

100 lines
2.6 KiB

// -----------------------------------------------------------------------
// <copyright file="TemplatedControlTests.cs" company="Steven Kirk">
// Copyright 2013 MIT Licence. See licence.md for more information.
// </copyright>
// -----------------------------------------------------------------------
namespace Perspex.Controls.UnitTests
{
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);
}
}
}