[NUI] Add xaml and xamlbing testcases
[platform/core/csapi/tizenfx.git] / test / Tizen.NUI.Tests / Tizen.NUI.Devel.Tests / testcase / public / Xaml / MarkupExtensions / TSTypeExtension.cs
1 using NUnit.Framework;
2 using System;
3 using Tizen.NUI.Xaml;
4
5 namespace Tizen.NUI.Devel.Tests
6 {
7     using tlog = Tizen.Log;
8
9     [TestFixture]
10     [Description("public/xaml/MarkupExtensions/TypeExtension")]
11     public class PublicTypeExtensionTest
12     {
13         private const string tag = "NUITEST";
14         private TypeExtension tExtension;
15
16         internal class IServiceProviderImpl : IServiceProvider
17         {
18             public object GetService(Type serviceType) { return null; }
19         }
20
21         internal class IXamlTypeResolverImpl : IXamlTypeResolver
22         {
23             Type IXamlTypeResolver.Resolve(string qualifiedTypeName, IServiceProvider serviceProvider)
24             {
25                 return typeof(string);
26             }
27
28             bool IXamlTypeResolver.TryResolve(string qualifiedTypeName, out Type type)
29             {
30                 type = typeof(string);
31                 return true;
32             }
33         }
34
35         internal class IServiceProviderImpl2 : IServiceProvider
36         {
37             public object GetService(Type serviceType) { return new IXamlTypeResolverImpl(); }
38         }
39
40         [SetUp]
41         public void Init()
42         {
43             tlog.Info(tag, "Init() is called!");
44             tExtension = new TypeExtension();
45         }
46
47         [TearDown]
48         public void Destroy()
49         {
50             tExtension = null;
51             tlog.Info(tag, "Destroy() is called!");
52         }
53
54         [Test]
55         [Category("P1")]
56         [Description("TypeExtension TypeName")]
57         [Property("SPEC", "Tizen.NUI.Xaml.TypeExtension.TypeName A")]
58         [Property("SPEC_URL", "-")]
59         [Property("CRITERIA", "PRW")]
60         public void TypeExtensionTypeName()
61         {
62             tlog.Debug(tag, $"TypeExtensionTypeName START");
63
64             try
65             {
66                 var name = tExtension.TypeName;
67                 tExtension.TypeName = name;
68                 Assert.AreEqual(name, tExtension.TypeName, "Should be equal");
69             }
70             catch (Exception e)
71             {
72                 tlog.Debug(tag, e.Message.ToString());
73                 Assert.Fail("Caught Exception : Failed!");
74             }
75
76             tlog.Debug(tag, $"TypeExtensionTypeName END");
77         }
78
79         [Test]
80         [Category("P2")]
81         [Description("TypeExtension ProvideValue")]
82         [Property("SPEC", "Tizen.NUI.Xaml.TypeExtension.ProvideValue M")]
83         [Property("SPEC_URL", "-")]
84         [Property("CRITERIA", "MR")]
85         public void TypeExtensionProvideValue()
86         {
87             tlog.Debug(tag, $"TypeExtensionProvideValue START");
88
89             tExtension.TypeName = this.GetType().ToString();
90             Assert.Throws<ArgumentException>(() => tExtension.ProvideValue(new IServiceProviderImpl()));
91             tlog.Debug(tag, $"TypeExtensionProvideValue END");
92         }
93
94         [Test]
95         [Category("P2")]
96         [Description("TypeExtension ProvideValue")]
97         [Property("SPEC", "Tizen.NUI.Xaml.TypeExtension.ProvideValue M")]
98         [Property("SPEC_URL", "-")]
99         [Property("CRITERIA", "MR")]
100         public void TypeExtensionProvideValue2()
101         {
102             tlog.Debug(tag, $"TypeExtensionProvideValue2 START");
103             Assert.Throws<InvalidOperationException>(() => tExtension.ProvideValue(null));
104             tlog.Debug(tag, $"TypeExtensionProvideValue2 END");
105         }
106
107         [Test]
108         [Category("P2")]
109         [Description("TypeExtension ProvideValue")]
110         [Property("SPEC", "Tizen.NUI.Xaml.TypeExtension.ProvideValue M")]
111         [Property("SPEC_URL", "-")]
112         [Property("CRITERIA", "MR")]
113         public void TypeExtensionProvideValue3()
114         {
115             tlog.Debug(tag, $"TypeExtensionProvideValue3 START");
116             tExtension.TypeName = this.GetType().ToString();
117             Assert.Throws<ArgumentNullException>(() => tExtension.ProvideValue(null));
118             tlog.Debug(tag, $"TypeExtensionProvideValue3 END");
119         }
120
121         [Test]
122         [Category("P1")]
123         [Description("TypeExtension ProvideValue")]
124         [Property("SPEC", "Tizen.NUI.Xaml.TypeExtension.ProvideValue M")]
125         [Property("SPEC_URL", "-")]
126         [Property("CRITERIA", "MR")]
127         public void TypeExtensionProvideValue4()
128         {
129             tlog.Debug(tag, $"TypeExtensionProvideValue4 START");
130
131             try
132             {
133                 tExtension.TypeName = this.GetType().ToString();
134                 var ret = tExtension.ProvideValue(new IServiceProviderImpl2());
135                 Assert.IsNotNull(ret, "Should not be null");
136             }
137             catch (Exception e)
138             {
139                 tlog.Debug(tag, e.Message.ToString());
140                 Assert.Fail("Caught Exception : Failed!");
141             }
142             tlog.Debug(tag, $"TypeExtensionProvideValue4 END");
143         }
144     }
145 }