public void LoginMfaAuthorizationTest_ChecksIfMfaAuthorizationIsDoneSuccessfully_VerifiesThroughReturnValue() { ILoginApplicationService loginApplicationService = (ILoginApplicationService)_applicationContext["LoginApplicationService"]; ILogoutApplicationService logoutApplicationService = (ILogoutApplicationService)_applicationContext["LogoutApplicationService"]; IMfaSubscriptionRepository mfaSubscriptionRepository = (IMfaSubscriptionRepository)_applicationContext["MfaSubscriptionRepository"]; IMfaCodeGenerationService mfaCodeGenerationService = (IMfaCodeGenerationService)ContextRegistry.GetContext()["MfaCodeGenerationService"]; Assert.IsNotNull(loginApplicationService); IRegistrationApplicationService registrationService = (IRegistrationApplicationService)_applicationContext["RegistrationApplicationService"]; string username = "******"; string activationKey = registrationService.CreateAccount(new SignupUserCommand( "*****@*****.**", username, "alice", "Wonderland", TimeZone.CurrentTimeZone, "")); Assert.IsNotNull(activationKey); IUserApplicationService userApplicationService = (IUserApplicationService)_applicationContext["UserApplicationService"]; bool accountActivated = userApplicationService.ActivateAccount(new ActivationCommand(activationKey, "Bob", "alice")); Assert.IsTrue(accountActivated); UserValidationEssentials userValidationEssentials = loginApplicationService.Login(new LoginCommand("Bob", "alice")); Assert.IsNotNull(userValidationEssentials); Assert.IsNotNull(userValidationEssentials.ApiKey); Assert.IsNotNull(userValidationEssentials.SecretKey); Assert.IsNotNull(userValidationEssentials.SessionLogoutTime); IList <MfaSubscription> allSubscriptions = mfaSubscriptionRepository.GetAllSubscriptions(); List <Tuple <string, string, bool> > mfaSubscriptions = new List <Tuple <string, string, bool> >(); foreach (var subscription in allSubscriptions) { mfaSubscriptions.Add(new Tuple <string, string, bool>(subscription.MfaSubscriptionId, subscription.MfaSubscriptionName, true)); } SubmitMfaSettingsResponse submitMfaSettingsResponse = userApplicationService.SubmitMfaSettings( new MfaSettingsCommand(false, null, userValidationEssentials.ApiKey, mfaSubscriptions)); Assert.IsTrue(submitMfaSettingsResponse.Successful); logoutApplicationService.Logout(new LogoutCommand(userValidationEssentials.ApiKey)); UserValidationEssentials validationEssentials = loginApplicationService.Login(new LoginCommand("Bob", "alice", null)); Assert.IsFalse(validationEssentials.LoginSuccessful); Assert.IsNull(validationEssentials.ApiKey); // As we are using the stub implementation for MfaCodeGenerationService, the service returns only the same code every // time. So we can use the code in this test case validationEssentials = loginApplicationService.Login(new LoginCommand("Bob", "alice", mfaCodeGenerationService.GenerateCode())); Assert.IsTrue(validationEssentials.LoginSuccessful); Assert.IsNotNull(validationEssentials.ApiKey); Assert.IsNotNull(validationEssentials.SecretKey); }
public void LogoutSuccessTest_TestsIfAUserGetsLogoutAsExpected_FailsIfDoesNot() { ILoginApplicationService loginApplicationService = (ILoginApplicationService)_applicationContext["LoginApplicationService"]; Assert.IsNotNull(loginApplicationService); IRegistrationApplicationService registrationService = (IRegistrationApplicationService)_applicationContext["RegistrationApplicationService"];; // Register string username = "******"; string password = "******"; string activationKey = registrationService.CreateAccount(new SignupUserCommand( "*****@*****.**", username, password, "Wonderland", TimeZone.CurrentTimeZone, "")); Assert.IsNotNull(activationKey); IUserApplicationService userApplicationService = (IUserApplicationService)_applicationContext["UserApplicationService"]; IUserRepository userRepository = (IUserRepository)_applicationContext["UserRepository"]; // Activate account bool accountActivated = userApplicationService.ActivateAccount(new ActivationCommand(activationKey, username, password)); Assert.IsTrue(accountActivated); User userByUserName = userRepository.GetUserByUserName(username); Assert.IsNotNull(userByUserName); Assert.IsTrue(userByUserName.IsActivationKeyUsed.Value); // Login UserValidationEssentials userValidationEssentials = loginApplicationService.Login(new LoginCommand(username, password)); Assert.IsNotNull(userValidationEssentials); Assert.IsNotNull(userValidationEssentials.ApiKey); Assert.IsNotNull(userValidationEssentials.SecretKey); Assert.IsNotNull(userValidationEssentials.SessionLogoutTime); // Logout ILogoutApplicationService logoutApplicationService = (ILogoutApplicationService)_applicationContext["LogoutApplicationService"]; Assert.IsNotNull(logoutApplicationService); bool logout = logoutApplicationService.Logout(new LogoutCommand(userValidationEssentials.ApiKey)); Assert.IsTrue(logout); ISecurityKeysRepository securityKeysRepository = (ISecurityKeysRepository)_applicationContext["SecurityKeysPairRepository"]; SecurityKeysPair securityKeysPair = securityKeysRepository.GetByApiKey(userValidationEssentials.ApiKey); Assert.IsNull(securityKeysPair); }
/// <summary> /// Parameterized constructor /// </summary> /// <param name="logoutApplicationService"></param> public LogoutController(ILogoutApplicationService logoutApplicationService) { _logoutApplicationService = logoutApplicationService; }
public void LogoutServiceInitializationAndInjectiontest_ChecksIfTheServiceGetsInitializedUsingSpring_FailsIfNot() { ILogoutApplicationService logoutApplicationService = (ILogoutApplicationService)_applicationContext["LogoutApplicationService"]; Assert.IsNotNull(logoutApplicationService); }