예제 #1
0
        private void InitializeContainer(IApplicationBuilder app)
        {
            app.UseSimpleInjectorAspNetRequestScoping(container);
            // Cross-wire ASP.NET services (if any). For instance:
            container.RegisterSingleton(app.ApplicationServices.GetService <ILoggerFactory>());
            // NOTE: Prevent cross-wired instances as much as possible.
            // See: https://simpleinjector.org/blog/2016/07/

            container.RegisterSingleton(Configuration.GetSection("facebook").Get <FacebookAuthOptions>());
            container.RegisterSingleton(Configuration.GetSection("google").Get <GoogleAuthOptions>());
            container.RegisterSingleton(Configuration.GetSection("twitter").Get <TwitterAuthOptions>());
            container.RegisterSingleton <IServiceProvider>(container);
            container.RegisterSingleton <IUserGroupsCollector, UserGroupsCollector>();
            container.RegisterSingleton <IHubUserGroupsProvider, UserGroupsProvider>();
            container.RegisterSingleton <IUserInteractionAdapter, UserInteractionAdapter>();
            container.RegisterSingleton(app.ApplicationServices.GetService <IConnectionManager>);
            container.Register <IWordStorageAdapter, WordStorageAdapter>();
            container.Register <IGameProvider, GameProvider>();
            container.RegisterSingleton <IHttpContextAccessor>(new HttpContextAccessor());
            container.RegisterSingleton <IScheduler>(Scheduler.Default);
            container.Register <IUserGroup, UserGroup>();
            container.RegisterSingleton <IUserVocabularyStorage, UserVocabularyStorage>();

            DependencyResolverHelper.RegisterDependencies(container);
            var registration = container.GetRegistration(typeof(IGameProvider)).Registration;

            registration.SuppressDiagnosticWarning(DiagnosticType.DisposableTransientComponent,
                                                   "UserGroupsCollector is responsible for disposing the object");

            //container.RegisterMvcControllers(app); TODO: throws exception
            container.Verify();
        }
        public override void OnAuthorization(HttpActionContext actionContext)
        {
            var authToken             = actionContext.ControllerContext.Request.GetCurrentBearerAuthrorizationToken();
            var authenticationService = DependencyResolverHelper.GetService <IAuthenticationService>();
            var token = authenticationService.GetByAccessToken(authToken);

            if (token != null)
            {
                if (actionContext.ControllerContext.Controller.GetType().IsSubclassOf(typeof(BaseApiController)))
                {
                    if (((BaseApiController)actionContext.ControllerContext.Controller).Token == null && actionContext.ActionDescriptor.ActionName != "Logout")
                    {
                        authenticationService.RefreshToken(token);
                    }
                    ((BaseApiController)actionContext.ControllerContext.Controller).Token = token.Access_token;
                }
                else
                {
                    authenticationService.RefreshToken(token);
                }
            }

            if (SkipAuthorization(actionContext))
            {
                return;
            }

            if (token == null || token.User == null)
            {
                actionContext.Response = new HttpResponseMessage(HttpStatusCode.Unauthorized)
                {
                    Content = new StringContent("Unauthorized")
                };
            }
        }
예제 #3
0
 public async Task ConcatenateNameAndSurNameFromUrlItemToUrlItemDto()
 {
     await Task.Run(() =>
     {
         var mapper = DependencyResolverHelper.Resolve <IMapper>();
         var test   = mapper.Map <UrlItem, UrlItemDto>(UrlItem.Default);
     });
 }
예제 #4
0
        public async Task ConcatenateNameAndSurNameFromUrlItemToUrlItemDto()
        {
            await Task.Run(() =>
            {
                DependencyResolverHelper.DependencyResolverHelperX();
                var mapper = DependencyResolverHelper.Resolve <IMapper>();

                //var fakeRepository = new MockRepository();
                var actual   = mapper.Map <UrlItem, UrlItemDto>(UrlItem.Default);
                var expected = TestModel.GetExpected();
                actual.Should().BeEquivalentTo(expected);
                //string actual = "ABCDEFGHI";
                //actual.Should().StartWith("AB").And.EndWith("HI").And.Contain("EF").And.HaveLength(9);
            });
        }
