public void testFindUrl_MultiSite1()
        {
            Dictionary <string, string> _config = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "printxml", "false" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },

                { "multiSite", "true" },
                { "printMultiSiteDebug", "true" },
                { "url", legacyUrl },
                { "multiSiteUrl1", site1Url },
                { "multiSiteUrl2", site2Url },
                { "multiSiteErrorThreshold", "4" },
                { "maxHoursWithoutSwitch", "48" }
            };

            CommManager.reset();
            CommManager cmg = CommManager.instance(_config);

            Assert.IsNotNull(cmg);
            Assert.IsTrue(cmg.getMultiSite());
            RequestTarget rt = cmg.findUrl();

            Assert.AreEqual(cmg.getMultiSiteUrls()[cmg.getCurrentMultiSiteUrlIndex()], rt.getUrl());
            Assert.True(rt.getUrl().Equals(site1Url) || rt.getUrl().Equals(site2Url));
        }
        public void testInstanceMultiSite()
        {
            Dictionary <string, string> _config = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "multiSite", "true" },
                { "printxml", "false" },
                { "printMultiSiteDebug", "true" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },
                { "url", legacyUrl },
                { "multiSiteUrl1", site1Url },
                { "multiSiteUrl2", site2Url },
                { "multiSiteErrorThreshold", "4" },
                { "maxHoursWithoutSwitch", "48" }
            };

            CommManager.reset();
            CommManager cmg = CommManager.instance(_config);

            Assert.IsNotNull(cmg);
            Assert.IsTrue(cmg.getMultiSite());
            Assert.AreEqual(cmg.getMultiSiteThreshold(), 4);
            Assert.AreEqual(cmg.getMultiSiteUrls().Count(), 2);
        }
            public void runPerformanceTest()
            {
                Random rand                 = new Random();
                long   startTime            = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond;
                long   totalTransactionTime = 0;

                for (int n = 0; n < cycleCount; n++)
                {
                    requestCount++;
                    RequestTarget target = CommManager.instance(config).findUrl();
                    try
                    {
                        int sleepTime = 100 + rand.Next(500);
                        totalTransactionTime += sleepTime;
                        Thread.Sleep(sleepTime);
                    }
                    catch (Exception e)
                    {
                        Console.WriteLine(e.ToString());
                    }
                    CommManager.instance(config).reportResult(target, CommManager.REQUEST_RESULT_RESPONSE_RECEIVED, 200);
                }
                long duration = DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond - startTime;

                Console.WriteLine("Thread " + threadId + " completed. Total Requests:" + requestCount + "  Elapsed Time:" + (duration / 1000) + " secs    Average Txn Time:" + (totalTransactionTime / requestCount) + " ms");
            }
        public void testFindUrl_MultiSiteMaxHours()
        {
            // test that url is switched when number of hours since last switch exceeds threshold
            Dictionary <string, string> _config = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "printxml", "false" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },

                { "multiSite", "true" },
                { "printMultiSiteDebug", "true" },
                { "url", legacyUrl },
                { "multiSiteUrl1", site1Url },
                { "multiSiteUrl2", site2Url },
                { "multiSiteErrorThreshold", "3" },
                { "maxHoursWithoutSwitch", "4" }
            };

            CommManager.reset();
            CommManager cmg = CommManager.instance(_config);

            Assert.IsNotNull(cmg);
            Assert.IsTrue(cmg.getMultiSite());
            Assert.AreEqual(cmg.getMultiSiteThreshold(), 3);

            RequestTarget rt1 = cmg.findUrl();

            Assert.AreEqual(cmg.getMultiSiteUrls()[cmg.getCurrentMultiSiteUrlIndex()], rt1.getUrl());
            cmg.reportResult(rt1, CommManager.REQUEST_RESULT_RESPONSE_RECEIVED, 200);
            RequestTarget rt2 = cmg.findUrl();

            Assert.AreEqual(rt1.getUrl(), rt2.getUrl());
            cmg.reportResult(rt2, CommManager.REQUEST_RESULT_RESPONSE_RECEIVED, 200);

            // set last switch time to 6 hours earlier
            DateTime gc = new DateTime(cmg.getLastSiteSwitchTime() * 10000);

            gc = gc.Add(new System.TimeSpan(-6, 0, 0));
            cmg.setLastSiteSwitchTime((gc.Ticks / 10000));

            RequestTarget rt3 = cmg.findUrl();

            Assert.IsFalse(rt3.getUrl().Equals(rt1.getUrl()));
        }
        public void testFindUrl_MultiSite2()
        {
            // test that url is switched when errors reach threshold
            Dictionary <string, string> _config = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "printxml", "false" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },

                { "multiSite", "true" },
                { "printMultiSiteDebug", "false" },
                { "url", legacyUrl },
                { "multiSiteUrl1", site1Url },
                { "multiSiteUrl2", site2Url },
                { "multiSiteErrorThreshold", "3" },
                { "maxHoursWithoutSwitch", "48" }
            };

            CommManager.reset();
            CommManager cmg = CommManager.instance(_config);

            Assert.IsNotNull(cmg);
            Assert.IsTrue(cmg.getMultiSite());
            Assert.AreEqual(cmg.getMultiSiteThreshold(), 3);

            RequestTarget rt1 = cmg.findUrl();

            Assert.AreEqual(cmg.getMultiSiteUrls()[cmg.getCurrentMultiSiteUrlIndex()], rt1.getUrl());
            cmg.reportResult(rt1, CommManager.REQUEST_RESULT_RESPONSE_TIMEOUT, 0);
            RequestTarget rt2 = cmg.findUrl();

            Assert.AreEqual(rt1.getUrl(), rt2.getUrl());
            cmg.reportResult(rt2, CommManager.REQUEST_RESULT_RESPONSE_TIMEOUT, 0);
            RequestTarget rt3 = cmg.findUrl();

            Assert.AreEqual(rt1.getUrl(), rt3.getUrl());
            cmg.reportResult(rt3, CommManager.REQUEST_RESULT_RESPONSE_TIMEOUT, 0);
            Assert.AreEqual(cmg.getErrorCount(), 3);

            RequestTarget rt4 = cmg.findUrl();

            Assert.IsFalse(rt4.getUrl().Equals(rt1.getUrl()));
        }
