public void Start(ManageConnection ManageConnectionFunc) { this.ManageConnectionFunc = ManageConnectionFunc; Start(); boolStopListener = false; threadListener = new Thread(new ThreadStart(MainCycle)); threadListener.Start(); }
public async Task ReturnsUnauthorizedResultIfNotAuthenticated() { // Arrange var request = new DefaultHttpContext().Request; var durableClientMoq = new Mock <IDurableClient>(); var logMoq = new Mock <ILogger>(); // Getting the list of all functions to be validated var functionsToBeCalled = typeof(DfmEndpoint).Assembly.DefinedTypes .Where(t => t.IsClass) .SelectMany(t => t.GetMethods(BindingFlags.Static | BindingFlags.Public)) .Where(m => m.CustomAttributes.Any(a => a.AttributeType == typeof(FunctionNameAttribute))) .Select(m => m.Name) .ToHashSet(); // Only these two methods should be publicly accessible as of today functionsToBeCalled.Remove(nameof(ServeStatics.DfmServeStaticsFunction)); functionsToBeCalled.Remove(nameof(EasyAuthConfig.DfmGetEasyAuthConfigFunction)); // Collecting the list of functions that were actually called by this test var functionsThatWereCalled = new HashSet <string>(); var methodExtractionRegex = new Regex(@"\.(\w+)\(HttpRequest req,"); logMoq.Setup(log => log.Log(It.IsAny <LogLevel>(), It.IsAny <EventId>(), It.IsAny <It.IsAnyType>(), It.IsAny <Exception>(), It.IsAny <Func <It.IsAnyType, Exception, string> >())) .Callback((LogLevel l, EventId i, object s, Exception ex, object o) => { // Ensuring the correct type of exception was raised internally Assert.IsInstanceOfType(ex, typeof(UnauthorizedAccessException)); Assert.AreEqual("No access token provided. Call is rejected.", ex.Message); // Also extracting the function name that was called functionsThatWereCalled.Add(methodExtractionRegex.Match(ex.StackTrace).Groups[1].Value); }); Environment.SetEnvironmentVariable(EnvVariableNames.DFM_HUB_NAME, string.Empty); // Act var results = new List <IActionResult>() { await About.DfmAboutFunction(request, "TestHub", logMoq.Object), await CleanEntityStorage.DfmCleanEntityStorageFunction(request, durableClientMoq.Object, logMoq.Object), await DeleteTaskHub.DfmDeleteTaskHubFunction(request, "TestHub", logMoq.Object), await IdSuggestions.DfmGetIdSuggestionsFunction(request, durableClientMoq.Object, "abc", logMoq.Object), await ManageConnection.DfmManageConnectionFunction(request, "TestHub", new Microsoft.Azure.WebJobs.ExecutionContext(), logMoq.Object), await IdSuggestions.DfmGetIdSuggestionsFunction(request, durableClientMoq.Object, "abc", logMoq.Object), await Orchestration.DfmGetOrchestrationFunction(request, "abc", durableClientMoq.Object, logMoq.Object), await Orchestration.DfmGetOrchestrationHistoryFunction(request, "abc", durableClientMoq.Object, logMoq.Object), await Orchestration.DfmPostOrchestrationFunction(request, "abc", "todo", durableClientMoq.Object, logMoq.Object), await Orchestration.DfmGetOrchestrationTabMarkupFunction(request, "abc", "todo", durableClientMoq.Object, logMoq.Object), await Orchestrations.DfmGetOrchestrationsFunction(request, durableClientMoq.Object, logMoq.Object), await PurgeHistory.DfmPurgeHistoryFunction(request, durableClientMoq.Object, logMoq.Object), await TaskHubNames.DfmGetTaskHubNamesFunction(request, logMoq.Object), }; // Assert results.ForEach(r => Assert.IsInstanceOfType(r, typeof(UnauthorizedResult))); functionsToBeCalled.ExceptWith(functionsThatWereCalled); Assert.IsTrue(functionsToBeCalled.Count == 0, "You forgot to test " + string.Join(", ", functionsToBeCalled)); }
public void TestBlockUser() { //Arrange var controller = new ManagerControllerTests(); //Add Manager User UserDal usrDal = new UserDal(); User managerUser = new User { UserName = "******", Password = "******", rank = 1, Email = "*****@*****.**", EmailConfirmed = true, active = true }; usrDal.Users.Add(managerUser); usrDal.SaveChanges(); managerUser = usrDal.Users.SingleOrDefault(b => b.UserName == "TestManagerUser"); //Add to managing connection ManageConnectionDal magDal = new ManageConnectionDal(); ManageConnection magObj = new ManageConnection { managerId = managerUser.id, institution = 1, sYear = -1, department = -1 }; magDal.ManageConnections.Add(magObj); magDal.SaveChanges(); //Add User to be blocked User blockedUser = new User { UserName = "******", Password = "******", rank = 0, Email = "*****@*****.**", active = true, EmailConfirmed = true }; usrDal.Users.Add(blockedUser); usrDal.SaveChanges(); //Act controller.BlockUser(managerUser, "NewUser", DateTime.Now, 1, -1, -1); //Assert BlockedDal blkdal = new BlockedDal(); List <Blocked> blk = (from x in blkdal.Blockeds where x.UserName == blockedUser.UserName select x).ToList(); Assert.AreEqual(blk[0].UserName.Replace(" ", ""), blockedUser.UserName.Replace(" ", "")); //Clean up usrDal.Users.Remove(managerUser); usrDal.Users.Remove(blockedUser); usrDal.SaveChanges(); magDal.ManageConnections.Remove(magObj); magDal.SaveChanges(); blkdal.Blockeds.Remove(blk[0]); blkdal.SaveChanges(); }