public void it_should_set_up_dislikes_and_likes_for_characters()
        {
            RandomNumberGenerator      randomNumberGenerator      = new SystemRandomNumberGenerator();
            TagFactory                 tagFactory                 = new TagFactory(randomNumberGenerator);
            ItemFactory                itemFactory                = new ItemFactory(tagFactory);
            CharacterNameGenerator     characterNameGenerator     = new CharacterNameGenerator(randomNumberGenerator);
            CharacterSafeCodeGenerator characterSafeCodeGenerator = new CharacterSafeCodeGenerator(randomNumberGenerator);

            for (int i = 1; i < 51; i++)
            {
                itemFactory.CreateItem("item" + i, "", "", "", new List <String> {
                    "item" + i + "tag1", "commonTag1", "commonTag2"
                });
            }

            CharacterFactory characterFactory = new CharacterFactory(randomNumberGenerator, itemFactory, tagFactory, characterNameGenerator, characterSafeCodeGenerator);
            List <Character> characters       = characterFactory.GenerateCharactersForGame(5);

            Assert.AreEqual(5, characters.Count);
            Assert.AreEqual(5, characters[0].LikeTags.Count);

            Console.WriteLine("Characters:\n");
            foreach (Character character in characters)
            {
                Console.WriteLine(character);
            }
        }
Example #2
0
        public void it_should_be_able_to_generate_a_room_of_items()
        {
            for (int k = 0; k < 1000; k++)
            {
                RandomNumberGenerator randomNumberGenerator = new SystemRandomNumberGenerator();

                TagFactory tagFactory = new TagFactory(randomNumberGenerator);

                ItemFactory itemFactory = new ItemFactory(tagFactory);

                CharacterNameGenerator     characterNameGenerator     = new CharacterNameGenerator(randomNumberGenerator);
                CharacterSafeCodeGenerator characterSafeCodeGenerator = new CharacterSafeCodeGenerator(randomNumberGenerator);

                for (int i = 1; i < 51; i++)
                {
                    itemFactory.CreateItem("item" + i, "", "", "", new List <String> {
                        "item" + i + "tag1", "common"
                    });
                }

                CharacterFactory characterFactory = new CharacterFactory(
                    randomNumberGenerator,
                    itemFactory,
                    tagFactory,
                    characterNameGenerator,
                    characterSafeCodeGenerator
                    );

                List <Character> characters = characterFactory.GenerateCharactersForGame(5);

                RoomFactory roomFactory = new RoomFactory(
                    characterFactory,
                    itemFactory,
                    randomNumberGenerator
                    );

                Room room = roomFactory.GenerateRoomForCharacter(characters[1]);
                //Assert.AreEqual(10, room.Items.Count);

                foreach (Tag tag in characters[1].DislikeTags)
                {
                    foreach (Item item in room.Items)
                    {
                        Console.WriteLine(tag.Name);
                        Assert.False(item.Tags.Contains(tag));
                    }
                }

                Console.WriteLine("Characters:");
                foreach (Character c in characters)
                {
                    Console.WriteLine(c + "\n");
                }
                Console.Write("Room:\n" + room);
            }
        }
Example #3
0
        public void it_should_generate_correctly_padded_codes()
        {
            RandomNumberGenerator randomNumberGenerator = Substitute.For <RandomNumberGenerator>();

            randomNumberGenerator.GetRandomInteger(0, 9999).Returns(0, 1, 2, 3, 5, 10, 20, 100, 200, 1000, 2000, 9999);
            CharacterSafeCodeGenerator characterSafeCodeGenerator = new CharacterSafeCodeGenerator(randomNumberGenerator);

            Assert.AreEqual("0000", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("0001", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("0002", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("0003", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("0005", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("0010", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("0020", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("0100", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("0200", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("1000", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("2000", characterSafeCodeGenerator.GenerateCode());
            Assert.AreEqual("9999", characterSafeCodeGenerator.GenerateCode());
        }