public async Task RegisterUserAsyncTest()
        {
            var user   = MockConfigurator.MockUser();
            var policy = MockConfigurator.MockPolicy();

            _userManager.Setup(uManager => uManager.GetClaimsAsync(user))
            .ReturnsAsync(new List <Claim> {
                new Claim(policy.Claim, "true")
            });

            var organisation = new Organisation {
                Users = new List <User> {
                    user
                },
                Policies = new List <Policy> {
                    MockConfigurator.MockPolicy()
                }
            };

            var response = await _authService.RegisterUserAsync(_registrationRequest, organisation, user);

            Assert.Null(response.RefreshToken);
            Assert.Null(response.Token);
            Assert.Same(response.Email, user.Email);
        }
        public async Task OnActionExecutionAsync_SuccessScenario_Test()
        {
            //arrange
            var context = MockConfigurator.MockActionExecutingContext();

            var requestServices = new Mock <IServiceProvider>();
            var config          = new Mock <IConfiguration>();
            var configSection   = new Mock <IConfigurationSection>();

            requestServices.Setup(rServices => rServices.GetService(typeof(IConfiguration))).Returns(config.Object);

            // configSection.Object.Value = DataFixtures.ApiKeyValue;
            configSection.Setup(cSection => cSection.Value).Returns(DataFixtures.ApiKeyValue);

            config.Setup(config => config.GetSection(It.IsAny <String>())).Returns(configSection.Object);

            context.HttpContext.RequestServices = requestServices.Object;

            //add a header to emulate successful response
            context.HttpContext.Request.Headers.Add(ApiKeyAuthAttribute.ApiKeyHeaderName, $"ApiKey {DataFixtures.ApiKeyValue}");

            //act
            await _middleware.OnActionExecutionAsync(context, _next.Object);

            //assert
            Assert.Null(context.Result);
        }
 public void GivenInjectedCache_WhenCreate_ThenContextCacheIsSet()
 {
     using (EducationDataContext actual = EducationDataContextFactory.Create(MockKernel))
     {
         MockConfigurator.AssertWasCalled(m => m.Configure(MockKernel, actual));
     }
 }
