public void TestBadFolderRouting(string requestedPath, string routedPath) { Assert.Throws <Exception>(() => { IRoute route = new FolderRoute(requestedPath, routedPath); route.ValidateSetup(); }); }
public void TestFolderRouting(string incomingPath, string expectedRoute) { IRoute folderRoute = new FolderRoute("/a/", "/b/"); Assert.True(folderRoute.RequestMatchesPath(incomingPath)); Assert.Equal(expectedRoute, folderRoute.TranslateRequestToRoutedPath(incomingPath)); }
// // 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; } }
#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(); }
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; } }
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; } }
public void TestRoutingInit() { _ = new FileRoute("/a/test", "/b/test"); _ = new FolderRoute("/a/", "/b/"); }