public ManageControllerTests()
        {
            //Usermanager mocks
            var userStoreMock              = Substitute.For <IUserStore <ApplicationUser> >();
            var optionsMock                = Substitute.For <IOptions <IdentityOptions> >();
            var passwordHasherMock         = Substitute.For <IPasswordHasher <ApplicationUser> >();
            var userValidatorMock          = Substitute.For <IEnumerable <IUserValidator <ApplicationUser> > >();
            var passwordValidatorMock      = Substitute.For <IEnumerable <IPasswordValidator <ApplicationUser> > >();
            var lookUpNormalizerMock       = Substitute.For <ILookupNormalizer>();
            var identityErrorDescriberMock = Substitute.For <IdentityErrorDescriber>();
            var serviceProviderMock        = Substitute.For <IServiceProvider>();
            var loggerMock = Substitute.For <ILogger <UserManager <ApplicationUser> > >();

            _userManagerMock = Substitute.For <UserManager <ApplicationUser> >(
                userStoreMock,
                optionsMock,
                passwordHasherMock,
                userValidatorMock,
                passwordValidatorMock,
                lookUpNormalizerMock,
                identityErrorDescriberMock,
                serviceProviderMock,
                loggerMock);

            //SignInManager mocks
            var contextAccessorMock       = Substitute.For <IHttpContextAccessor>();
            var claimsPricipleFactoryMock = Substitute.For <IUserClaimsPrincipalFactory <ApplicationUser> >();
            var loggerMockSM = Substitute.For <ILogger <SignInManager <ApplicationUser> > >();

            _signInManagerMock = Substitute.For <SignInManager <ApplicationUser> >(
                _userManagerMock,
                contextAccessorMock,
                claimsPricipleFactoryMock,
                optionsMock,
                loggerMockSM);

            var cookieOptionsMock   = Substitute.For <IOptions <IdentityCookieOptions> >();
            var identityOptionsMock = new IdentityCookieOptions();

            cookieOptionsMock.Value.Returns(identityOptionsMock);

            var emailMock      = Substitute.For <IEmailSender>();
            var smsMock        = Substitute.For <ISmsSender>();
            var loggerMockCtrl = Substitute.For <ILogger <ManageController> >();

            _uut = new ManageController(_userManagerMock, _signInManagerMock, cookieOptionsMock, emailMock, smsMock, loggerMockCtrl).WithDefaultMocks();
        }
        private static void setCookieOptions(IServiceProvider provider, IdentityCookieOptions identityOptionsCookies, SiteSettings siteSettings)
        {
            identityOptionsCookies.ApplicationCookie.CookieName            = siteSettings.CookieOptions.CookieName;
            identityOptionsCookies.ApplicationCookie.CookieHttpOnly        = true;
            identityOptionsCookies.ApplicationCookie.ExpireTimeSpan        = siteSettings.CookieOptions.ExpireTimeSpan;
            identityOptionsCookies.ApplicationCookie.SlidingExpiration     = siteSettings.CookieOptions.SlidingExpiration;
            identityOptionsCookies.ApplicationCookie.LoginPath             = siteSettings.CookieOptions.LoginPath;
            identityOptionsCookies.ApplicationCookie.LogoutPath            = siteSettings.CookieOptions.LogoutPath;
            identityOptionsCookies.ApplicationCookie.AccessDeniedPath      = siteSettings.CookieOptions.AccessDeniedPath;
            identityOptionsCookies.ApplicationCookie.AutomaticChallenge    = true; // For Policy-Based Authorization Handler
            identityOptionsCookies.ApplicationCookie.AutomaticAuthenticate = true;

            var ticketStore = provider.GetService <ITicketStore>();

            ticketStore.CheckArgumentIsNull(nameof(ticketStore));
            identityOptionsCookies.ApplicationCookie.SessionStore = ticketStore; // To manage large identity cookies
        }