[RPCPort][TCSACR-362][Add new testcases] 29/240929/7
authorHwankyu Jhun <h.jhun@samsung.com>
Thu, 13 Aug 2020 02:33:41 +0000 (11:33 +0900)
committerHwankyu Jhun <h.jhun@samsung.com>
Thu, 20 Aug 2020 22:13:05 +0000 (07:13 +0900)
Adds:
 - ConnectSync_RETURN()
 - ConnectSync_CHECK_INVALID_ID_EXCEPTION()
 - ConnectSync_CHECK_INVALID_IO_EXCEPTION()
 - ShareFile_SHARE_FILE_LIST_AND_CHECK_WITHOUT_EXCEPTION()
 - ShareFile_SHARE_FILE_AND_CHECK_WITHOUT_EXCEPTION()
 - ShareFile_SHARE_FILE_LIST_AND_CHECK_INVALID_IO_EXCEPTION()
 - ShareFile_SHARE_FILE_AND_CHECK_INVALID_IO_EXCEPTION()
 - UnshareFile_CHECK_WITHOUT_EXCEPTION()

Change-Id: I37c3f22b7191379a2dd3f81b743555388212e21c
Signed-off-by: Hwankyu Jhun <h.jhun@samsung.com>
tct-suite-vs/Tizen.Applications.RPCPort.Tests/testcase/TSRPCPort.Port.cs [new file with mode: 0755]
tct-suite-vs/Tizen.Applications.RPCPort.Tests/testcase/TSRPCPort.ProxyBase.cs

