示例#1
0
        public void NPServer07_ClientMissing()
        {
            string PipeName      = "Test";
            string VerifyMessage = "TestMessage";

            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
            NPClient Client = new NPClient(PipeName, VerifyMessage);
            bool     MissingMethodException = false;

            try
            {
                Client.Get("Fedfe");
            }
            catch (TimeoutException)
            {
                MissingMethodException = true;
            }
            Assert.IsTrue(MissingMethodException);


            NPServer Server = new NPServer(PipeName, VerifyMessage);

            Server.UpdateCommand("Fedfe", args => { return("Arabe"); });
            Server.Start();
            Assert.AreEqual(Server.IsRunning, true);
            Assert.IsTrue(NPServer.IsNamedPipeOpen(PipeName));

            Assert.AreEqual(Client.Get("Fedfe"), "Arabe");

            Server.Stop().Wait();
            Server.Dispose();
            Assert.AreEqual(Server.IsRunning, false);
            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
        }
示例#2
0
        public void NPServer06_RemoveCommand()
        {
            Trace.WriteLine("NPServer06_RemoveCommand " + Counter++.ToString());
            string PipeName      = "Test";
            string VerifyMessage = "TestMessage";

            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
            using (NPServer Server = new NPServer(PipeName, VerifyMessage))
            {
                Server.UpdateCommand("Arabe", args => { return("Fedfe"); });
                Server.UpdateCommand("ONE", args => { return("1"); });
                Server.Start();
                Assert.AreEqual(Server.IsRunning, true);

                NPClient Client = new NPClient(PipeName, VerifyMessage);
                Assert.AreEqual(Client.Get("Arabe"), "Fedfe");
                Assert.AreEqual(Client.Get("ONE"), "1");

                Server.RemoveCommand("ONE");

                bool MissingMethodException = false;
                try
                {
                    Client.Get("ONE");
                }
                catch (MissingMethodException)
                {
                    MissingMethodException = true;
                }
                Assert.IsTrue(MissingMethodException);
            }
            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
            Trace.WriteLine("END NPServer06_RemoveCommand " + Counter++.ToString());
        }
示例#3
0
        public void NPServer09_GetCustomContract()
        {
            string PipeName      = "Test";
            string VerifyMessage = "TestMessage";

            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));

            NPServer       Server     = new NPServer(PipeName, VerifyMessage);
            CustomContract FromServer = new CustomContract()
            {
                Key = "This is Custom", Value = "Custom Value"
            };

            Server.UpdateCommand("Custom", args => { return(FromServer); });
            Server.Start();

            Assert.AreEqual(Server.IsRunning, true);
            Assert.IsTrue(NPServer.IsNamedPipeOpen(PipeName));

            NPClient       Client = new NPClient(Environment.MachineName, PipeName, VerifyMessage);
            CustomContract result = Client.Get <CustomContract>("Custom");

            Assert.AreEqual(result, FromServer);

            Server.Stop().Wait();
            Server.Dispose();
            Assert.AreEqual(Server.IsRunning, false);
            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
        }
示例#4
0
        public void NPServer05_VerifyMessageIncurrect()
        {
            Trace.WriteLine("NPServer05_VerifyMessageIncurrect " + Counter++.ToString());
            string PipeName          = "Test";
            string VerifyMessage     = "TestMessage";
            string VerifyFailMessage = "ArabeMessage";

            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
            using (NPServer Server = new NPServer(PipeName, VerifyMessage))
            {
                Server.Start();
                Assert.AreEqual(Server.IsRunning, true);
                NPClient Client = new NPClient(PipeName, VerifyFailMessage);
                bool     UnauthorizedAccessException = false;
                try
                {
                    Client.Get("Fedfe");
                }
                catch (UnauthorizedAccessException)
                {
                    UnauthorizedAccessException = true;
                }
                Assert.IsTrue(UnauthorizedAccessException);
                Server.Stop().Wait();
            }
            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
            Trace.WriteLine("END NPServer05_VerifyMessageIncurrect " + Counter++.ToString());
        }
