예제 #1
0
        public async void ShouldGet()
        {
            var mockServiceClient = new Mock <IHttpClientWrapper>();
            var mockToAccountManagerModelMapper = new Mock <IMapper <User, LoginModel> >();
            var user = new User()
            {
                Username = "******"
            };

            mockServiceClient
            .Setup(m => m.GetAndReadFromContentGetAsync <User>("api/Account/" + user.Username))
            .Returns(Task.FromResult(user));
            var loginModel = new LoginModel();

            mockToAccountManagerModelMapper
            .Setup(m => m.Map(It.IsAny <User>()))
            .Returns(loginModel);
            var repository = new AccountManagerModelRepository(
                mockServiceClient.Object,
                mockToAccountManagerModelMapper.Object);

            var result = await repository.GetByUsername(user.Username);

            mockToAccountManagerModelMapper.Verify();
            mockServiceClient.Verify();
            Assert.That(result, Is.Not.Null);
            Assert.That(result, Is.EqualTo(loginModel));
        }
예제 #2
0
        protected override bool AuthorizeCore(System.Web.HttpContextBase httpContext)
        {
            var repository = new AccountManagerModelRepository();
            var name       = httpContext.User.Identity.Name;

            if (!string.IsNullOrEmpty(name))
            {
                var roles = Task.Run(async() => await repository.GetByUsername(name)).Result.Roles;

                foreach (var role in roles)
                {
                    if (Roles.Contains(role.Name))
                    {
                        return(true);
                    }
                }
            }

            return(base.AuthorizeCore(httpContext));
        }