Exemple #1
0
    void crearPiezaAvion()
    {
        pieza = RandomObjects.Choose(piezasAvion);

        Vector3 spawnPos = new Vector3(0, 0, 0);

        // Definimos la posición random desde la que saldrá el pajaro
        // Random.onUnitSphere * rangoCreacion elige un punto dentro de una esfera (rangoCreación es el radio de la esfera)
        spawnPos = this.transform.position + Random.onUnitSphere * rangoCreacion;

        //Crear la posición desde la que saldrá el pajaro que va a crearse. Solo variará en el eje y, mientras que la del eje X es la del spawner
        spawnPos = new Vector3(spawnPos.x, this.transform.position.y, 0);


        int rotacion = Random.Range(-1, 2) * Random.Range(10, 45);

        if (rotacion < 0)
        {
            rotacion = 360 + rotacion;
        }

        //Crear una instancia del obejeto pájaro en la posición definida
        GameObject piezas = Instantiate(pieza, spawnPos, Quaternion.AngleAxis(rotacion, Vector3.up));

        Invoke("crearPiezaAvion", Random.Range(4f, 7f));
    }
        public async Task AuthenticateUsingUserName()
        {
            // create a user :
            var user = RandomObjects.RandomUser(new string[] { }).Generate();

            var username   = user.UserName;
            var password   = "******";
            var httpClient = factory.CreateSecureClient();

            var account = await _CreateUser(httpClient, user, password);


            var bindings = new AuthenticateBindings {
                UserName = username, Password = password
            };
            var response = await httpClient.PostAsync($"{TestStartup.PATH}/account/authenticate", new JsonContent(bindings));

            var content = await response.Content.ReadAsStringAsync();

            Assert.True(response.IsSuccessStatusCode, response.ReasonPhrase ?? "");

            var result = JsonConvert.DeserializeObject <ApiModel <AccountDto> >(content);

            Assert.True(result.Result.Success, result.Result.Errors?.FirstOrDefault().Value?.FirstOrDefault() ?? "");

            Assert.Empty(result.Result.Errors);

            var resultUser = result.Value;

            Assert.NotNull(resultUser);
            Assert.True(resultUser.IsAuthenticated);
            Assert.NotNull(resultUser.Token);
            Assert.NotEqual("", resultUser.Token);
        }
        public async Task ReturnCurrentAfterAuthenticateWithToken()
        {
            // create a user :
            var user = RandomObjects.RandomUser(new string[] { }).Generate();

            var username   = user.UserName;
            var password   = "******";
            var httpClient = factory.CreateSecureClient();


            var token = await this._CreateUserAndGetToken(httpClient, user, password);


            var requestMessage = new HttpRequestMessage(HttpMethod.Get, $"{TestStartup.PATH}/account/current");

            requestMessage.Headers.Authorization = new AuthenticationHeaderValue("Bearer", token);

            var response = await httpClient.SendAsync(requestMessage);

            Assert.True(response.IsSuccessStatusCode, response.ReasonPhrase ?? "");

            var content = await response.Content.ReadAsStringAsync();

            var result = JsonConvert.DeserializeObject <ApiModel <AccountDto> >(content);

            Assert.True(result.Result.Success);
            Assert.Empty(result.Result.Errors);

            var resultUser = result.Value;

            Assert.NotNull(resultUser);
            Assert.True(resultUser.IsAuthenticated);
            Assert.Null(resultUser.Token); // no token for current, the token is sent on refresh and login;
        }
        public async Task SendForgetMails()
        {
            // create a user :
            var user = RandomObjects.RandomUser(new string[] { }).Generate();

            var username   = user.UserName;
            var password   = "******";
            var httpClient = factory.CreateSecureClient();


            var token = await this._CreateUserAndGetToken(httpClient, user, password);


            var bindings = new ForgotPasswordBindings {
                UserName = user.UserName
            };

            var authrequest = await httpClient.PostAsync($"{TestStartup.PATH}/account/forgot", new JsonContent(bindings));

            var authcontent = await authrequest.Content.ReadAsStringAsync();

            var authresult = JsonConvert.DeserializeObject <ApiModel <AccountDto> >(authcontent);
            var authuser   = authresult.Value;

            Assert.Null(authuser); // we expect no informations;
            Assert.True(authrequest.IsSuccessStatusCode, authrequest.ReasonPhrase ?? "");

            // emails :
            var recievedEmails = this.factory.EmailSender.Flush();

            // we expect to have recieved a message :
            Assert.NotEmpty(recievedEmails);

            var message = recievedEmails.First().message;

            // find the link in the email =
            var regex = new Regex("href=[\"'].*action=(.+)(&[^\"'])?[\"']", RegexOptions.IgnoreCase);

            Assert.Matches(regex, message);

            var encodedlink = regex.Match(message).Groups[1].Value;
            var actionLink  = WebUtility.UrlDecode(encodedlink);

            // we expect the message to have a link to the reset page:
            var resetroute = "account/reset";

            Assert.Matches(new Regex(resetroute, RegexOptions.IgnoreCase), actionLink);
        }
    void crearNube()
    {
        nube = RandomObjects.Choose(nubes);

        Vector2 spawnPos = new Vector2(0, 0);

        // Definimos la posición random desde la que saldrá el pajaro
        // Random.onUnitSphere * rangoCreacion elige un punto dentro de una esfera (rangoCreación es el radio de la esfera)
        spawnPos = Random.insideUnitCircle * rangoCreacion;

        //Crear la posición desde la que saldrá la nube que va a crearse
        Vector3 spawn = new Vector3(spawnPos.x, this.transform.position.y - 20f, posicionZ);

        //Crear una instancia del obejeto en la posición definida
        Instantiate(nube, spawn, Quaternion.identity);

        Invoke("crearNube", Random.Range(4f, 6f));
    }
