public void ArrangeAppliesTemplate() { ConcreteControl c = (ConcreteControl)XamlReader.Load(@" <x:ConcreteControl xmlns=""http://schemas.microsoft.com/client/2007"" xmlns:x=""clr-namespace:MoonTest.System.Windows.Controls;assembly=moon-unit""> <x:ConcreteControl.Template> <ControlTemplate> <Grid /> </ControlTemplate> </x:ConcreteControl.Template> </x:ConcreteControl>"); c.CallBaseArrangeOverride = false; c.CallBaseMeasureOverride = false; Assert.IsFalse(c.TemplateAppled, "#1"); c.Methods.Clear(); c.Arrange(new Rect(0, 0, 1000, 1000)); Assert.IsTrue(c.TemplateAppled, "#2"); Assert.AreEqual(3, c.Methods.Count, "#3"); Assert.AreEqual(0, c.Methods.IndexOf("Template"), "No template"); Assert.AreEqual(1, c.Methods.IndexOf("Measure"), "No measure"); Assert.AreEqual(2, c.Methods.IndexOf("Arrange"), "No arrange"); }