public void Test_NoMatch() { // Arrange. var selector = new TypeMapDataTemplateSelector(new List <DataTemplate> { new DataTemplate { DataType = typeof(int) }, new DataTemplate { DataType = typeof(string) } }); // Act. var actual = selector.SelectTemplate(new object(), null); // Assert. Assert.Null(actual); }
public void Test_ExactMatch() { // Arrange. var template = new DataTemplate { DataType = typeof(string) }; var selector = new TypeMapDataTemplateSelector(new List <DataTemplate> { new DataTemplate { DataType = typeof(int) }, template }); // Act. var actual = selector.SelectTemplate("test", null); // Assert. Assert.Equal(template, actual); }
public void Test_NonExactMatch_OrderMatters() { // Arrange. var broadTemplate = new DataTemplate { DataType = typeof(IComparable <string>) }; var moreBroadTemplate = new DataTemplate { DataType = typeof(IConvertible) }; var selector = new TypeMapDataTemplateSelector(new List <DataTemplate> { broadTemplate, moreBroadTemplate }); // Act. var actual = selector.SelectTemplate("test", null); // Assert. Assert.Equal(broadTemplate, actual); }