Exemple #6
0
    void crearPajaro()
    {
        pajaro = RandomObjects.ChooseWeigther(pajarosPrioridades);

        Vector3 spawnPos = new Vector3(0, 0, 0);

        // Definimos la posición random desde la que saldrá el pajaro
        // Random.onUnitSphere * rangoCreacion elige un punto dentro de una esfera (rangoCreación es el radio de la esfera)
        spawnPos = this.transform.position + Random.onUnitSphere * rangoCreacion;

        //Crear la posición desde la que saldrá el pajaro que va a crearse. Solo variará en el eje y, mientras que la del eje X es la del spawner
        spawnPos = new Vector3(this.transform.position.x, spawnPos.y, 0);

        //Crear una instancia del obejeto pájaro en la posición definida
        GameObject pajaros = Instantiate(pajaro, spawnPos, Quaternion.identity);

        Invoke("crearPajaro", Random.Range(2f, 5.0f));
    }
Exemple #7
0
    void crearBoost()
    {
        boost = RandomObjects.ChooseWeigther(boostPrioridades);

        Vector3 spawnPos = new Vector3(0, 0, 0);

        // Definimos la posici?n random desde la que saldr? el pajaro
        // Random.onUnitSphere * rangoCreacion elige un punto dentro de una esfera (rangoCreaci?n es el radio de la esfera)
        spawnPos = this.transform.position + Random.onUnitSphere * rangoCreacion;

        //Crear la posici?n desde la que saldr? el pajaro que va a crearse. Solo variar? en el eje y, mientras que la del eje X es la del spawner
        spawnPos = new Vector3(spawnPos.x, this.transform.position.y, 0);

        //Crear una instancia del obejeto p?jaro en la posici?n definida
        GameObject boosts = Instantiate(boost, spawnPos, Quaternion.identity);

        Invoke("crearBoost", Random.Range(5f, 7f));
    }
        public async Task ResetsPassword()
        {
            // create a user :
            var user = RandomObjects.RandomUser(new string[] { }).Generate();

            var username    = user.UserName;
            var oldpassword = $"username-Pa$$w0rd-old";
            var httpClient  = factory.CreateSecureClient();


            var token = await this._CreateUserAndGetToken(httpClient, user, oldpassword);

            // forgot his email
            var bindings = new ForgotPasswordBindings {
                UserName = username
            };

            var forgotrequest = await httpClient.PostAsync($"{TestStartup.PATH}/account/forgot", new JsonContent(bindings));

            var forgotcontent = await forgotrequest.Content.ReadAsStringAsync();

            var forgotresult = JsonConvert.DeserializeObject <ApiModel <AccountDto> >(forgotcontent);

            // emails :
            var recievedEmails = this.factory.EmailSender.Flush();

            var message = recievedEmails.First().message;

            // find the link in the email =
            var regex       = new Regex("href=[\"'].*action=(.+)(&[^\"'])?[\"']", RegexOptions.IgnoreCase);
            var encodedlink = regex.Match(message).Groups[1].Value;
            var actionLink  = WebUtility.UrlDecode(encodedlink);

            // // finds the action =
            // var uri = new Uri(actionLink);
            // var action = HttpUtility.ParseQueryString(uri.Query).Get("action");


            var newpassword     = $"username-Pa$$w0rd-reset";
            var encodedPassword = WebUtility.UrlEncode(newpassword);

            // request rest
            var resetrequest = await httpClient.GetAsync($"{actionLink}&password={encodedPassword}");

            var resetcontent = await resetrequest.Content.ReadAsStringAsync();

            var resetresult = JsonConvert.DeserializeObject <ApiModel <AccountDto> >(resetcontent);

            Assert.True(resetrequest.IsSuccessStatusCode, resetrequest.ReasonPhrase ?? "");
            Assert.True(resetresult.Result.Success, resetresult.Result.Errors?.FirstOrDefault().Value?.FirstOrDefault() ?? "");
            Assert.Empty(resetresult.Result.Errors);

            var verifyNewbindings = new AuthenticateBindings {
                UserName = user.UserName, Password = newpassword
            };
            var verifyNewresponse = await httpClient.PostAsync($"{TestStartup.PATH}/account/authenticate", new JsonContent(verifyNewbindings));

            var verifyNewcontent = await verifyNewresponse.Content.ReadAsStringAsync();

            Assert.True(verifyNewresponse.IsSuccessStatusCode, verifyNewresponse.ReasonPhrase ?? "");


            var verifyNewResult = JsonConvert.DeserializeObject <ApiModel <AccountDto> >(verifyNewcontent);

            Assert.True(verifyNewResult.Result.Success, verifyNewResult.Result.Errors?.FirstOrDefault().Value?.FirstOrDefault() ?? "");
            Assert.Empty(verifyNewResult.Result.Errors);

            var resultUser = verifyNewResult.Value;

            Assert.NotNull(resultUser);
            Assert.True(resultUser.IsAuthenticated);
            Assert.NotNull(resultUser.Token);
            Assert.Equal(user.UserName, resultUser.UserName);
            Assert.NotEqual("", resultUser.Token);

            var verifyOldbindings = new AuthenticateBindings {
                UserName = user.UserName, Password = oldpassword
            };
            var verifyOldresponse = await httpClient.PostAsync($"{TestStartup.PATH}/account/authenticate", new JsonContent(verifyOldbindings));

            var verifyOldcontent = await verifyOldresponse.Content.ReadAsStringAsync();

            Assert.True(verifyOldresponse.IsSuccessStatusCode, verifyOldresponse.ReasonPhrase ?? "");


            var verifyOldResult = JsonConvert.DeserializeObject <ApiModel <AccountDto> >(verifyOldcontent);

            Assert.False(verifyOldResult.Result.Success);
            Assert.NotEmpty(verifyOldResult.Result.Errors);

            // var resultOldUser = verifyOldResult.Value;

            // Assert.Null(resultOldUser);
            // Assert.False(resultOldUser.IsAuthenticated);
            // Assert.Null(resultOldUser.Token);
        }