Example #1
0
        public async Task InitializeAsync()
        {
            //_Connection = new SqliteConnection("Data Source=:memory:");
            //_DbContext = new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlite(_Connection).Options);

            _Connection = new SqlConnection("Data Source=.;Database=WorkflowControllerPostSecretTests;Integrated Security=True");
            _DbContext  = new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlServer(_Connection).Options);

            _FakeNumbers = new FakeNumberGen();

            _Factory = WithWebHostBuilder(builder =>
            {
                builder.ConfigureTestServices(services =>
                {
                    services.AddScoped(sp =>
                    {
                        var context =
                            //new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlite(_Connection).Options);
                            new WorkflowDbContext(new DbContextOptionsBuilder().UseSqlServer(_Connection).Options);
                        context.BeginTransaction();
                        return(context);
                    });


                    services.Replace(new ServiceDescriptor(typeof(IRandomNumberGenerator), _FakeNumbers));
                });
            });

            await _DbContext.Database.EnsureDeletedAsync();

            await _DbContext.Database.EnsureCreatedAsync();

            //await _Connection.OpenAsync();
        }
        public void Test_ScoreSixes()
        {
            int expectedScore = 30;

            int[] numbers = new int[] { 6, 6, 6, 6, 6 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            Assert.AreEqual(expectedScore, scores.ScoreSectionUpper[YahtzeeScorecard.Upper.Sixes]);
        }
        public void Test_ScoreChance()
        {
            int expectedScore = 15;

            int[] numbers = new int[] { 1, 2, 4, 3, 5 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            Assert.AreEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.Chance]);
        }
        public void Test_ScoreYahtzee()
        {
            int expectedScore = YahtzeeScorecard.SCORE_YAHTZEE;

            int[] numbers = new int[] { 6, 6, 6, 6, 5 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            Assert.AreNotEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.Yahtzee]);
        }
        public void Test_ScoreLargeStraight()
        {
            int expectedScore = YahtzeeScorecard.SCORE_LARGESTRAIGHT;

            int[] numbers = new int[] { 1, 2, 4, 3, 5 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            Assert.AreEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.LargeStraight]);
        }
        public void Test_ScoreFullHouse()
        {
            int expectedScore = YahtzeeScorecard.SCORE_FULLHOUSE;

            int[] numbers = new int[] { 2, 2, 5, 5, 5 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            Assert.AreEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.FullHouse]);
        }
        public void Test_ScoreFourOfAKind()
        {
            int expectedScore = 21;

            int[] numbers = new int[] { 5, 5, 5, 5, 1 };

            FakeNumberGen fakeNumberGen = new FakeNumberGen(numbers);
            YahtzeeDice   dice          = new YahtzeeDice(fakeNumberGen);

            dice.Roll();

            YahtzeeScorecard scores = dice.CalculateScores();

            // Dice match both three and four of a kind
            Assert.AreEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.ThreeOfAKind]);
            Assert.AreEqual(expectedScore, scores.ScoreSectionLower[YahtzeeScorecard.Lower.FourOfAKind]);
        }