예제 #5
0
        public void WhenHelperReturnsNoMessage_FallbackMessageIsSet(string nullOrEmptyString, string fallBackMessage)
        {
            // arrange
            var mockService = new Mock <IValidationMessageService>();

            mockService.Setup(ms => ms.GetValue(It.IsAny <string>(), It.IsAny <string>())).Returns(nullOrEmptyString);
            DependencyResolverHelper.SetValidationMessageServiceIntoResolver(mockService);

            // act
            var validator = new RequiredAttribute();

            validator.Initialise("asdf", "asefasdf", fallBackMessage); // can be any validation attribute

            // assert
            Assert.AreEqual(fallBackMessage, validator.ErrorMessage);
        }
예제 #6
0
        public void WhenNoMessage_DefaultAttributeMessageIsSet_UmbracoValidators(Type type)
        {
            // arrange
            var mockService = new Mock <IValidationMessageService>();

            mockService.Setup(ms => ms.GetValue(It.IsAny <string>(), It.IsAny <string>())).Returns(string.Empty);
            DependencyResolverHelper.SetValidationMessageServiceIntoResolver(mockService);

            var testInstance    = AttributeGeneratorHelper.IntialiseAttribute(type);
            var controlInstance = AttributeGeneratorHelper.IntialiseAttribute(type);

            // act
            testInstance.Initialise("asdf", "asefasdf", string.Empty); // can be any validation attribute

            // assert
            Assert.AreEqual(controlInstance.ErrorMessage, testInstance.ErrorMessage);
        }
예제 #7
0
        public void WhenHelperReturnsMessage_AttributeMessageIsSet()
        {
            // arrange
            var serviceMessage = "I'm the service message";
            var mockService    = new Mock <IValidationMessageService>();

            mockService.Setup(ms => ms.GetValue(It.IsAny <string>(), It.IsAny <string>())).Returns(serviceMessage);
            DependencyResolverHelper.SetValidationMessageServiceIntoResolver(mockService);

            // act
            var validator = new RequiredAttribute();

            validator.Initialise("asdf", "asefasdf"); // can be any validation attribute

            // assert
            Assert.AreEqual(serviceMessage, validator.ErrorMessage);
        }
        public void WhenMessageServiceReturnsNamedValue_ValidationMessageIsSet()
        {
            // arrange
            string validationMessage = "This is the correct message";

            // message service
            var mockService = new Mock <IValidationMessageService>();

            mockService.Setup(ms => ms.GetValue(It.IsAny <string>(), string.Empty)).Returns(validationMessage);

            DependencyResolverHelper.SetValidationMessageServiceIntoResolver(mockService);

            // Act
            var requiredAttribute = new UmbracoRequiredAttribute("asdf");

            // Assert
            Assert.AreEqual(validationMessage, requiredAttribute.ErrorMessage);
        }
        public void WhenMessageServiceReturnsEmptyValue_DefaultValidatorMessageIsSet()
        {
            // arrange
            string validationMessage           = string.Empty;
            string defaultKeyValidationMessage = string.Empty;

            // message service
            var mockService = new Mock <IValidationMessageService>();

            mockService.Setup(ms => ms.GetValue(It.IsAny <string>(), string.Empty)).Returns(validationMessage);


            DependencyResolverHelper.SetValidationMessageServiceIntoResolver(mockService);

            // Act
            var requiredAttribute         = new UmbracoRequiredAttribute("asdf", "adsfasdf");
            var standardRequiredAttribute = new RequiredAttribute();

            // Assert
            Assert.IsNotEmpty(requiredAttribute.ErrorMessage);
            Assert.AreEqual(standardRequiredAttribute.ErrorMessage, requiredAttribute.ErrorMessage);
        }
예제 #10
0
        public PayloadValidatorUnitTest()
        {
            var webHost = WebHost.CreateDefaultBuilder().UseStartup <Startup>().Build();

            _serviceProvider = new DependencyResolverHelper(webHost);
        }
예제 #11
0
        public AutoRefreshingCacheServiceUnitTest()
        {
            var webHost = WebHost.CreateDefaultBuilder().UseStartup <Startup>().Build();

            _serviceProvider = new DependencyResolverHelper(webHost);
        }
        public LinkShortenerServiceUnitTest()
        {
            var webHost = WebHost.CreateDefaultBuilder().UseStartup <Startup>().Build();

            _serviceProvider = new DependencyResolverHelper(webHost);
        }
예제 #13
0
        public JwtTokenHandlerUnitTest()
        {
            var webHost = WebHost.CreateDefaultBuilder().UseStartup <Startup>().Build();

            _serviceProvider = new DependencyResolverHelper(webHost);
        }