Пример #1
0
 public void TestBadFolderRouting(string requestedPath, string routedPath)
 {
     Assert.Throws <Exception>(() => {
         IRoute route = new FolderRoute(requestedPath, routedPath);
         route.ValidateSetup();
     });
 }
Пример #2
0
        public void TestFolderRouting(string incomingPath, string expectedRoute)
        {
            IRoute folderRoute = new FolderRoute("/a/", "/b/");

            Assert.True(folderRoute.RequestMatchesPath(incomingPath));
            Assert.Equal(expectedRoute, folderRoute.TranslateRequestToRoutedPath(incomingPath));
        }
Пример #3
0
        //
        // Set routes that have backup/redundant folders to fail partially
        //
        void SetRoutesToFail(FolderRoute route, int failureFraction)
        {
            int countToFail = route.CopyFolders.Length / failureFraction;

            for (int i = 0; i < countToFail; ++i)
            {
                route.CopyFolders[i] = string.Empty;
            }
        }
Пример #4
0
#pragma warning restore CS0169 // The field 'SubFolderManager.FolderPathType' is never used

        public SubFolderManager(FolderRoute fr)
        {
            FolderRoute = fr;

            FolderRoute.PathChange   += onPathPathChangeEvent;
            FolderRoute.SelectFolder += onPathSelectFolderEvent;

            sf = new SelectFolder();
        }
Пример #5
0
        void SetRoutesToFailRandom(FolderRoute route, int failureFraction)
        {
            Random random      = new Random();
            int    countToFail = route.CopyFolders.Length / failureFraction;

            for (int i = 0; i < countToFail; ++i)
            {
                int failIndex = random.Next(0, route.CopyFolders.Length);
                route.CopyFolders[failIndex] = string.Empty;
            }
        }
Пример #6
0
        void RoundRobinTest(FolderRoute route)
        {
            int folderCount = route.CopyFolders.Length;
            int prevFolder  = -1;
            int folderIndex = -1;

            DummySmtpMessage message = new DummySmtpMessage();

            for (int i = 0; i <= folderCount; ++i)
            {
                folderIndex = -1;
                Assert.True(route.LoadBalancer.ProcessRoundRobin(message, out folderIndex));
                if (i == folderCount)
                {
                    Assert.True(folderIndex == 0);
                }
                else
                {
                    Assert.True(folderIndex > prevFolder && folderIndex < folderCount);
                }
                prevFolder = folderIndex;
            }
        }
Пример #7
0
 public void TestRoutingInit()
 {
     _ = new FileRoute("/a/test", "/b/test");
     _ = new FolderRoute("/a/", "/b/");
 }