Beispiel #1
0
 public void Start(ManageConnection ManageConnectionFunc)
 {
     this.ManageConnectionFunc = ManageConnectionFunc;
     Start();
     boolStopListener = false;
     threadListener   = new Thread(new ThreadStart(MainCycle));
     threadListener.Start();
 }
Beispiel #2
0
        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));
        }
Beispiel #3
0
        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();
        }