[Applications.ComponentBased.ComponentManager][TCSACR-261][Add new testcases] 41/213641/10
authorHwankyu Jhun <h.jhun@samsung.com>
Mon, 9 Sep 2019 11:19:17 +0000 (20:19 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Wed, 18 Sep 2019 07:22:41 +0000 (16:22 +0900)
Change-Id: I743a2f14d583084968b981e46e66a5854f8708c8
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
19 files changed:
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample.sln [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ComponentBasedSample.cs [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ComponentBasedSample.csproj [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/FrameComponentSample.cs [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ServiceComponentSample.cs [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ServiceComponentSample2.cs [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/ComponentBasedSample.png [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/ComponentBasedSample2.png [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/FrameComponentSample.png [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/tizen-manifest.xml [new file with mode: 0755]
tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/org.tizen.example.ComponentBasedSample-1.0.0.tpk [new file with mode: 0755]
tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/Program.cs [new file with mode: 0755]
tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/Tizen.Applications.ComponentBased.ComponentManager.Tests.csproj [new file with mode: 0755]
tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/Tizen.Applications.ComponentBased.ComponentManager.Tests.sln [new file with mode: 0755]
tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/shared/res/Tizen.Applications.ComponentBased.ComponentManager.Tests.png [new file with mode: 0755]
tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/testcase/TSComponentInfocs.cs [new file with mode: 0755]
tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/testcase/TSComponentManager.cs [new file with mode: 0755]
tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/testcase/TSComponentRunningContext.cs [new file with mode: 0755]
tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/tizen-manifest.xml [new file with mode: 0755]

diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample.sln b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample.sln
new file mode 100755 (executable)
index 0000000..399b4bf
--- /dev/null
@@ -0,0 +1,25 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 15
+VisualStudioVersion = 15.0.28307.271
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ComponentBasedSample", "ComponentBasedSample\ComponentBasedSample.csproj", "{C955F741-9309-4E92-9A44-1BD7A5F6E150}"
+EndProject
+Global
+        GlobalSection(SolutionConfigurationPlatforms) = preSolution
+                Debug|Any CPU = Debug|Any CPU
+                Release|Any CPU = Release|Any CPU
+        EndGlobalSection
+        GlobalSection(ProjectConfigurationPlatforms) = postSolution
+                {C955F741-9309-4E92-9A44-1BD7A5F6E150}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+                {C955F741-9309-4E92-9A44-1BD7A5F6E150}.Debug|Any CPU.Build.0 = Debug|Any CPU
+                {C955F741-9309-4E92-9A44-1BD7A5F6E150}.Release|Any CPU.ActiveCfg = Release|Any CPU
+                {C955F741-9309-4E92-9A44-1BD7A5F6E150}.Release|Any CPU.Build.0 = Release|Any CPU
+        EndGlobalSection
+        GlobalSection(SolutionProperties) = preSolution
+                HideSolutionNode = FALSE
+        EndGlobalSection
+        GlobalSection(ExtensibilityGlobals) = postSolution
+                SolutionGuid = {069F0BE7-F1B6-407F-939A-80C2C93BA0A5}
+        EndGlobalSection
+EndGlobal
diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ComponentBasedSample.cs b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ComponentBasedSample.cs
new file mode 100755 (executable)
index 0000000..3af0c15
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ *  Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using System;
+using Tizen;
+using Tizen.Applications.ComponentBased.Default;
+using System.Collections.Generic;
+
+namespace ComponentBasedSample
+{
+    class Program
+    {
+        private static string LogTag = "ComponentBasedSample";
+
+        static void Main(string[] args)
+        {
+            Log.Info(LogTag, "Main()");
+            Dictionary<Type, string> _typeInfo = new Dictionary<Type, string>();
+            _typeInfo.Add(typeof(FrameComponentSample), "org.example.frame-component");
+            _typeInfo.Add(typeof(ServiceComponentSample), "org.example.service-component");
+            _typeInfo.Add(typeof(ServiceComponentSample2), "org.example.bg-service-component");
+            var app = new EFLComponentBasedApplication(_typeInfo);
+            app.Run(args);
+        }
+    }
+}
diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ComponentBasedSample.csproj b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ComponentBasedSample.csproj
new file mode 100755 (executable)
index 0000000..9d0ae08
--- /dev/null
@@ -0,0 +1,28 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>netcoreapp2.0</TargetFramework>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugType>portable</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>None</DebugType>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Folder Include="lib\" />
+    <Folder Include="res\" />
+  </ItemGroup>
+
+  <ItemGroup>
+    <PackageReference Include="Tizen.NET" Version="6.0.0.14916">
+      <ExcludeAssets>Runtime</ExcludeAssets>
+    </PackageReference>
+    <PackageReference Include="Tizen.NET.Sdk" Version="1.0.1" />
+  </ItemGroup>
+
+</Project>
+
diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/FrameComponentSample.cs b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/FrameComponentSample.cs
new file mode 100755 (executable)
index 0000000..330c966
--- /dev/null
@@ -0,0 +1,72 @@
+/*
+ *  Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using Tizen;
+using Tizen.Applications;
+using Tizen.Applications.ComponentBased.Common;
+using Tizen.Applications.ComponentBased.Default;
+
+namespace ComponentBasedSample
+{
+    public class FrameComponentSample : FrameComponent
+    {
+        private static string LogTag = "ComponentBasedSample";
+
+        public override IWindowInfo CreateWindowInfo()
+        {
+            Log.Info(LogTag, "CreateWindowInfo()");
+            ElmSharp.Window elmSharpWindow = new ElmSharp.Window("Frame-Component");
+            EFLWindowInfo eflWindowInfo = new EFLWindowInfo(elmSharpWindow);
+            return eflWindowInfo;
+        }
+
+        public override bool OnCreate()
+        {
+            Log.Info(LogTag, "OnCreate() " + ComponentId);
+            return true;
+        }
+
+        public override void OnStart(AppControl appControl, bool restarted)
+        {
+            Log.Info(LogTag, "OnStart()");
+            base.OnStart(appControl, restarted);
+        }
+
+        public override void OnResume()
+        {
+            Log.Info(LogTag, "OnResume()");
+            base.OnResume();
+        }
+
+        public override void OnPause()
+        {
+            Log.Info(LogTag, "OnPause()");
+            base.OnPause();
+        }
+
+        public override void OnStop()
+        {
+            Log.Info(LogTag, "OnStop()");
+            base.OnStop();
+        }
+
+        public override void OnDestroy()
+        {
+            Log.Info(LogTag, "OnDestroy()");
+            base.OnDestroy();
+        }
+    }
+}
diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ServiceComponentSample.cs b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ServiceComponentSample.cs
new file mode 100755 (executable)
index 0000000..33a4b74
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ *  Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using Tizen;
+using Tizen.Applications;
+using Tizen.Applications.ComponentBased.Common;
+
+namespace ComponentBasedSample
+{
+    public class ServiceComponentSample : ServiceComponent
+    {
+        private static string LogTag = "ComponentBasedSample";
+
+        public override bool OnCreate()
+        {
+            Log.Info(LogTag, "OnCreate() " + ComponentId);
+            return true;
+        }
+
+        public override void OnStartCommand(AppControl appControl, bool restarted)
+        {
+            base.OnStartCommand(appControl, restarted);
+            Log.Info(LogTag, "OnStartCommand()");
+        }
+
+        public override void OnDestroy()
+        {
+            base.OnDestroy();
+            Log.Info(LogTag, "OnDestroy()");
+        }
+    }
+}
diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ServiceComponentSample2.cs b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/ServiceComponentSample2.cs
new file mode 100755 (executable)
index 0000000..b8041d7
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ *  Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using Tizen;
+using Tizen.Applications;
+using Tizen.Applications.ComponentBased.Common;
+
+namespace ComponentBasedSample
+{
+    public class ServiceComponentSample2 : ServiceComponent
+    {
+        private static string LogTag = "ComponentBasedSample";
+
+        public override bool OnCreate()
+        {
+            Log.Info(LogTag, "OnCreate() " + ComponentId);
+            return true;
+        }
+
+        public override void OnStartCommand(AppControl appControl, bool restarted)
+        {
+            base.OnStartCommand(appControl, restarted);
+            Log.Info(LogTag, "OnStartCommand()");
+        }
+
+        public override void OnDestroy()
+        {
+            base.OnDestroy();
+            Log.Info(LogTag, "OnDestroy()");
+        }
+    }
+}
diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/ComponentBasedSample.png b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/ComponentBasedSample.png
new file mode 100755 (executable)
index 0000000..9f3cb98
Binary files /dev/null and b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/ComponentBasedSample.png differ
diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/ComponentBasedSample2.png b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/ComponentBasedSample2.png
new file mode 100755 (executable)
index 0000000..9f3cb98
Binary files /dev/null and b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/ComponentBasedSample2.png differ
diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/FrameComponentSample.png b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/FrameComponentSample.png
new file mode 100755 (executable)
index 0000000..9f3cb98
Binary files /dev/null and b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/shared/res/FrameComponentSample.png differ
diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/tizen-manifest.xml b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/ComponentBasedSample/ComponentBasedSample/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..cf2f396
--- /dev/null
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://tizen.org/ns/packages" api-version="6" package="org.tizen.example.ComponentBasedSample" version="1.0.0">
+  <profile name="common" />
+  <component-based-application appid="org.tizen.example.ComponentBasedSample"
+                               exec="ComponentBasedSample.dll"
+                               type="dotnet"
+                               multiple="false"
+                               taskmanage="false"
+                               nodisplay="true">
+    <label>ComponentBasedSample</label>
+    <icon>ComponentBasedSample.png</icon>
+    <metadata key="http://tizen.org/metadata/prefer_dotnet_aot" value="true" />
+    <frame-component id="org.example.frame-component" taskmanage="true" icon-display="true" main="true">
+      <label>FrameComponentSample</label>
+      <icon>FrameComponentSample.png</icon>
+    </frame-component>
+    <service-component id="org.example.service-component" main="false">
+      <label>ServiceComponentSample</label>
+    </service-component>
+  </component-based-application>
+  <component-based-application appid="org.tizen.example.ComponentBasedSample2"
+                               exec="ComponentBasedSample.dll"
+                               type="dotnet"
+                               multiple="false"
+                               taskmanage="true"
+                               nodisplay="false"
+                               launch_mode="single">
+    <label>ComponentBasedSample2</label>
+    <icon>ComponentBasedSample2.png</icon>
+    <metadata key="http://tizen.org/metadata/prefer_dotnet_aot" value="true" />
+    <service-component id="org.example.bg-service-component" main="true">
+      <label>BGServiceComponentSample</label>
+    </service-component>
+  </component-based-application>
+</manifest>
diff --git a/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/org.tizen.example.ComponentBasedSample-1.0.0.tpk b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/org.tizen.example.ComponentBasedSample-1.0.0.tpk
new file mode 100755 (executable)
index 0000000..1e5b883
Binary files /dev/null and b/tct-suite-vs/Resource/Tizen.Applications.ComponentBased.ComponentManager.Tests/org.tizen.example.ComponentBasedSample-1.0.0.tpk differ
diff --git a/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/Program.cs b/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/Program.cs
new file mode 100755 (executable)
index 0000000..e0f15eb
--- /dev/null
@@ -0,0 +1,52 @@
+/*
+ *  Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using System;
+using NUnitLite.TUnit;
+using AutoTemplate;
+
+namespace XamarinForTizen.Tizen
+{
+
+    class Program : global::Xamarin.Forms.Platform.Tizen.FormsApplication
+    {
+        private static App _app;
+        protected override void OnCreate()
+        {
+            base.OnCreate();
+
+            Console.WriteLine("TCT : OnCreate()");
+            _app = new App();
+            LoadApplication(_app);
+
+            TRunner t = new TRunner();
+            t.LoadTestsuite();
+            t.Execute();
+        }
+
+        public static App getApp()
+        {
+            return _app;
+        }
+        static void Main(string[] args)
+        {
+            Console.WriteLine("TCT : Main()");
+            var app = new Program();
+            global::Xamarin.Forms.Platform.Tizen.Forms.Init(app);
+            app.Run(args);
+        }
+    }
+}
diff --git a/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/Tizen.Applications.ComponentBased.ComponentManager.Tests.csproj b/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/Tizen.Applications.ComponentBased.ComponentManager.Tests.csproj
new file mode 100755 (executable)
index 0000000..879f5f2
--- /dev/null
@@ -0,0 +1,39 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+  <!-- Property Group for .NET Core Project -->
+  <PropertyGroup>
+    <OutputType>Exe</OutputType>
+    <TargetFramework>tizen60</TargetFramework>
+  </PropertyGroup>
+
+  <!-- Property Group for Tizen Project -->
+  <PropertyGroup>
+    <TizenCreateTpkOnBuild>true</TizenCreateTpkOnBuild>
+  </PropertyGroup>
+
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <DebugType>portable</DebugType>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <DebugType>None</DebugType>
+  </PropertyGroup>
+
+  <ItemGroup>
+    <Folder Include="lib\" />
+  </ItemGroup>
+
+  <Import Project="..\Common\dependencies.props" />
+
+  <ItemGroup>
+    <PackageReference Include="Tizen.NET" Version="6.0.0.14916">
+      <ExcludeAssets>Runtime</ExcludeAssets>
+    </PackageReference>
+    <PackageReference Include="Tizen.NET.Sdk" Version="$(TizenNETSdkVersion)" />
+  </ItemGroup>
+
+  <!-- Include Nuget Package for Tizen Project building -->
+  <ItemGroup>
+    <ProjectReference Include="..\Template\AutoTemplate\AutoTemplate.csproj" />
+  </ItemGroup>
+
+</Project>
diff --git a/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/Tizen.Applications.ComponentBased.ComponentManager.Tests.sln b/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/Tizen.Applications.ComponentBased.ComponentManager.Tests.sln
new file mode 100755 (executable)
index 0000000..f04b5dc
--- /dev/null
@@ -0,0 +1,78 @@
+Microsoft Visual Studio Solution File, Format Version 12.00\r
+# Visual Studio 15\r
+VisualStudioVersion = 15.0.26730.15\r
+MinimumVisualStudioVersion = 15.0.26124.0\r
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Tizen.Applications.ComponentBased.ComponentManager.Tests", "Tizen.Applications.ComponentBased.ComponentManager.Tests.csproj", "{D92BEEAC-3B2A-45F8-8C53-53B92550404A}"\r
+EndProject\r
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunit.framework", "..\nunit.framework\nunit.framework.csproj", "{B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}"\r
+EndProject\r
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "nunitlite", "..\nunitlite\nunitlite.csproj", "{FDB8025A-C029-461F-895E-287B4C65939B}"\r
+EndProject\r
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AutoTemplate", "..\Template\AutoTemplate\AutoTemplate.csproj", "{B11ABB0C-C3C1-4B5C-8251-A15628A775F3}"\r
+EndProject\r
+Global\r
+        GlobalSection(SolutionConfigurationPlatforms) = preSolution\r
+                Debug|Any CPU = Debug|Any CPU\r
+                Debug|x64 = Debug|x64\r
+                Debug|x86 = Debug|x86\r
+                Release|Any CPU = Release|Any CPU\r
+                Release|x64 = Release|x64\r
+                Release|x86 = Release|x86\r
+        EndGlobalSection\r
+        GlobalSection(ProjectConfigurationPlatforms) = postSolution\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Debug|x64.ActiveCfg = Debug|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Debug|x64.Build.0 = Debug|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Debug|x86.ActiveCfg = Debug|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Debug|x86.Build.0 = Debug|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Release|Any CPU.Build.0 = Release|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Release|x64.ActiveCfg = Release|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Release|x64.Build.0 = Release|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Release|x86.ActiveCfg = Release|Any CPU\r
+                {D92BEEAC-3B2A-45F8-8C53-53B92550404A}.Release|x86.Build.0 = Release|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Debug|x64.ActiveCfg = Debug|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Debug|x64.Build.0 = Debug|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Debug|x86.ActiveCfg = Debug|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Debug|x86.Build.0 = Debug|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Release|Any CPU.Build.0 = Release|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Release|x64.ActiveCfg = Release|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Release|x64.Build.0 = Release|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Release|x86.ActiveCfg = Release|Any CPU\r
+                {B9E7C1FD-CB38-42F7-AC43-7BD2E5B4D216}.Release|x86.Build.0 = Release|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Debug|x64.ActiveCfg = Debug|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Debug|x64.Build.0 = Debug|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Debug|x86.ActiveCfg = Debug|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Debug|x86.Build.0 = Debug|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Release|Any CPU.Build.0 = Release|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Release|x64.ActiveCfg = Release|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Release|x64.Build.0 = Release|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Release|x86.ActiveCfg = Release|Any CPU\r
+                {FDB8025A-C029-461F-895E-287B4C65939B}.Release|x86.Build.0 = Release|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Debug|Any CPU.Build.0 = Debug|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Debug|x64.ActiveCfg = Debug|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Debug|x64.Build.0 = Debug|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Debug|x86.ActiveCfg = Debug|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Debug|x86.Build.0 = Debug|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Release|Any CPU.ActiveCfg = Release|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Release|Any CPU.Build.0 = Release|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Release|x64.ActiveCfg = Release|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Release|x64.Build.0 = Release|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Release|x86.ActiveCfg = Release|Any CPU\r
+                {B11ABB0C-C3C1-4B5C-8251-A15628A775F3}.Release|x86.Build.0 = Release|Any CPU\r
+        EndGlobalSection\r
+        GlobalSection(SolutionProperties) = preSolution\r
+                HideSolutionNode = FALSE\r
+        EndGlobalSection\r
+        GlobalSection(ExtensibilityGlobals) = postSolution\r
+                SolutionGuid = {ED382B91-9930-40B6-B3D7-362304C78680}\r
+        EndGlobalSection\r
+EndGlobal\r
diff --git a/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/shared/res/Tizen.Applications.ComponentBased.ComponentManager.Tests.png b/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/shared/res/Tizen.Applications.ComponentBased.ComponentManager.Tests.png
new file mode 100755 (executable)
index 0000000..9765b1b
Binary files /dev/null and b/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/shared/res/Tizen.Applications.ComponentBased.ComponentManager.Tests.png differ
diff --git a/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/testcase/TSComponentInfocs.cs b/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/testcase/TSComponentInfocs.cs
new file mode 100755 (executable)
index 0000000..f9ffccf
--- /dev/null
@@ -0,0 +1,211 @@
+/*
+ *  Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using Tizen;
+
+namespace Tizen.Applications.ComponentBased.Tests
+{
+    [TestFixture]
+    [Description("Tizen.Applications.ComponentBased.ComponentInfo Tests")]
+    public class TSComponentInfocs
+    {
+        private const string LogTag = "ComponentManager.Tests";
+        private const string CompoId = "org.example.frame-component";
+        private const string ServiceCompoId = "org.example.service-component";
+        private const string AppId = "org.tizen.example.ComponentBasedSample";
+        private const string IconPath = "shared/res/FrameComponentSample.png";
+        private const string CompoLabel = "FrameComponentSample";
+        private const string CompoLocalizedLabel = "FrameComponentSample";
+        private ComponentInfo _compoInfo;
+        private ComponentInfo _svcCompoInfo;
+
+        [SetUp]
+        public void Init()
+        {
+            Log.Debug(LogTag, "Preconditions for each TEST");
+            _compoInfo = new ComponentInfo(CompoId);
+            _svcCompoInfo = new ComponentInfo(ServiceCompoId);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            Log.Debug(LogTag, "Postconditions for each TEST");
+            _compoInfo = null;
+            _svcCompoInfo = null;
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test ComponentInfo method initialization")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentInfo.ComponentInfo C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        [Property("CONVPARAM", "string")]
+        public void ComponentInfo_INIT()
+        {
+            Log.Debug(LogTag, "START");
+            var compoInfo = new ComponentInfo(CompoId);
+            Assert.IsInstanceOf<ComponentInfo>(compoInfo);
+            Assert.AreEqual(compoInfo.ComponentId, CompoId, "Component ID should be same " + CompoId);
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P2")]
+        [Description("Test ComponentInfo method initialization with invalid argument")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentInfo.ComponentInfo C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTX")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        [Property("CONVPARAM", "string")]
+        public void ComponentInfo_CHECK_ArgumentException()
+        {
+            Log.Debug(LogTag, "START");
+            try
+            {
+                var compoInfo = new ComponentInfo("Unknown component");
+            }
+            catch (ArgumentException)
+            {
+                Assert.Pass();
+            }
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property ComponentId of ComponentInfo")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentInfo.ComponentId A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void ComponentId_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.AreEqual(CompoId, _compoInfo.ComponentId, "Component ID(" + _compoInfo.ComponentId + ") is not correct");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property ApplicationId of ComponentInfo")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentInfo.ApplicationId A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void ApplicationId_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.AreEqual(AppId, _compoInfo.ApplicationId, "Application ID(" + _compoInfo.ApplicationId + ") is not correct");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property ComponentType of ComponentInfo")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentInfo.ComponentType A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void ComponentType_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.AreEqual(ComponentType.Frame, _compoInfo.ComponentType, "Component Type(" + _compoInfo.ComponentType + ") is not correct");
+            Assert.AreEqual(ComponentType.Service, _svcCompoInfo.ComponentType, "Component Type(" + _svcCompoInfo.ComponentType + ") is not correct");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property IsIconDisplayed of ComponentInfo")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentInfo.IsIconDisplayed A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void IsIconDisplayed_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.IsTrue(_compoInfo.IsIconDisplayed, "Component should be displayed on the home screen");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property IsManagedByTaskManager of ComponentInfo")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentInfo.IsManagedByTaskManager A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void IsManagedByTaskManager_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.IsTrue(_compoInfo.IsManagedByTaskManager, "Component should be managed by task-manager");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property IconPath of ComponentInfo")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentInfo.IconPath A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void IconPath_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.IsTrue(_compoInfo.IconPath.Contains(IconPath), "Icon path(" + _compoInfo.IconPath + ") is not correct");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property Label of ComponentInfo")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentInfo.Label A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void Label_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.AreEqual(CompoLabel, _compoInfo.Label, "Label(" + _compoInfo.Label + ") is not correct");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Get localized label.")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentInfo.GetLocalizedLabel M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void GetLocalizedLabel_RETURN_VALUE()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.AreEqual(CompoLabel, _compoInfo.Label, "Label of " + CompoId + " is not correct");
+            Assert.AreEqual(CompoLabel, _compoInfo.GetLocalizedLabel("en-gb"), "GetLocalizedLabel with key is en-gb should be work normally");
+            Assert.AreEqual(CompoLocalizedLabel, _compoInfo.GetLocalizedLabel("ko-kr"), "GetLocalizedLabel with key is ko-kr should be work normally");
+            Log.Debug(LogTag, "END");
+        }
+    }
+}
diff --git a/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/testcase/TSComponentManager.cs b/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/testcase/TSComponentManager.cs
new file mode 100755 (executable)
index 0000000..b722ebf
--- /dev/null
@@ -0,0 +1,198 @@
+/*\r
+ *  Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved\r
+ *\r
+ *  Licensed under the Apache License, Version 2.0 (the "License");\r
+ *  you may not use this file except in compliance with the License.\r
+ *  You may obtain a copy of the License at\r
+ *\r
+ *      http://www.apache.org/licenses/LICENSE-2.0\r
+ *\r
+ *  Unless required by applicable law or agreed to in writing, software\r
+ *  distributed under the License is distributed on an "AS IS" BASIS,\r
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
+ *  See the License for the specific language governing permissions and\r
+ *  limitations under the License\r
+ */\r
+\r
+using NUnit.Framework;\r
+using NUnit.Framework.TUnit;\r
+using System;\r
+using System.Collections.Generic;\r
+using System.Threading;\r
+using System.Threading.Tasks;\r
+using Tizen;\r
+\r
+namespace Tizen.Applications.ComponentBased.Tests\r
+{\r
+    [TestFixture]\r
+    [Description("Tizen.Applications.ComponentBased.ComponentManager Tests")]\r
+    public class ComponentManagerTests\r
+    {\r
+        private const string LogTag = "ComponentManager.Tests";\r
+        private IEnumerable<ComponentInfo> _listCompo;\r
+        private IEnumerable<ComponentRunningContext> _listCompoRun;\r
+        private const string AppId = "org.tizen.example.ComponentBasedSample2";\r
+        private const string CompoId = "org.example.bg-service-component";\r
+        private bool _flag;\r
+\r
+        [SetUp]\r
+        public void Init()\r
+        {\r
+            Log.Debug(LogTag, "Preconditions for each TEST");\r
+            _flag = false;\r
+\r
+            bool isRunning = ComponentManager.IsRunning(CompoId);\r
+            if (!isRunning)\r
+            {\r
+                AppControl appControl = new AppControl();\r
+                appControl.ApplicationId = AppId;\r
+                appControl.ComponentId = CompoId;\r
+                appControl.Operation = AppControlOperations.Default;\r
+                AppControl.SendLaunchRequest(appControl);\r
+                Thread.Sleep(5000);\r
+            }\r
+        }\r
+\r
+        [TearDown]\r
+        public void Destroy()\r
+        {\r
+            Log.Debug(LogTag, "Postconditions for each TEST");\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test: Get the information of all installed components asynchronously.")]\r
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentManager.GetInstalledComponentsAsync M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MR")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        public async Task GetInstalledComponentsAsync_GET_ALL_COMPO()\r
+        {\r
+            Log.Debug(LogTag, "START");\r
+            _listCompo = await ComponentManager.GetInstalledComponentsAsync();\r
+            Assert.IsNotEmpty(_listCompo, "The list of installed components should not be empty.");\r
+            foreach (ComponentInfo inst in _listCompo)\r
+            {\r
+                if (string.Equals(inst.ComponentId, CompoId))\r
+                {\r
+                    _flag = true;\r
+                    break;\r
+                }\r
+            }\r
+            Assert.True(_flag, "Could not find the given component in list of installed components.");\r
+            Log.Debug(LogTag, "END");\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test: Get the information of all running components asynchronously.")]\r
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentManager.GetRunningComponentsAsync M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MR")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        public async Task GetRunningComponentsAsync_All_RUNNING_COMPO()\r
+        {\r
+            Log.Debug(LogTag, "START");\r
+            _listCompoRun = await ComponentManager.GetRunningComponentsAsync();\r
+            Assert.IsNotEmpty(_listCompoRun, "The list of running components should not be empty.");\r
+            foreach (ComponentRunningContext context in _listCompoRun)\r
+            {\r
+                if (string.Equals(context.ComponentId, CompoId))\r
+                {\r
+                    _flag = true;\r
+                    break;\r
+                }\r
+            }\r
+            Assert.True(_flag, "Could not find the given component in list of running components.");\r
+            Log.Debug(LogTag, "END");\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test: Check whether the component is running or not.")]\r
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentManager.IsRunning M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MR")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        [Property("CONVPARAM", "string")]\r
+        public void IsRunning_RETURN_VALUE()\r
+        {\r
+            Log.Debug(LogTag, "START");\r
+            Assert.True(ComponentManager.IsRunning(CompoId), CompoId + " should be running");\r
+            Log.Debug(LogTag, "END");\r
+        }\r
+\r
+        [Test]\r
+        [Category("P2")]\r
+        [Description("Test: Verify the component state with null argument.")]\r
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentManager.IsRunning M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MEX")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        [Property("CONVPARAM", "string")]\r
+        public void IsRunning_CHECK_ArgumentException()\r
+        {\r
+            Log.Debug(LogTag, "START");\r
+            try\r
+            {\r
+                bool isRunning = ComponentManager.IsRunning(null);\r
+            }\r
+            catch (ArgumentException)\r
+            {\r
+                Assert.Pass();\r
+            }\r
+            Log.Debug(LogTag, "END");\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test: Terminate a running service component in the background.")]\r
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentManager.TerminateBackgroundComponent M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MR")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        public async Task TerminateBackgroundComponent_TERMINATE_BG_COMPO()\r
+        {\r
+            Log.Debug(LogTag, "START");\r
+            ComponentRunningContext context = null;\r
+\r
+            try\r
+            {\r
+                context = new ComponentRunningContext(CompoId);\r
+                Assert.AreNotEqual(null, context, "context should not be null");\r
+                Assert.IsInstanceOf<ComponentRunningContext>(context, "context should be ComponentRunningContext");\r
+            }\r
+            catch (Exception e)\r
+            {\r
+                Assert.Fail("Failed to get running context. " + e.ToString());\r
+            }\r
+\r
+            ComponentManager.TerminateBackgroundComponent(context);\r
+            await Task.Delay(5000);\r
+\r
+            Assert.True(context.IsTerminated, CompoId + " should be terminated");\r
+            Log.Debug(LogTag, "END");\r
+        }\r
+\r
+        [Test]\r
+        [Category("P2")]\r
+        [Description("Test: Terminate a running service component with null argument")]\r
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentManager.TerminateBackgroundComponent M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MEX")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        public void TerminateBackgroundComponent_CHECK_ArgumentException()\r
+        {\r
+            Log.Debug(LogTag, "START");\r
+            try\r
+            {\r
+                ComponentManager.TerminateBackgroundComponent(null);\r
+            }\r
+            catch (ArgumentException)\r
+            {\r
+                Assert.Pass();\r
+            }\r
+            Log.Debug(LogTag, "END");\r
+        }\r
+    }\r
+}\r
diff --git a/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/testcase/TSComponentRunningContext.cs b/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/testcase/TSComponentRunningContext.cs
new file mode 100755 (executable)
index 0000000..76eac71
--- /dev/null
@@ -0,0 +1,231 @@
+/*
+ *  Copyright (c) 2019 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License
+ */
+
+using NUnit.Framework;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace Tizen.Applications.ComponentBased.Tests
+{
+    [TestFixture]
+    [Description("Tizen.Applications.ComponentBased.ComponentRunningContext Tests")]
+    public class ComponentRunningContextTests
+    {
+        private const string LogTag = "ComponentManager.Tests";
+        private const string AppId = "org.tizen.example.ComponentBasedSample";
+        private const string CompoId = "org.example.frame-component";
+        private ComponentRunningContext _context;
+
+        [SetUp]
+        public void Init()
+        {
+            Log.Debug(LogTag, "Preconditions for each TEST");
+            bool isRunning = ComponentManager.IsRunning(CompoId);
+            if (!isRunning)
+            {
+                AppControl appControl = new AppControl();
+                appControl.ApplicationId = AppId;
+                appControl.ComponentId = CompoId;
+                AppControl.SendLaunchRequest(appControl);
+                Thread.Sleep(5000);
+            }
+
+            _context = new ComponentRunningContext(CompoId);
+        }
+
+        [TearDown]
+        public void Destroy()
+        {
+            Log.Debug(LogTag, "Postconditions for each TEST");
+            _context = null;
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test ComponentRunningContext method initialization")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentRunningContext.ComponentRunningContext C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTR")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        [Property("CONVPARAM", "string")]
+        public void ComponentRunningContext_INIT()
+        {
+            Log.Debug(LogTag, "START");
+            var context = new ComponentRunningContext(CompoId);
+            Assert.AreNotEqual(context, null, "Should return ComponentRunningContext instance.");
+            Assert.IsInstanceOf<ComponentRunningContext>(context, "context should be ComponentRunningContext.");
+            Assert.AreEqual(context.ComponentId, CompoId, "Component ID should be same " + CompoId);
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P2")]
+        [Description("Test ComponentRunningContext method initialization with invalid argument")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentRunningContext.ComponentRunningContext C")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "CONSTX")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        [Property("CONVPARAM", "string")]
+        public void ComponentRunningContext_CHECK_ArgumentException()
+        {
+            Log.Debug(LogTag, "START");
+            try
+            {
+                var context = new ComponentRunningContext("Not Running");
+            }
+            catch (ArgumentException)
+            {
+                Assert.Pass();
+            }
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property ComponentId of ComponentRunningContext")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentRunningContext.ComponentId A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void ComponentId_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.AreEqual(CompoId, _context.ComponentId, "Component ID is not correct");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property ApplicationId of ComponentRunningContext")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentRunningContext.ApplicationId A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void ApplicationId_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.AreEqual(AppId, _context.ApplicationId, "Application ID is not correct");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property InstanceId of ComponentRunningContext")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentRunningContext.InstanceId A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void InstanceId_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.AreNotEqual(_context.InstanceId, null, "Instance ID is not correct");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property State of ComponentRunningContext")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentRunningContext.State A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void State_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.AreNotEqual(_context.State, ComponentRunningContext.ComponentState.Initialized, "Component State is not correct");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property IsTerminated of ComponentRunningContext")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentRunningContext.IsTerminated A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void IsTerminated_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.False(_context.IsTerminated, "Component should not be terminated");
+            Log.Debug(LogTag, "END");
+        }
+
+
+        [Test]
+        [Category("P1")]
+        [Description("Test property IsSubComponent of ComponentRunningContext")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentRunningContext.IsSubComponent A")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "PRO")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void IsSubComponent_GET()
+        {
+            Log.Debug(LogTag, "START");
+            Assert.False(_context.IsSubComponent, "Running Component should not be runnnig as a sub component of app group");
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P1")]
+        [Description("Resume the running frame component.")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentRunningContext.Resume M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MR")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void Resume_FrameComponent()
+        {
+            Log.Debug(LogTag, "START");
+            try
+            {
+                _context.Resume();
+            }
+            catch (Exception e)
+            {
+                Assert.Fail("Component should be resumed. " + e.ToString());
+            }
+            Log.Debug(LogTag, "END");
+        }
+
+        [Test]
+        [Category("P2")]
+        [Description("Test: Resume the running frame component with invalid argument")]
+        [Property("SPEC", "Tizen.Applications.ComponentBased.ComponentRunningContext.Resume M")]
+        [Property("SPEC_URL", "-")]
+        [Property("CRITERIA", "MEX")]
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]
+        public void Resume_CHECK_ArgumentException()
+        {
+            Log.Debug(LogTag, "START");
+            // PreCondition: Terminate running context
+            ComponentManager.TerminateBackgroundComponent(_context);
+            Thread.Sleep(5000);
+
+            try
+            {
+                _context.Resume();
+            }
+            catch (ArgumentException)
+            {
+                Assert.Pass();
+            }
+            Log.Debug(LogTag, "END");
+        }
+    }
+}
diff --git a/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/tizen-manifest.xml b/tct-suite-vs/Tizen.Applications.ComponentBased.ComponentManager.Tests/tizen-manifest.xml
new file mode 100755 (executable)
index 0000000..644559f
--- /dev/null
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest package="Tizen.Applications.ComponentBased.ComponentManager.Tests" version="1.0.0" api-version="6" xmlns="http://tizen.org/ns/packages">
+    <profile name="common" />
+    <ui-application appid="Tizen.Applications.ComponentBased.ComponentManager.Tests" exec="Tizen.Applications.ComponentBased.ComponentManager.Tests.dll" multiple="false" taskmanage="true" type="dotnet" launch_mode="single">
+        <icon>Tizen.Applications.ComponentBased.ComponentManager.Tests.png</icon>
+        <label>Tizen.Applications.ComponentBased.ComponentManager.Tests</label>
+        <splash-screens />
+    </ui-application>
+    <shortcut-list />
+    <privileges>
+        <privilege>http://tizen.org/privilege/appmanager.launch</privilege>
+        <privilege>http://tizen.org/privilege/appmanager.kill.bgapp</privilege>
+        <privilege>http://tizen.org/privilege/packagemanager.info</privilege>
+    </privileges>
+    <provides-appdefined-privileges />
+</manifest>