Exemplo n.º 1
0
    public void MoveTowardsNearestFood_Sticky()
    {
        var food       = FoodTest.CreateFood("Apple").gameObject;
        var foodGetter = GetMockFoodGetter(new List <GameObject> {
            food
        });
        var seeker      = GetMockSeeker();
        var foodChooser = GetMockFoodChooser(food);

        var controller = new FoodSeekerController();

        controller.SetFoodGetter(foodGetter);
        controller.SetSeeker(seeker);
        controller.SetFoodChooser(foodChooser);

        controller.MoveTowardsNearestFood();

        seeker.Received().MoveTowards(food);

        var newFood = FoodTest.CreateFood("Orange").gameObject;

        foodGetter.GetNearbyFood().Returns(new List <GameObject> {
            newFood
        });

        seeker.ClearReceivedCalls();
        controller.MoveTowardsNearestFood();

        seeker.Received().MoveTowards(food);
    }
Exemplo n.º 2
0
    public void FavoriteFood()
    {
        var person = new GameObject().AddComponent <Personality> ();

        person.EatFood(FoodTest.CreateFood("Apple"));

        Assert.AreEqual("Apple", person.FavoriteFood());
    }
Exemplo n.º 3
0
    public void ChooseFood_NoFood_ReturnsNull()
    {
        Personality foodChooser = new GameObject().AddComponent <Personality> ();

        var apple = FoodTest.CreateFood("Apple");

        foodChooser.EatFood(apple);

        var foods = new List <GameObject> {
        };

        Assert.Null(foodChooser.ChooseFood(foods));
    }
Exemplo n.º 4
0
    public void SavePersonality()
    {
        Personality person = new GameObject().AddComponent <Personality> ();

        person.EatFood(FoodTest.CreateFood("Apple"));

        person.Save();

        var newPerson = new GameObject().AddComponent <Personality>();

        newPerson.Load();

        Assert.AreEqual(person.foodEaten, newPerson.foodEaten);
    }
Exemplo n.º 5
0
    public void ChooseFood()
    {
        var person = new GameObject().AddComponent <Personality> ();
        var seeker = person.gameObject.AddComponent <FoodSeeker> ();

        person.EatFood(FoodTest.CreateFood("Apple"));

        var foods = new List <GameObject> {
            FoodTest.CreateFood("Apple").gameObject, FoodTest.CreateFood("Pear").gameObject
        };
        var chosen = seeker.ChooseFood(foods);

        Assert.AreEqual("Apple", chosen.GetComponent <Food> ().type);
    }
Exemplo n.º 6
0
    public void ChooseFood_DefaultsToFirst()
    {
        Personality foodChooser = new GameObject().AddComponent <Personality> ();

        var apple  = FoodTest.CreateFood("Apple");
        var orange = FoodTest.CreateFood("Orange");
        var pear   = FoodTest.CreateFood("Pear");

        var foods = new List <GameObject> {
            apple.gameObject, orange.gameObject
        };

        foodChooser.EatFood(pear);

        Assert.AreEqual(apple.gameObject, foodChooser.ChooseFood(foods));
    }
Exemplo n.º 7
0
    public void ChooseFood_ChoosesFood()
    {
        Personality foodChooser = new GameObject().AddComponent <Personality> ();

        var apple  = FoodTest.CreateFood("Apple");
        var orange = FoodTest.CreateFood("Orange");

        var foods = new List <GameObject> {
            apple.gameObject, orange.gameObject
        };

        foodChooser.EatFood(apple);
        foodChooser.EatFood(orange);

        Assert.Contains(foodChooser.ChooseFood(foods), foods);
    }
Exemplo n.º 8
0
    public IEnumerator CharacterMaker_MakesCharacters()
    {
        var maker = new GameObject().AddComponent <CharacterMaker> ();

        maker.interval = 0.5f;

        var person = new GameObject().AddComponent <Personality> ();

        person.EatFood(FoodTest.CreateFood("Apple"));
        person.Save();

        yield return(new WaitForSeconds(0.6f));

        var character = GameObject.FindGameObjectWithTag("Character");

        Assert.IsNotNull(character);
        Assert.IsNotNull(character.GetComponent <Personality> ());
        Assert.AreEqual("Apple", character.GetComponent <Personality> ().FavoriteFood());
    }
Exemplo n.º 9
0
    public void MoveTowardsNearestFood()
    {
        var food       = FoodTest.CreateFood("Apple").gameObject;
        var foodGetter = GetMockFoodGetter(new List <GameObject> {
            food
        });
        var foodChooser = GetMockFoodChooser(food);

        var seeker = GetMockSeeker();

        var controller = new FoodSeekerController();

        controller.SetFoodGetter(foodGetter);
        controller.SetSeeker(seeker);
        controller.SetFoodChooser(foodChooser);

        controller.MoveTowardsNearestFood();

        seeker.Received().MoveTowards(food);
    }
Exemplo n.º 10
0
    public void ChooseFood_ChoosesByWeight()
    {
        Personality foodChooser = new GameObject().AddComponent <Personality> ();

        var apple  = FoodTest.CreateFood("Apple");
        var orange = FoodTest.CreateFood("Orange");

        var foods = new List <GameObject> {
            apple.gameObject, orange.gameObject
        };

        foodChooser.EatFood(apple);
        foodChooser.EatFood(orange);
        foodChooser.EatFood(orange);

        foodChooser.SetRandom(new TestRandom(0));

        Assert.AreEqual(apple.gameObject, foodChooser.ChooseFood(foods));

        foodChooser.SetRandom(new TestRandom(3));

        Assert.AreEqual(orange.gameObject, foodChooser.ChooseFood(foods));
    }