Пример #1
0
        public void StreamTransferSession_Upload_Async()
        {
            StreamTransferSession clientSession;
            LeafRouter            router;

            InitServer();

            router = null;
            try
            {
                SetConfig("DefBlockSize=1000");

                router = new LeafRouter();
                router.Start();
                router.Dispatcher.AddTarget(this);

                clientSession = StreamTransferSession.ClientUpload(router, "logical://Test/Upload", CreateStream(TransferSize));
                clientSession.BeginTransfer(new AsyncCallback(OnClientDone), clientSession);
                clientWait.WaitOne(TimeSpan.FromSeconds(30), false);

                Verify(msServer, TransferSize);
                Assert.IsTrue(serverNotify);
                Assert.IsNull(serverException);
            }
            finally
            {
                if (router != null)
                {
                    router.Stop();
                }

                Config.SetConfig(null);
            }
        }
Пример #2
0
        public void StreamTransferSession_Upload_Sync()
        {
            StreamTransferSession clientSession;
            LeafRouter            router;

            InitServer();

            router = null;
            try
            {
                SetConfig("DefBlockSize=1000");

                router = new LeafRouter();
                router.Start();
                router.Dispatcher.AddTarget(this);

                clientSession      = StreamTransferSession.ClientUpload(router, "logical://Test/Upload", CreateStream(TransferSize));
                clientSession.Args = "Upload";
                clientSession.Transfer();

                Verify(msServer, TransferSize);
                Assert.IsTrue(serverNotify);
                Assert.IsNull(serverException);
                Assert.AreEqual("Upload", serverArgs);
            }
            finally
            {
                if (router != null)
                {
                    router.Stop();
                }

                Config.SetConfig(null);
            }
        }
Пример #3
0
        /// <summary>
        /// Uploads an application package to a remote application store instance.
        /// </summary>
        /// <param name="storeEP">
        /// The application store endpoint or <c>null</c> to query any
        /// application store instance in the cluster.
        /// </param>
        /// <param name="appRef">The <see cref="AppRef" /> for the file.</param>
        /// <param name="path">The path to the application package file.</param>
        public void UploadPackage(MsgEP storeEP, AppRef appRef, string path)
        {
            StreamTransferSession session;

            if (storeEP == null)
            {
                storeEP = settings.ClusterEP;
            }

            session      = StreamTransferSession.ClientUpload(router, storeEP, path);
            session.Args = "appref=" + appRef.ToString();

            session.Transfer();
        }
Пример #4
0
        public void StreamTransferSession_Upload_ErrorOnClient()
        {
            StreamTransferSession clientSession;
            LeafRouter            router;
            IAsyncResult          ar;

            InitServer();

            router = null;
            try
            {
                SetConfig("DefBlockSize=1000");

                router = new LeafRouter();
                router.Start();
                router.Dispatcher.AddTarget(this);

                clientSession               = StreamTransferSession.ClientUpload(router, "logical://Test/Upload", CreateStream(TransferSize));
                clientSession.Delay         = 500;
                clientSession.SimulateError = true;
                ar = clientSession.BeginTransfer(null, null);

                Thread.Sleep(1000);
                clientSession.Cancel();

                clientSession.EndTransfer(ar);
                Assert.Fail("Expected an exception");
            }
            catch
            {
                // Expecting an exception
            }
            finally
            {
                if (router != null)
                {
                    router.Stop();
                }

                Config.SetConfig(null);
            }

            Thread.Sleep(1000);
            Assert.IsTrue(serverNotify);
            Assert.IsInstanceOfType(serverException, typeof(SessionException));
        }
Пример #5
0
        public void StreamTransferSession_Cancel_OnServer()
        {
            StreamTransferSession clientSession;
            LeafRouter            router;

            InitServer();

            router = null;
            try
            {
                SetConfig("DefBlockSize=1000");

                router = new LeafRouter();
                router.Start();
                router.Dispatcher.AddTarget(this);

                simServerCancel = true;

                clientSession       = StreamTransferSession.ClientUpload(router, "logical://Test/Upload", CreateStream(TransferSize));
                clientSession.Delay = 500;
                clientSession.Transfer();
                Assert.Fail("Expected a CancelException");
            }
            catch (SessionException e)
            {
                SysLog.LogException(e);
            }
            catch (Exception e)
            {
                Assert.IsInstanceOfType(e, typeof(CancelException));
            }
            finally
            {
                if (router != null)
                {
                    router.Stop();
                }

                Config.SetConfig(null);
            }

            Thread.Sleep(1000);
            Assert.IsTrue(serverNotify);
            Assert.IsInstanceOfType(serverException, typeof(CancelException));
        }
Пример #6
0
        public void StreamTransferSession_WrongDirection_Upload()
        {
            StreamTransferSession clientSession;
            LeafRouter            router;
            EnhancedMemoryStream  msClient;

            InitServer();

            router = null;
            try
            {
                SetConfig("DefBlockSize=1000");

                router = new LeafRouter();
                router.Start();
                router.Dispatcher.AddTarget(this);

                msServer = CreateStream(TransferSize);
                msClient = new EnhancedMemoryStream();

                clientSession = StreamTransferSession.ClientUpload(router, "logical://Test/Download", msClient);
                clientSession.Transfer();
                Assert.Fail("Expected a SessionException");
            }
            catch (Exception e)
            {
                Assert.IsInstanceOfType(e, typeof(SessionException));
            }
            finally
            {
                if (router != null)
                {
                    router.Stop();
                }

                Config.SetConfig(null);
            }
        }