Esempio n. 6
0
        static void Main()
        {
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
            //捕获线程未处理异常
            AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;

            CommandProcessor.instance().Start(false);

            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            string[] f = Assembly.GetEntryAssembly().GetManifestResourceNames();
            Infragistics.Win.AppStyling.StyleManager.Load(System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream("SystemMon.Skin.MyElectricBlue.isl"));

            Application.Run(new Form_Main());

            CommManager.instance().Stop();
            CommandProcessor.instance().Stop();
        }
        public void testInstanceMultiSiteNoUrls()
        {
            Dictionary <string, string> _config = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "multiSite", "true" },
                { "printxml", "false" },
                { "printMultiSiteDebug", "true" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },
                { "url", legacyUrl }
            };

            CommManager.reset();
            CommManager cmg = CommManager.instance(_config);

            Assert.IsNotNull(cmg);
            Assert.IsFalse(cmg.getMultiSite());
        }
        public void testInstanceLegacy()
        {
            Dictionary <string, string> _config = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "multiSite", "false" },
                { "printxml", "false" },
                { "printMultiSiteDebug", "true" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },
                { "url", legacyUrl }
            };

            CommManager.reset();
            CommManager cmg = CommManager.instance(_config);

            Assert.IsNotNull(cmg);
            Assert.IsFalse(cmg.getMultiSite());
            Assert.AreEqual(legacyUrl, cmg.getLegacyUrl());

            Dictionary <string, string> _config2 = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "multiSite", "false" },
                { "printxml", "false" },
                { "printMultiSiteDebug", "true" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },
                { "url", "https://nowhere.com" }
            };
            CommManager cmg2 = CommManager.instance(_config2);

            Assert.AreEqual(legacyUrl, cmg2.getLegacyUrl());  // should be same manager as previous
        }
        public void testReportResult_NotMultiSite()
        {
            Dictionary <string, string> _config = new Dictionary <string, string>
            {
                { "proxyHost", "websenseproxy" },
                { "proxyPort", "8080" },
                { "multiSite", "false" },
                { "printxml", "false" },
                { "printMultiSiteDebug", "true" },
                { "merchantId", "101" },
                { "username", "DOTNET" },
                { "password", "TESTCASE" },
                { "url", legacyUrl }
            };

            CommManager.reset();
            CommManager cmg = CommManager.instance(_config);

            Assert.IsNotNull(cmg);
            Assert.IsFalse(cmg.getMultiSite());
            Assert.AreEqual(legacyUrl, cmg.getLegacyUrl());
            cmg.reportResult(new RequestTarget("", 1), 1, 0);
        }