示例#1
0
    public void TestComprarItem()
    {
        _dataManager.Awake();
        _itemsList.Awake();

        //Crear item solo con los datos necesarios para probar el metodo
        Item item = new Item {
            categoria    = "camiseta",
            precio       = 100,
            desbloqueado = false
        };

        //Diccionario y lista
        Dictionary <string, List <Item> > listas = new Dictionary <string, List <Item> >();;
        List <Item> camisetas = new List <Item>();

        camisetas.Add(item);
        listas.Add("camisetas", camisetas);
        _itemsManager.listas = listas;

        //Monedas
        int monedasPrev = 500;

        PlayerPrefs.SetInt("Monedas", monedasPrev);

        //Items desbloqueados (logros)
        float itemsDesbloqueadosPrev = PlayerPrefs.GetFloat("ObjetosConseguidos");

        //Generar panel a partir del prefab
        GameObject panelInfo = UnityEngine.Object.Instantiate(Resources.Load("Prefabs/InfoItem") as GameObject);

        _itemsManager.infoItem = panelInfo;

        //Comprar el item
        _itemsManager.DesbloquearItem("camisetas", 0);

        //Comprobar que el item esta desbloqueado
        Assert.That(item.desbloqueado, Is.True);
        //Comprobar que se ha reducido el numero de monedas
        int monedasPost = PlayerPrefs.GetInt("Monedas");

        Assert.That(monedasPost, Is.EqualTo(monedasPrev - item.precio));
        //Comprobar que hay un item desbloqueado mas
        float itemsDesbloqueadosPost = PlayerPrefs.GetFloat("ObjetosConseguidos");

        Assert.That(itemsDesbloqueadosPost, Is.EqualTo(itemsDesbloqueadosPrev + 1));

        UnityEngine.Object.DestroyImmediate(panelInfo);
    }