示例#1
0
        public void ReturnRandomGoodFortune()

        {
            Mock <IFortuneRepository>     testFortuneRepository     = new Mock <IFortuneRepository>();
            Mock <IRandomNumberGenerator> testRandomNumberGenerator = new Mock <IRandomNumberGenerator>();

            testFortuneRepository
            .Setup(x => x.GetFortunes("good"))
            .Returns(new[]
            {
                "something good",
                "something pretty good",
                "something great",
                "something silly",
                "something that doesn't make sense"
            });

            testRandomNumberGenerator
            .Setup(x => x.GetRandomNumber(0, 5))
            .Returns(3);

            FortuneTeller testTeller = new FortuneTeller(testFortuneRepository.Object, testRandomNumberGenerator.Object);

            var results = testTeller.GetFortune();

            Assert.AreEqual("something silly", results);
        }
示例#2
0
        public void ReturnRandomTypeFortune()
        {
            Mock <IFortuneRepository>     testFortuneRepository                = new Mock <IFortuneRepository>();
            Mock <IRandomNumberGenerator> testRandomNumberGeneratorFortune     = new Mock <IRandomNumberGenerator>();
            RandomNumberGenerator         testRandomNumberGeneratorFortuneType = new RandomNumberGenerator();
            Dictionary <string, string[]> testFortunesByType;

            string[] fortuneTypes =
            {
                "good",
                "neutral",
                "bad"
            };
            testFortunesByType = new Dictionary <string, string[]>
            {
                {
                    "good",
                    new string[]
                    {
                        "something good",
                        "something pretty good",
                        "something great",
                        "something silly",
                        "something that doesn't make sense"
                    }
                },
                {
                    "neutral",
                    new string[]
                    {
                        "something neutral",
                        "something okay i guess",
                        "meh",
                        "whatever",
                        "idk lol"
                    }
                },
                {
                    "bad",
                    new string[]
                    {
                        "something bad",
                        "something awful",
                        "something silly but still kinda bad",
                        "something terrible",
                        "something that doesn't make any sense"
                    }
                },
            };

            string fortuneType = fortuneTypes[testRandomNumberGeneratorFortuneType.GetRandomNumber(0, fortuneTypes.Length)];

            testFortuneRepository.Setup(
                x => x.GetFortunes(fortuneTypes[0])).Returns(
                testFortunesByType[fortuneType]);

            testRandomNumberGeneratorFortune
            .Setup(x => x.GetRandomNumber(0, 4))
            .Returns(0);

            FortuneTeller testTeller = new FortuneTeller(testFortuneRepository.Object, testRandomNumberGeneratorFortune.Object);
            var           result     = testTeller.GetFortune();

            Assert.Contains(result, new string[]
            {
                "something good",
                "something neutral",
                "something bad"
            });
        }