Exemplo n.º 4
0
        public async Task GetTokensTest()
        {
            User user   = MockConfigurator.MockUser();
            var  claims = new List <Claim> {
                new Claim(DataFixtures.PolicyClaim1, "true")
            };

            _userManager.Setup(uManager => uManager.GetClaimsAsync(user)).ReturnsAsync(claims);

            var repository = new Mock <IRefreshTokenRepository>();

            repository.Setup(repository => repository.CreateRefreshToken(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(MockConfigurator.MockRefreshToken());

            _unitOfWork.Setup(uOfWork => uOfWork.RefreshTokenRepository).Returns(repository.Object);

            var tokens = await _tokenService.GetTokensAsync(user);

            tokens.TryGetValue("SecurityToken", out string securityToken);
            tokens.TryGetValue("RefreshToken", out string refreshToken);

            Assert.NotNull(tokens);
            Assert.NotNull(securityToken);
            Assert.NotNull(refreshToken);
        }
        public void CanInitializeBuilderBaseWithConfigurator()
        {
            MockConfigurator config = new MockConfigurator();

            IBuilder <BuilderStage> builder = new BuilderBase <BuilderStage>(config);

            Assert.IsTrue(config.WasCalled);
        }
        public async Task LoginUserAsync_FailureScenario_Test()
        {
            var user = MockConfigurator.MockUser();

            _userManager.Setup(uManager => uManager.CheckPasswordAsync(user, _loginRequest.Password))
            .ReturnsAsync(false);

            Assert.Null(await _authService.LoginUserAsync(_loginRequest, user));
        }
        public async Task OnActionExecutionAsync_ApiKeyNotPresent_Test()
        {
            //arrange
            ActionExecutingContext context = MockConfigurator.MockActionExecutingContext();

            //act
            await _middleware.OnActionExecutionAsync(context, _next.Object);

            //assert
            Assert.IsType <UnauthorizedResult>(context.Result);
        }
        public void Configuration_Ctor_Configurator_Propagates()
        {
            MockRequirementSource source       = new MockRequirementSource(Enumerable.Empty <IConfigurationRequirement>());
            MockConfigurator      configurator = new MockConfigurator(source, (x, y) => null);

            Configuration configuration = new Configuration(
                source,
                new Dictionary <IConfigurationRequirement, object>(),
                configurator);

            Assert.AreSame(configurator, configuration.Configurator);
        }
        public async Task ValidateRegistrationAsync_EmailExists_OrganisationExists_Test()
        {
            //arrange
            var organisation = new Mock <Organisation>();
            var user         = MockConfigurator.MockUser();

            _userManager.Setup(uManager => uManager.FindByEmailAsync(_registrationRequest.Email))
            .ReturnsAsync(user);

            //assert
            Assert.Collection(await _authService.ValidateRegistrationAsync(_registrationRequest, organisation.Object, user),
                              item => Assert.DoesNotContain("No Organisation found with the given Organisation Name", item.Message));
        }
        public static void Configure()
        {
            IsConfiguring = true;
            IsConfigured  = false;

            var webExtensionsApi = new WebExtensionsApi(new MockJsRuntimeAdapter());
            var configurator     = new MockConfigurator(webExtensionsApi);

            DefaultMockResolver.Configure(configurator);
            ConfiguredMockResolver.Configure(configurator);

            IsConfiguring = false;
            IsConfigured  = true;
        }
        public async Task ValidateRegistrationAsync_SuccessScenario_Test()
        {
            //arrange
            var organisation = new Mock <Organisation>();
            var user         = MockConfigurator.MockUser();

            _userManager.Setup(uManager => uManager.FindByEmailAsync(_registrationRequest.Email))
            .ReturnsAsync((User)null);

            _userManager.Setup(uManager => uManager.CreateAsync(user, DataFixtures.Password))
            .ReturnsAsync(new IdentityResult());

            //assert
            Assert.Empty(await _authService.ValidateRegistrationAsync(_registrationRequest, organisation.Object, user));
        }
        public async Task LoginUserAsync_SuccessScenario_Test()
        {
            var user = MockConfigurator.MockUser();

            _userManager.Setup(uManager => uManager.CheckPasswordAsync(user, _loginRequest.Password))
            .ReturnsAsync(true);

            var response = await _authService.LoginUserAsync(_loginRequest, user);

            Assert.IsType <LoginResponse>(response);
            Assert.NotNull(response);
            Assert.Same(response.Email, _loginRequest.Email);
            Assert.Null(response.RefreshToken);
            Assert.Null(response.Token);
        }
Exemplo n.º 13
0
        public async Task CanTokenBeRefreshedAsync_TokenDoesNotExistScenario_Test()
        {
            //arrange
            var claimsPrincipal = new ClaimsPrincipal();

            ClaimHelper.GetJTI            = (claimsPrincipal) => DataFixtures.GUID;
            ClaimHelper.GetUnixExpiryDate = (claimsPrincipal) => DateTimeOffset.Now.ToUnixTimeSeconds();

            var refreshToken = MockConfigurator.MockRefreshToken();
            var repository   = new Mock <IRefreshTokenRepository>();

            //assert
            repository.Setup(repository => repository.GetRefreshToken(It.IsAny <string>()))
            .ReturnsAsync((RefreshToken)null);
            _unitOfWork.Setup(uOfWork => uOfWork.RefreshTokenRepository).Returns(repository.Object);

            Assert.Null(await _tokenService.CanTokenBeRefreshedAsync(claimsPrincipal, DataFixtures.RefreshToken));
        }
        public async Task ValidateRegistrationAsync_RegistrationConstraintNotMetScenario_Test()
        {
            //arrange
            var organisation = new Mock <Organisation>();
            var user         = MockConfigurator.MockUser();

            _userManager.Setup(uManager => uManager.FindByEmailAsync(_registrationRequest.Email))
            .ReturnsAsync((User)null);

            var errors = new IdentityError[1] {
                new IdentityError {
                    Description = "Passwords must have at least one non alphanumeric character."
                }
            };

            _userManager.Setup(uManager => uManager.CreateAsync(user, DataFixtures.Password))
            .ReturnsAsync(IdentityResult.Failed(errors));

            Assert.Collection(await _authService.ValidateRegistrationAsync(_registrationRequest, organisation.Object, user),
                              item => Assert.Contains("Passwords must have at least one non alphanumeric character.", item.Message));
        }
Exemplo n.º 15
0
        public async Task RefreshTokenAsyncTest()
        {
            //arrange
            var claimsPrincipal = new ClaimsPrincipal();
            var organisationID  = Guid.NewGuid().ToString();
            var user            = MockConfigurator.MockUser();

            var claims = new List <Claim> {
                new Claim(DataFixtures.PolicyClaim1, "true")
            };

            _userManager.Setup(uManager => uManager.GetClaimsAsync(user)).ReturnsAsync(claims);

            var refreshToken           = MockConfigurator.MockRefreshToken();
            var refreshTokenRepository = new Mock <IRefreshTokenRepository>();

            refreshTokenRepository.Setup(repository => repository.CreateRefreshToken(It.IsAny <string>(), It.IsAny <string>()))
            .Returns(refreshToken);
            _unitOfWork.Setup(uOfWork => uOfWork.RefreshTokenRepository).Returns(refreshTokenRepository.Object);

            string claimName = "ID";

            ClaimHelper.GetNamedClaim     = (claimsPrincipal, claimName) => DataFixtures.GUID;
            ClaimHelper.GetUnixExpiryDate = (claimsPrincipal) => DateTimeOffset.Now.ToUnixTimeSeconds();
            ClaimHelper.GetJTI            = (claimsPrincipal) => DataFixtures.GUID;

            var UserRepository = new Mock <IUserRepository>();

            UserRepository.Setup(repository => repository.GetWithDetailsAsync(It.IsAny <string>(), It.IsAny <string>()))
            .ReturnsAsync(user);
            _unitOfWork.Setup(uOfWork => uOfWork.UserRepository).Returns(UserRepository.Object);

            var response = await _tokenService.RefreshTokenAsync(claimsPrincipal, refreshToken, organisationID);

            //assert
            Assert.NotNull(response);
            Assert.Same(user.Email, response.Email);
        }
Exemplo n.º 16
0
 public void Configure(Mock mock)
 {
     MockConfigurator <T> .Configure((Mock <T>) mock);
 }