public void SetUp()
 {
     request = new HttpRequestMessage();
     request.SetConfiguration(new HttpConfiguration());
     authTokenValidatorMock = MockRepository.GenerateMock<IAuthTokenValidator>();
     clientIdCalculatorMock = MockRepository.GenerateMock<ClientIdCalculator>();
     attribute = new ApiAuthenticationAttribute(authTokenValidatorMock, clientIdCalculatorMock);
     var controllerMock = MockRepository.GeneratePartialMock<ApiControllerBase>();
     controllerContext = new HttpControllerContext {Request = request, Controller = controllerMock };
     actionContext = new HttpActionContext(controllerContext, new ReflectedHttpActionDescriptor());
 }
        public void SetUp()
        {
            this.actionExecutingContext = new ActionExecutingContext
            {
                ActionParameters = new Dictionary<string, object>()
            };
            this.userStoreMock = MockRepository.GenerateMock<IUserStore<ApplicationUser>>();
            this.dataProtectionProviderMock = MockRepository.GenerateMock<IDataProtectionProvider>();
            var dataProtector = MockRepository.GenerateMock<IDataProtector>();
            this.dataProtectionProviderMock.Expect(mock => mock.Create(Arg<string>.Is.Anything)).Return(dataProtector);
            this.userManager = new ApplicationUserManager(this.userStoreMock, this.dataProtectionProviderMock);
            clientIdCalculatorMock = MockRepository.GenerateMock<ClientIdCalculator>();
            //need to simulate like the parameter exists on the method
            this.actionExecutingContext.ActionParameters[UserContextAttribute.USER_CONTEXT_KEY] = null;

            HttpContextBase httpContextBase = MockRepository.GenerateMock<HttpContextBase>();
            this.actionExecutingContext.HttpContext = httpContextBase;

            IPrincipal principal = MockRepository.GenerateMock<IPrincipal>();
            httpContextBase.Expect(contextBase => contextBase.User)
                .Repeat.Any()
                .Return(principal);
            this.identity = MockRepository.GenerateMock<IIdentity>();
            principal.Expect(mock => mock.Identity)
                .Repeat.Any()
                .Return(this.identity);
            this.identity.Expect(mock => mock.IsAuthenticated)
                .Repeat.Once()
                .Return(true);

            HttpRequestBase requestBaseMock = MockRepository.GenerateMock<HttpRequestBase>();

            httpContextBase.Expect(mock => mock.Request)
                .Return(requestBaseMock);
            this.requestParameters = new NameValueCollection();
            requestBaseMock.Expect(mock => mock.Params)
                .Return(this.requestParameters);

            this.userContextActionFilter = new UserContextAttribute();
            this.applicationUser = new ApplicationUser()
            {
                Id = "user id",
                CurrentGamingGroupId = 315
            };
            Task<ApplicationUser> task = Task.FromResult(this.applicationUser);
            //TODO can't figure out how to mock the GetUserId() extension method, so have to be less strict here
            this.userStoreMock.Expect(mock => mock.FindByIdAsync(Arg<string>.Is.Anything))
                .Repeat.Once()
                .Return(task);
        }
 public ApiAuthenticationAttribute(IAuthTokenValidator authTokenValidator, ClientIdCalculator clientIdCalculator)
 {
     _authTokenValidator = authTokenValidator;
     _clientIdCalculator = clientIdCalculator;
 }
 public ApiAuthenticationAttribute(IAuthTokenValidator authTokenValidator, ClientIdCalculator clientIdCalculator)
 {
     this.authTokenValidator = authTokenValidator;
     this.clientIdCalculator = clientIdCalculator;
 }