diff --git a/tct-suite-vs/Tizen.Applications.RPCPort.Tests/testcase/TSRPCPort.Port.cs b/tct-suite-vs/Tizen.Applications.RPCPort.Tests/testcase/TSRPCPort.Port.cs
new file mode 100755 (executable)
index 0000000..f820785
--- /dev/null
@@ -0,0 +1,230 @@
+using NUnit.Framework;\r
+using NUnit.Framework.TUnit;\r
+using System;\r
+using System.Collections.Generic;\r
+using System.IO;\r
+using System.Linq;\r
+using System.Text;\r
+using Tizen.Applications.RPCPort;\r
+\r
+namespace Tizen.Applications.Tests\r
+{\r
+    public class TestProxy : ProxyBase\r
+    {\r
+        public Port MainPort { get; set; }\r
+\r
+        public bool Connected { get; set; }\r
+\r
+        public bool Received { get; set; }\r
+\r
+        protected override void OnConnectedEvent(string endPoint, string portName, Port port)\r
+        {\r
+            Connected = true;\r
+            MainPort = port;\r
+        }\r
+\r
+        protected override void OnDisconnectedEvent(string endPoint, string portName)\r
+        {\r
+        }\r
+\r
+        protected override void OnReceivedEvent(string endPoint, string portName)\r
+        {\r
+            using (var p = new Parcel(CallbackPort))\r
+            {\r
+                Assert.IsInstanceOf<RPCPort.Parcel>(p);\r
+                Assert.IsNotNull(p, "Parcel shouldn't be null after init.");\r
+            }\r
+            Received = true;\r
+        }\r
+\r
+        protected override void OnRejectedEvent(string endPoint, string portName)\r
+        {\r
+        }\r
+\r
+        public void TestConnectSync()\r
+        {\r
+            ConnectSync("org.tizen.example.RpcPortStub", "Test");\r
+        }\r
+    }\r
+\r
+    [TestFixture]\r
+    [Description("Tizen.Application.RPCPort.Port Tests")]\r
+    public class PortTests\r
+    {\r
+        private TestProxy _proxy;\r
+        private string _fooFile = Application.Current.DirectoryInfo.Data + "foo.txt";\r
+        private string _barFile = Application.Current.DirectoryInfo.Data + "bar.txt";\r
+        private string _gooFile = Application.Current.DirectoryInfo.Data + "goo.txt";\r
+\r
+        private void CreateFile(string file)\r
+        {\r
+            try\r
+            {\r
+                if (File.Exists(file))\r
+                {\r
+                    File.Delete(file);\r
+                }\r
+\r
+                using (FileStream fs = File.Create(file))\r
+                {\r
+                    byte[] title = new UTF8Encoding(true).GetBytes("New File");\r
+                    fs.Write(title, 0, title.Length);\r
+                }\r
+            }\r
+            catch (Exception e)\r
+            {\r
+                LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Exception: " + e.ToString());\r
+            }\r
+        }\r
+\r
+        [SetUp]\r
+        public void Init()\r
+        {\r
+            LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Preconditions for each TEST");\r
+            _proxy = new TestProxy();\r
+            _proxy.TestConnectSync();\r
+\r
+            CreateFile(_fooFile);\r
+            CreateFile(_barFile);\r
+            CreateFile(_gooFile);\r
+        }\r
+\r
+        [TearDown]\r
+        public void Destroy()\r
+        {\r
+            LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Postconditions for each TEST");\r
+            _proxy.Dispose();\r
+            _proxy = null;\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : Shares files with stub application")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.Port.ShareFile M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MR")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        [Property("COVPARAM", "System.Collections.Generic.IEnumerable<string>")]\r
+        public void ShareFile_SHARE_FILE_LIST_AND_CHECK_WITHOUT_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            Assert.True(_proxy.Connected, "Proxy should be connected");\r
+\r
+            /* TEST CODE */\r
+            try\r
+            {\r
+                var files = new List<string>();\r
+                files.Append<string>(_fooFile);\r
+                files.Append<string>(_barFile);\r
+\r
+                var port = _proxy.MainPort;\r
+                port.ShareFile(files);\r
+            }\r
+            catch (Exception e)\r
+            {\r
+                Assert.Fail(e.ToString());\r
+            }\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : Shares files with stub application")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.Port.ShareFile M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MR")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        [Property("COVPARAM", "string")]\r
+        public void ShareFile_SHARE_FILE_AND_CHECK_WITHOUT_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            Assert.True(_proxy.Connected, "Proxy should be connected");\r
+\r
+            /* TEST CODE */\r
+            try\r
+            {\r
+                var port = _proxy.MainPort;\r
+                port.ShareFile(_gooFile);\r
+            }\r
+            catch (Exception e)\r
+            {\r
+                Assert.Fail(e.ToString());\r
+            }\r
+        }\r
+\r
+        [Test]\r
+        [Category("P2")]\r
+        [Description("Test : Try to call Share() with invalid parameter")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.Port.ShareFile M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MEX")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        [Property("COVPARAM", "System.Collections.Generic.IEnumerable<string>")]\r
+        public void ShareFile_SHARE_FILE_LIST_AND_CHECK_INVALID_ID_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            Assert.True(_proxy.Connected, "Proxy should be connected");\r
+\r
+            /* TEST CODE */\r
+            var port = _proxy.MainPort;\r
+            try\r
+            {\r
+                List<string> files = null;\r
+                port.ShareFile(files);\r
+            }\r
+            catch (InvalidIOException)\r
+            {\r
+                Assert.Pass("InvalidIOException occurs");\r
+            }\r
+        }\r
+\r
+        [Test]\r
+        [Category("P2")]\r
+        [Description("Test : Try to call Share() with invalid parameter")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.Port.ShareFile M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MEX")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        [Property("COVPARAM", "string")]\r
+        public void ShareFile_SHARE_FILE_AND_CHECK_INVALID_ID_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            Assert.True(_proxy.Connected, "Proxy should be connected");\r
+\r
+            /* TEST CODE */\r
+            var port = _proxy.MainPort;\r
+            try\r
+            {\r
+                string file = null;\r
+                port.ShareFile(file);\r
+            }\r
+            catch (InvalidIOException)\r
+            {\r
+                Assert.Pass("InvalidIOException occurs");\r
+            }\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : Unshares files")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.Port.UnshareFile M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MR")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        public void UnshareFile_CHECK_WITHOUT_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            Assert.True(_proxy.Connected, "Proxy should be connected");\r
+\r
+            /* TEST CODE */\r
+            try\r
+            {\r
+                var port = _proxy.MainPort;\r
+                port.UnshareFile();\r
+            }\r
+            catch (Exception e)\r
+            {\r
+                Assert.Fail(e.ToString());\r
+            }\r
+        }\r
+    }\r
+}\r
index 4743dbf..8cab6f0 100755 (executable)
-using NUnit.Framework;
-using NUnit.Framework.TUnit;
-using System.Threading.Tasks;
-using Tizen.Applications.RPCPort;
-
-namespace Tizen.Applications.Tests
-{
-
-    [TestFixture]
-    [Description("Tizen.Application.RPCPort.ProxyBase Tests")]
-    public class ProxyBaseTests
-    {
-        private Proxy _proxy;
-
-        public class Proxy : ProxyBase
-        {
-            public bool Connected { get; set; }
-            public bool Disconnected { get; set; }
-            public bool Rejected { get; set; }
-
-            public string Result { get; set; }
-
-            private Port _port;
-
-            public void SendHello()
-            {
-                using (Parcel p = new Parcel())
-                {
-                    p.WriteString("hello");
-                    p.Send(_port);
-                }
-            }
-
-            protected override void OnConnectedEvent(string endPoint, string portName, Port port)
-            {
-                Connected = true;
-                _port = port;
-            }
-
-            protected override void OnDisconnectedEvent(string endPoint, string portName)
-            {
-                Disconnected = true;
-            }
-
-            protected override void OnReceivedEvent(string endPoint, string portName)
-            {
-                using (Parcel p = new Parcel(GetPort(Port.Type.Callback)))
-                {
-                    Result = p.ReadString();
-                }
-            }
-
-            protected override void OnRejectedEvent(string endPoint, string portName)
-            {
-                Rejected = true;
-            }
-
-            public void TestConnect()
-            {
-                Connect("org.tizen.example.RpcPortStub", "Test");
-            }
-
-            public void ConnectForInvalidIOException()
-            {
-                Connect("invalid.app", "Test");
-            }
-            public void ConnectForRejectedEvent()
-            {
-                Connect("org.tizen.example.RpcPortStub2", "Test");
-            }
-
-            public void TestGetPort()
-            {
-                Port p = GetPort(Port.Type.Main);
-                Assert.NotNull(p);
-
-                p = GetPort(Port.Type.Callback);
-                Assert.NotNull(p);
-            }
-
-            public Port GetPort()
-            {
-                return Port;
-            }
-
-            public Port GetCallbackPort()
-            {
-                return CallbackPort;
-            }
-        }
-
-        [SetUp]
-        public void Init()
-        {
-            LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Preconditions for each TEST");
-            _proxy = new Proxy();
-            _proxy.TestConnect();
-        }
-
-        [TearDown]
-        public void Destroy()
-        {
-            LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Postconditions for each TEST");
-            _proxy?.Dispose();
-            _proxy = null;
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Test ProxyBase initialization")]
-        [Property("SPEC", "Tizen.Applications.RPCPort.ProxyBase.ProxyBase C")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "CONSTR")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public void ProxyBase_INIT()
-        {
-            var p = new Proxy();
-
-            Assert.IsInstanceOf<ProxyBase>(p);
-            Assert.IsNotNull(p, "Proxy shouldn't be null");
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Test : Connect to stub application")]
-        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MR")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task Connect_RETURN()
-        {
-            /* PRECONDITION */
-            await Task.Delay(4000);
-
-            /* TEST CODE */
-            Assert.True(_proxy.Connected);
-        }
-
-        [Test]
-        [Category("P2")]
-        [Description("Test : Try to reconnect to app without disposing")]
-        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MEX")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task Connect_CHECK_INVALID_ID_EXCEPTION()
-        {
-            /* PRECONDITION */
-            await Task.Delay(4000);
-            Assert.True(_proxy.Connected);
-
-            try
-            {
-                /* TEST CODE */
-                _proxy.TestConnect();
-            }
-            catch (InvalidIDException)
-            {
-                Assert.Pass();
-            }
-
-            Assert.Fail();
-        }
-
-        [Test]
-        [Category("P2")]
-        [Description("Test : Connect to invalid stub application")]
-        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MEX")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public void Connect_CHECK_INVALID_IO_EXCEPTION()
-        {
-            /* PRECONDITION */
-            _proxy?.Dispose();
-            _proxy = new Proxy();
-
-            try
-            {
-                /* TEST CODE */
-                _proxy.ConnectForInvalidIOException();
-            }
-            catch (InvalidIOException)
-            {
-                Assert.Pass();
-            }
-
-            Assert.Fail();
-        }
-
-        [Test]
-        [Category("P2")]
-        [Description("Test : Connect to stub application with invalid permission")]
-        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MEX")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task Connect_CHECK_PERMISSION_DENIED_EXCEPTION()
-        {
-            /* PRECONDITION */
-            _proxy?.Dispose();
-            _proxy = null;
-            AppControlReplyResult ret = AppControlReplyResult.Failed;
-
-            var c = new AppControl()
-            {
-                ApplicationId = "org.tizen.example.RpcPortProxy2"
-            };
-
-            AppControl.SendLaunchRequest(c, (AppControl launchRequest, AppControl replyRequest, AppControlReplyResult result) =>
-            {
-                ret = result;
-            });
-            await Task.Delay(4000);
-
-            /* TEST CODE */
-            Assert.True(ret == AppControlReplyResult.Succeeded);
-
-            /* POSTCONDITION */
-            c = new AppControl()
-            {
-                ApplicationId = "org.tizen.example.RpcPortProxy2"
-            };
-
-            c.ExtraData.Add("Test", "finish");
-            AppControl.SendLaunchRequest(c);
-            await Task.Delay(2000);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Test : OnConnected events")]
-        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnConnectedEvent E")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "EVL")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task OnConnectedEvent_CHECK_CB()
-        {
-            /* PRECONDITION */
-            await Task.Delay(4000);
-
-            /* TEST CODE */
-            Assert.True(_proxy.Connected);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Test : OnDisconnected events")]
-        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnDisconnectedEvent E")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "EVL")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task OnDisconnectedEvent_CHECK_CB()
-        {
-            /* PRECONDITION */
-            await Task.Delay(4000);
-            Assert.True(_proxy.Connected);
-            var c = new AppControl()
-            {
-                ApplicationId = "org.tizen.example.RpcPortStub"
-            };
-            c.ExtraData.Add("Test", "finish");
-            AppControl.SendLaunchRequest(c);
-            await Task.Delay(4000);
-
-            /* TEST CODE */
-            Assert.True(_proxy.Disconnected);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Test : OnRejected events")]
-        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnRejectedEvent E")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "EVL")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task OnRejectedEvent_CHECK_CB()
-        {
-            /* PRECONDITION */
-            _proxy?.Dispose();
-            _proxy = new Proxy();
-            _proxy.ConnectForRejectedEvent();
-            await Task.Delay(4000);
-
-            /* TEST CODE */
-            Assert.True(_proxy.Rejected);
-
-            /* POSTCONDITION */
-            var c = new AppControl()
-            {
-                ApplicationId = "org.tizen.example.RpcPortStub2"
-            };
-            c.ExtraData.Add("Test", "finish");
-            AppControl.SendLaunchRequest(c);
-            await Task.Delay(2000);
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Test : OnReceived events")]
-        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnReceivedEvent E")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "EVL")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task OnReceivedEvent_CHECK_CB()
-        {
-            /* PRECONDITION */
-            await Task.Delay(4000);
-            Assert.True(_proxy.Connected);
-            _proxy.SendHello();
-            await Task.Delay(4000);
-
-            /* TEST CODE */
-            Assert.NotNull(_proxy.Result);
-            Assert.True(_proxy.Result.Equals("hello"));
-        }
-
-        [Test]
-        [Category("P2")]
-        [Description("Test : GetPort from disconnected object")]
-        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.GetPort M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MEX")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task GetPort_CHECK_EXCEPTION()
-        {
-            /* PRECONDITION */
-            await Task.Delay(4000);
-            Assert.True(_proxy.Connected);
-            _proxy?.Dispose();
-
-            /* TEST CODE */
-            try
-            {
-                _proxy.TestGetPort();
-            }
-            catch (InvalidIOException)
-            {
-                Assert.Pass();
-            }
-            finally
-            {
-                _proxy = null;
-            }
-
-            Assert.Fail();
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Test : GetPort from proxy object")]
-        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.GetPort M")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "MR")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task GetPort_RETURN()
-        {
-            /* PRECONDITION */
-            await Task.Delay(4000);
-            Assert.True(_proxy.Connected);
-
-            /* TEST CODE */
-            _proxy.TestGetPort();
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Test : Port Property")]
-        [Property("SPEC", "Tizen.Applications.RPCPort.ProxyBase.Port A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task Port_PROPERTY_GET()
-        {
-            /* PRECONDITION */
-            await Task.Delay(4000);
-            Assert.True(_proxy.Connected);
-
-            /* TEST CODE */
-            Assert.NotNull(_proxy.GetPort());
-        }
-
-        [Test]
-        [Category("P1")]
-        [Description("Test : CallbackPort Property")]
-        [Property("SPEC", "Tizen.Applications.RPCPort.ProxyBase.CallbackPort A")]
-        [Property("SPEC_URL", "-")]
-        [Property("CRITERIA", "PRO")]
-        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]
-        public async Task CallbackPort_PROPERTY_GET()
-        {
-            /* PRECONDITION */
-            await Task.Delay(4000);
-            Assert.True(_proxy.Connected);
-
-            /* TEST CODE */
-            Assert.NotNull(_proxy.GetCallbackPort());
-        }
-    }
-}
+using NUnit.Framework;\r
+using NUnit.Framework.TUnit;\r
+using System.Threading.Tasks;\r
+using Tizen.Applications.RPCPort;\r
+\r
+namespace Tizen.Applications.Tests\r
+{\r
+\r
+    [TestFixture]\r
+    [Description("Tizen.Application.RPCPort.ProxyBase Tests")]\r
+    public class ProxyBaseTests\r
+    {\r
+        private Proxy _proxy;\r
+\r
+        public class Proxy : ProxyBase\r
+        {\r
+            public bool Connected { get; set; }\r
+            public bool Disconnected { get; set; }\r
+            public bool Rejected { get; set; }\r
+\r
+            public string Result { get; set; }\r
+\r
+            private Port _port;\r
+\r
+            public void SendHello()\r
+            {\r
+                using (Parcel p = new Parcel())\r
+                {\r
+                    p.WriteString("hello");\r
+                    p.Send(_port);\r
+                }\r
+            }\r
+\r
+            protected override void OnConnectedEvent(string endPoint, string portName, Port port)\r
+            {\r
+                Connected = true;\r
+                _port = port;\r
+            }\r
+\r
+            protected override void OnDisconnectedEvent(string endPoint, string portName)\r
+            {\r
+                Disconnected = true;\r
+            }\r
+\r
+            protected override void OnReceivedEvent(string endPoint, string portName)\r
+            {\r
+                using (Parcel p = new Parcel(GetPort(Port.Type.Callback)))\r
+                {\r
+                    Result = p.ReadString();\r
+                }\r
+            }\r
+\r
+            protected override void OnRejectedEvent(string endPoint, string portName)\r
+            {\r
+                Rejected = true;\r
+            }\r
+\r
+            public void TestConnect()\r
+            {\r
+                Connect("org.tizen.example.RpcPortStub", "Test");\r
+            }\r
+\r
+            public void ConnectForInvalidIOException()\r
+            {\r
+                Connect("invalid.app", "Test");\r
+            }\r
+            public void ConnectForRejectedEvent()\r
+            {\r
+                Connect("org.tizen.example.RpcPortStub2", "Test");\r
+            }\r
+\r
+            public void TestConnectSync()\r
+            {\r
+                ConnectSync("org.tizen.example.RpcPortStub", "Test");\r
+            }\r
+\r
+            public void ConnectSyncForInvalidIOException()\r
+            {\r
+                ConnectSync("invalid.app", "Test");\r
+            }\r
+\r
+            public void TestGetPort()\r
+            {\r
+                Port p = GetPort(Port.Type.Main);\r
+                Assert.NotNull(p);\r
+\r
+                p = GetPort(Port.Type.Callback);\r
+                Assert.NotNull(p);\r
+            }\r
+\r
+            public Port GetPort()\r
+            {\r
+                return Port;\r
+            }\r
+\r
+            public Port GetCallbackPort()\r
+            {\r
+                return CallbackPort;\r
+            }\r
+        }\r
+\r
+        [SetUp]\r
+        public void Init()\r
+        {\r
+            LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Preconditions for each TEST");\r
+            _proxy = new Proxy();\r
+            _proxy.TestConnect();\r
+        }\r
+\r
+        [TearDown]\r
+        public void Destroy()\r
+        {\r
+            LogUtils.Write(LogUtils.DEBUG, LogUtils.TAG, "Postconditions for each TEST");\r
+            _proxy?.Dispose();\r
+            _proxy = null;\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test ProxyBase initialization")]\r
+        [Property("SPEC", "Tizen.Applications.RPCPort.ProxyBase.ProxyBase C")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "CONSTR")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public void ProxyBase_INIT()\r
+        {\r
+            var p = new Proxy();\r
+\r
+            Assert.IsInstanceOf<ProxyBase>(p);\r
+            Assert.IsNotNull(p, "Proxy shouldn't be null");\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : Connect to stub application")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MR")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task Connect_RETURN()\r
+        {\r
+            /* PRECONDITION */\r
+            await Task.Delay(4000);\r
+\r
+            /* TEST CODE */\r
+            Assert.True(_proxy.Connected);\r
+        }\r
+\r
+        [Test]\r
+        [Category("P2")]\r
+        [Description("Test : Try to reconnect to app without disposing")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MEX")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task Connect_CHECK_INVALID_ID_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            await Task.Delay(4000);\r
+            Assert.True(_proxy.Connected);\r
+\r
+            try\r
+            {\r
+                /* TEST CODE */\r
+                _proxy.TestConnect();\r
+            }\r
+            catch (InvalidIDException)\r
+            {\r
+                Assert.Pass();\r
+            }\r
+\r
+            Assert.Fail();\r
+        }\r
+\r
+        [Test]\r
+        [Category("P2")]\r
+        [Description("Test : Connect to invalid stub application")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MEX")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public void Connect_CHECK_INVALID_IO_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            _proxy?.Dispose();\r
+            _proxy = new Proxy();\r
+\r
+            try\r
+            {\r
+                /* TEST CODE */\r
+                _proxy.ConnectForInvalidIOException();\r
+            }\r
+            catch (InvalidIOException)\r
+            {\r
+                Assert.Pass();\r
+            }\r
+\r
+            Assert.Fail();\r
+        }\r
+\r
+        [Test]\r
+        [Category("P2")]\r
+        [Description("Test : Connect to stub application with invalid permission")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.Connect M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MEX")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task Connect_CHECK_PERMISSION_DENIED_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            _proxy?.Dispose();\r
+            _proxy = null;\r
+            AppControlReplyResult ret = AppControlReplyResult.Failed;\r
+\r
+            var c = new AppControl()\r
+            {\r
+                ApplicationId = "org.tizen.example.RpcPortProxy2"\r
+            };\r
+\r
+            AppControl.SendLaunchRequest(c, (AppControl launchRequest, AppControl replyRequest, AppControlReplyResult result) =>\r
+            {\r
+                ret = result;\r
+            });\r
+            await Task.Delay(4000);\r
+\r
+            /* TEST CODE */\r
+            Assert.True(ret == AppControlReplyResult.Succeeded);\r
+\r
+            /* POSTCONDITION */\r
+            c = new AppControl()\r
+            {\r
+                ApplicationId = "org.tizen.example.RpcPortProxy2"\r
+            };\r
+\r
+            c.ExtraData.Add("Test", "finish");\r
+            AppControl.SendLaunchRequest(c);\r
+            await Task.Delay(2000);\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : OnConnected events")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnConnectedEvent E")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "EVL")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task OnConnectedEvent_CHECK_CB()\r
+        {\r
+            /* PRECONDITION */\r
+            await Task.Delay(4000);\r
+\r
+            /* TEST CODE */\r
+            Assert.True(_proxy.Connected);\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : OnDisconnected events")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnDisconnectedEvent E")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "EVL")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task OnDisconnectedEvent_CHECK_CB()\r
+        {\r
+            /* PRECONDITION */\r
+            await Task.Delay(4000);\r
+            Assert.True(_proxy.Connected);\r
+            var c = new AppControl()\r
+            {\r
+                ApplicationId = "org.tizen.example.RpcPortStub"\r
+            };\r
+            c.ExtraData.Add("Test", "finish");\r
+            AppControl.SendLaunchRequest(c);\r
+            await Task.Delay(4000);\r
+\r
+            /* TEST CODE */\r
+            Assert.True(_proxy.Disconnected);\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : OnRejected events")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnRejectedEvent E")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "EVL")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task OnRejectedEvent_CHECK_CB()\r
+        {\r
+            /* PRECONDITION */\r
+            _proxy?.Dispose();\r
+            _proxy = new Proxy();\r
+            _proxy.ConnectForRejectedEvent();\r
+            await Task.Delay(4000);\r
+\r
+            /* TEST CODE */\r
+            Assert.True(_proxy.Rejected);\r
+\r
+            /* POSTCONDITION */\r
+            var c = new AppControl()\r
+            {\r
+                ApplicationId = "org.tizen.example.RpcPortStub2"\r
+            };\r
+            c.ExtraData.Add("Test", "finish");\r
+            AppControl.SendLaunchRequest(c);\r
+            await Task.Delay(2000);\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : OnReceived events")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.OnReceivedEvent E")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "EVL")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task OnReceivedEvent_CHECK_CB()\r
+        {\r
+            /* PRECONDITION */\r
+            await Task.Delay(4000);\r
+            Assert.True(_proxy.Connected);\r
+            _proxy.SendHello();\r
+            await Task.Delay(4000);\r
+\r
+            /* TEST CODE */\r
+            Assert.NotNull(_proxy.Result);\r
+            Assert.True(_proxy.Result.Equals("hello"));\r
+        }\r
+\r
+        [Test]\r
+        [Category("P2")]\r
+        [Description("Test : GetPort from disconnected object")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.GetPort M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MEX")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task GetPort_CHECK_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            await Task.Delay(4000);\r
+            Assert.True(_proxy.Connected);\r
+            _proxy?.Dispose();\r
+\r
+            /* TEST CODE */\r
+            try\r
+            {\r
+                _proxy.TestGetPort();\r
+            }\r
+            catch (InvalidIOException)\r
+            {\r
+                Assert.Pass();\r
+            }\r
+            finally\r
+            {\r
+                _proxy = null;\r
+            }\r
+\r
+            Assert.Fail();\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : GetPort from proxy object")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.GetPort M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MR")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task GetPort_RETURN()\r
+        {\r
+            /* PRECONDITION */\r
+            await Task.Delay(4000);\r
+            Assert.True(_proxy.Connected);\r
+\r
+            /* TEST CODE */\r
+            _proxy.TestGetPort();\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : Port Property")]\r
+        [Property("SPEC", "Tizen.Applications.RPCPort.ProxyBase.Port A")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "PRO")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task Port_PROPERTY_GET()\r
+        {\r
+            /* PRECONDITION */\r
+            await Task.Delay(4000);\r
+            Assert.True(_proxy.Connected);\r
+\r
+            /* TEST CODE */\r
+            Assert.NotNull(_proxy.GetPort());\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : CallbackPort Property")]\r
+        [Property("SPEC", "Tizen.Applications.RPCPort.ProxyBase.CallbackPort A")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "PRO")]\r
+        [Property("AUTHOR", "Junghoon Park, jh9216.park@samsung.com")]\r
+        public async Task CallbackPort_PROPERTY_GET()\r
+        {\r
+            /* PRECONDITION */\r
+            await Task.Delay(4000);\r
+            Assert.True(_proxy.Connected);\r
+\r
+            /* TEST CODE */\r
+            Assert.NotNull(_proxy.GetCallbackPort());\r
+        }\r
+\r
+        [Test]\r
+        [Category("P1")]\r
+        [Description("Test : Connect to stub application synchronously")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.ConnectSync M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MR")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        public void ConnectSync_RETURN()\r
+        {\r
+            /* PRECONDITION */\r
+            _proxy?.Dispose();\r
+            _proxy = new Proxy();\r
+            _proxy.TestConnectSync();\r
+\r
+            /* TEST CODE */\r
+            Assert.True(_proxy.Connected, "Proxy should be connected");\r
+        }\r
+\r
+        [Test]\r
+        [Category("P2")]\r
+        [Description("Test : Try to reconnect to app synchronously without disposing")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.ConnectSync M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MEX")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        public void ConnectSync_CHECK_INVALID_ID_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            _proxy?.Dispose();\r
+            _proxy = new Proxy();\r
+            _proxy.TestConnectSync();\r
+            Assert.True(_proxy.Connected, "Proxy should be connected");\r
+\r
+            try\r
+            {\r
+                /* TEST CODE */\r
+                _proxy.TestConnectSync();\r
+                Assert.Fail("InvalidIDException should be occurred");\r
+            }\r
+            catch (InvalidIDException)\r
+            {\r
+                Assert.Pass("InvalidIDException occurs");\r
+            }\r
+        }\r
+\r
+        [Test]\r
+        [Category("P2")]\r
+        [Description("Test : Connect to invalid stub application synchronously")]\r
+        [Property("SPEC", " Tizen.Applications.RPCPort.ProxyBase.ConnectSync M")]\r
+        [Property("SPEC_URL", "-")]\r
+        [Property("CRITERIA", "MEX")]\r
+        [Property("AUTHOR", "Hwankyu Jhun, h.jhun@samsung.com")]\r
+        public void ConnectSync_CHECK_INVALID_IO_EXCEPTION()\r
+        {\r
+            /* PRECONDITION */\r
+            _proxy?.Dispose();\r
+            _proxy = new Proxy();\r
+\r
+            try\r
+            {\r
+                /* TEST CODE */\r
+                _proxy.ConnectSyncForInvalidIOException();\r
+                Assert.Fail("InvalidIOException should be occurred");\r
+            }\r
+            catch (InvalidIOException)\r
+            {\r
+                Assert.Pass("InvalidIOException occurs");\r
+            }\r
+        }\r
+    }\r
+}\r