示例#5
0
        public void NPServer03_Command()
        {
            Trace.WriteLine("NPServer03_Command " + Counter++.ToString());
            string PipeName      = "Test";
            string VerifyMessage = "TestMessage";

            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));

            using (NPServer Server = new NPServer(PipeName, VerifyMessage))
            {
                Server.UpdateCommand("3Arabe", args => { return("Fedfe"); });
                Server.UpdateCommand("3ONE", args => { return("1"); });
                Server.UpdateCommand("3Thai", args => { return("ไทย"); });
                Server.UpdateCommand("3ไทย", args => { return("Thai ไทย"); });
                Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
                Server.Start();

                Assert.AreEqual(Server.IsRunning, true);
                Assert.IsTrue(NPServer.IsNamedPipeOpen(PipeName));

                NPClient Client = new NPClient(PipeName, VerifyMessage);
                Assert.AreEqual(Client.Get("3Arabe"), "Fedfe");

                Assert.AreEqual(Server.IsRunning, true);
                Assert.AreEqual(Client.Get("3ONE"), "1");

                Assert.AreEqual(Server.IsRunning, true);


                Assert.AreEqual(Client.Get("3Thai"), "ไทย");
                Assert.AreEqual(Server.IsRunning, true);
                Assert.AreEqual(Client.Get("3ไทย"), "Thai ไทย");
                Assert.AreEqual(Server.IsRunning, true);

                //Update command
                Server.UpdateCommand("3ONE", (o) => { return("New ONE"); });
                Assert.AreEqual(Client.Get("3ONE"), "New ONE");
                Assert.AreEqual(Server.IsRunning, true);

                Server.Stop().Wait();
                Assert.AreEqual(Server.IsRunning, false);
                Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
            }
            Trace.WriteLine("END NPServer03_Command " + Counter++.ToString());
        }
示例#6
0
        public void NPServer10_GetWithArgs()
        {
            string PipeName      = "Test";
            string VerifyMessage = "TestMessage";

            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));

            NPServer Server = new NPServer(PipeName, VerifyMessage);

            Server.UpdateCommand("Add", args => {
                int First  = NPConvertor.ToInt(args[0]);
                int Second = NPConvertor.ToInt(args[1]);
                return(First + Second);
            });
            Server.UpdateCommand("Custom", args => {
                string KEY            = NPConvertor.ToString(args[0]);
                string VALUE          = NPConvertor.ToString(args[1]);
                CustomContract custom = NPConvertor.To <CustomContract>(args[2]);
                return(custom.Key == KEY && custom.Value == VALUE);
            });
            Server.Start();

            NPClient Client = new NPClient(Environment.MachineName, PipeName, VerifyMessage);

            Assert.AreEqual(Client.Get <int>("Add", 1, 2), 3);
            Assert.IsFalse(Client.Get <bool>("Custom", "YES", "SIR", new CustomContract()
            {
                Key = "YES", Value = "ARABE"
            }));
            Assert.IsTrue(Client.Get <bool>("Custom", "YES", "SIR", new CustomContract()
            {
                Key = "YES", Value = "SIR"
            }));

            Server.Stop().Wait();
            Server.Dispose();
            Assert.AreEqual(Server.IsRunning, false);
            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
        }
示例#7
0
        public void NPServer08_Networking()
        {
            string PipeName      = "Test";
            string VerifyMessage = "TestMessage";

            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));

            NPServer Server = new NPServer(PipeName, VerifyMessage);

            Server.UpdateCommand("Fedfe", args => { return("Arabe"); });
            Server.Start();
            Assert.AreEqual(Server.IsRunning, true);
            Assert.IsTrue(NPServer.IsNamedPipeOpen(PipeName));


            NPClient Client = new NPClient(Environment.MachineName, PipeName, VerifyMessage);

            Assert.AreEqual(Client.Get("Fedfe"), "Arabe");

            Server.Stop().Wait();
            Server.Dispose();
            Assert.AreEqual(Server.IsRunning, false);
            Assert.IsFalse(NPServer.IsNamedPipeOpen(PipeName));
        }