public void CheckValid() { DoLoginResponse doLoginResponse = new DoLoginResponse(); doLoginResponse.Success = true; doLoginResponse.LoginComplete = true; Assert.True(DoLoginResponseValidator.IsValid(doLoginResponse)); }
public void CheckNotSuccessful() { DoLoginResponse doLoginResponse = new DoLoginResponse(); doLoginResponse.Success = false; doLoginResponse.LoginComplete = true; Assert.False(DoLoginResponseValidator.IsValid(doLoginResponse)); }
/// <summary> /// Execute the login. This will take the configuration into consideration /// which can be given as parameter in the constructor. /// </summary> /// <param name="skadiLoginData"> /// Date of the steam login. See <see cref="SkadiLoginData"/>. /// </param> /// <returns> /// It will return a response with login data. /// For more information lookup <see cref="SkadiLoginResponse"/>. /// </returns> public SkadiLoginResponse Execute(SkadiLoginData skadiLoginData) { GetSession(); if (_skadiLoginConfiguration != null && !_skadiLoginConfiguration.StopOnError) { return(ExecuteUntilLogin(skadiLoginData)); } var rsaKey = GetRsaKey(skadiLoginData.Username); var doLoginResponse = DoLogin(rsaKey, skadiLoginData.Username, skadiLoginData.Password, skadiLoginData.SharedSecret); if (!DoLoginResponseValidator.IsValid(doLoginResponse)) { SkadiLoginResponse skadiLoginResponse = new SkadiLoginResponse(); skadiLoginResponse.SkadiLoginError = SkadiLoginErrorFactory.Create(doLoginResponse); return(skadiLoginResponse); } Transfer(doLoginResponse); return(SetSession()); }
private SkadiLoginResponse ExecuteUntilLogin(SkadiLoginData skadiLoginData) { GetSession(); GetRsaKeyResponse rsaKey = new GetRsaKeyResponse(); DoLoginResponse doLoginResponse = new DoLoginResponse(); var doLoginSuccessful = false; do { try { rsaKey = GetRsaKey(skadiLoginData.Username); doLoginResponse = DoLogin(rsaKey, skadiLoginData.Username, skadiLoginData.Password, skadiLoginData.SharedSecret); if (!DoLoginResponseValidator.IsValid(doLoginResponse)) { if (doLoginResponse.CaptchaNeeded) { // TODO: Get exact time for cooldown of captcha! Task.Delay(TimeSpan.FromMinutes(25)); } rsaKey = null; doLoginResponse = null; } else { doLoginSuccessful = true; } } catch (Exception) { Task.Delay( TimeSpan.FromSeconds( _skadiLoginConfiguration.WaitTimeEachError)).Wait(); } }while (doLoginSuccessful == false); bool errorInTransfer = false; do { try { Transfer(doLoginResponse); } catch (Exception) { errorInTransfer = true; Task.Delay(TimeSpan.FromSeconds(5)).Wait(); } } while (errorInTransfer); SkadiLoginResponse skadiLoginResponse = null; do { try { skadiLoginResponse = SetSession(); } catch (Exception) { Task.Delay(TimeSpan.FromSeconds(5)).Wait(); } } while (skadiLoginResponse == null); return(skadiLoginResponse); }