555fdcfa536546aa1542eca25c4e56a7c4b743f0
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Tests / Tizen.NUI.Devel.Tests / testcase / public / Template / TSDataTemplateExtensions.cs
1 using global::System;
2 using NUnit.Framework;
3 using NUnit.Framework.TUnit;
4 using Tizen.NUI.Components;
5 using Tizen.NUI.BaseComponents;
6 using System.Collections.Generic;
7 using System.Threading.Tasks;
8 using Tizen.NUI.Binding;
9
10 namespace Tizen.NUI.Devel.Tests
11 {
12     using tlog = Tizen.Log;
13
14     [TestFixture]
15     [Description("public/Template/DataTemplateExtensions")]
16     public class PublicDataTemplateExtensionsTest
17     {
18         private const string tag = "NUITEST";
19
20         internal class MyDataTemplateSelector : DataTemplateSelector
21         {
22             public MyDataTemplateSelector() : base()
23             { }
24
25             protected override DataTemplate OnSelectTemplate(object item, BindableObject container)
26             {
27                 if (item.GetType().ToString() == "System.String")
28                 {
29                     return new MyDataTemplateSelector();
30                 }
31                 else
32                 {
33                     Func<object> LoadTemplate = () => new View();
34
35                     return new DataTemplate(LoadTemplate);
36
37                 }
38             }
39         }
40
41         [SetUp]
42         public void Init()
43         {
44             tlog.Info(tag, "Init() is called!");
45         }
46
47         [TearDown]
48         public void Destroy()
49         {
50             tlog.Info(tag, "Destroy() is called!");
51         }
52
53         [Test]
54         [Category("P1")]
55         [Description("DataTemplateExtensions CreateContent.")]
56         [Property("SPEC", "Tizen.NUI.DataTemplateExtensions.CreateContent M")]
57         [Property("SPEC_URL", "-")]
58         [Property("CRITERIA", "MR")]
59         [Property("AUTHOR", "guowei.wang@samsung.com")]
60         public void DataTemplateExtensionsCreateContent()
61         {
62             tlog.Debug(tag, $"DataTemplateExtensionsCreateContent START");
63
64             var testingTarget = new MyDataTemplateSelector();
65
66             try
67             {
68                 DataTemplateExtensions.CreateContent(testingTarget, View.Property.STATE, new View());
69             }
70             catch (Exception e)
71             {
72                 tlog.Debug(tag, e.Message.ToString());
73                 Assert.Fail("CreateContent Fail!");
74             }
75
76             tlog.Debug(tag, $"DataTemplateExtensionsCreateContent END (OK)");
77         }
78
79         [Test]
80         [Category("P2")]
81         [Description("DataTemplateExtensions CreateContent. With null selector.")]
82         [Property("SPEC", "Tizen.NUI.DataTemplateExtensions.CreateContent M")]
83         [Property("SPEC_URL", "-")]
84         [Property("CRITERIA", "MR")]
85         [Property("AUTHOR", "guowei.wang@samsung.com")]
86         public void DataTemplateExtensionsCreateContentWithNullSelector()
87         {
88             tlog.Debug(tag, $"DataTemplateExtensionsCreateContentWithNullSelector START");
89
90             Func<object> LoadTemplate = () => new View();
91             var testingTarget = new DataTemplate(LoadTemplate);
92
93             try
94             {
95                 DataTemplateExtensions.CreateContent(testingTarget, View.Property.STATE, new View());
96             }
97             catch (Exception e)
98             {
99                 tlog.Debug(tag, e.Message.ToString());
100                 Assert.Fail("CreateContent Fail!");
101             }
102
103             tlog.Debug(tag, $"DataTemplateExtensionsCreateContentWithNullSelector END (OK)");
104         }
105
106         [Test]
107         [Category("P2")]
108         [Description("DataTemplateExtensions CreateContent. With LoadTemplate.")]
109         [Property("SPEC", "Tizen.NUI.DataTemplateExtensions.CreateContent M")]
110         [Property("SPEC_URL", "-")]
111         [Property("CRITERIA", "MR")]
112         [Property("AUTHOR", "guowei.wang@samsung.com")]
113         public void DataTemplateExtensionsCreateContentWithNullLoadTemplate()
114         {
115             tlog.Debug(tag, $"DataTemplateExtensionsCreateContentWithNullLoadTemplate START");
116
117             var testingTarget = new DataTemplate();
118
119             try
120             {
121                 DataTemplateExtensions.CreateContent(testingTarget, "Color", new View());
122             }
123             catch (NotSupportedException e)
124             {
125                 tlog.Debug(tag, e.Message.ToString());
126                 tlog.Debug(tag, $"DataTemplateExtensionsCreateContentWithNullLoadTemplate END (OK)");
127                 Assert.Pass("Caught NotSupportedException: Pass!");
128             }
129
130             tlog.Debug(tag, $"DataTemplateExtensionsCreateContentWithNullLoadTemplate END (OK)");
131         }
132     }
133 }