예제 #1
0
 public CustomPrincipal(UserDto userDto, CompanyDto companyDto)
 {
     Identity = new GenericIdentity(GetUserIdentity(userDto));
     UserId = userDto.Id;
     CompanyId = userDto.CompanyId;
     FullName = userDto.Employee != null ? userDto.Employee.FullName : null;
     Email = userDto.Employee != null && userDto.Employee.MainContactDetails != null && userDto.Employee.MainContactDetails.Email != null ? userDto.Employee.MainContactDetails.Email: string.Empty;
     CompanyName = companyDto.CompanyName;
     _allowableSites = userDto.AllowedSites;
     _permissions = userDto.Permissions;
 }
 private CompanyDto GetCompanyDto(int companyId)
 {
     CompanyDto companyDto;
     var companyKey = CreateCompanyKey(companyId);
     if (_cacheHelper.Load(companyKey, out companyDto) == false)
     {
         var companyDetailsDto = _clientService.GetCompanyDetails(companyId);
         companyDto = new CompanyDto()
                          {
                              Id = companyDetailsDto.Id,
                              CompanyName = companyDetailsDto.CompanyName
                          };
         _cacheHelper.Add(companyDto, companyKey, CacheTime.OneDay);
     }
     return companyDto;
 }
        private static CustomPrincipal CreateCustomPrinciple(IEnumerable<string> permissions, string companyName = "")
        {
            var userDto = new UserDto()
            {
                Id = Guid.Empty,
                CompanyId = 0,
                Permissions = permissions
            };
            
            var companyDto = new CompanyDto()
            {
                CompanyName = companyName,
                Id = 100L
            };

            var customPrinciple = new CustomPrincipal(userDto, companyDto);
            return customPrinciple;
        }
        public void Given_user_not_in_cache_and_company_in_cache_When_create_custom_principal_Then_should_call_correct_methods()
        {
            // Given
            string userCacheKey = "User:"******"Company:" + _companyId;

            var target = CreateTarget();

            _userService
                .Setup(x => x.GetByIdAndCompanyIdIncludeDeleted(_userId, _companyId))
                .Returns(_userDto);

            var companyDto = new CompanyDto();
            _cacheHelper
                .Setup(x => x.Load(companyCacheKey, out companyDto))
                .Returns(true);

            // When
            target.Create(_companyId, _userId);

            // Then
            _cacheHelper.Verify(x => x.Add(_userDto, userCacheKey, 1));
            _userService.VerifyAll();
            _cacheHelper.Verify(x => x.Add(It.Is<CompanyDto>(y => y.CompanyName == _companyDto.CompanyName), companyCacheKey, 1440),Times.Never());
        }