csharpc-sharpdotnetxamlavaloniauicross-platformcross-platform-xamlavaloniaguimulti-platformuser-interfacedotnetcore
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
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);
|
|
}
|
|
}
|
|
}
|
|
|