public void Detect_No_AllHonors()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForAllTerminals(context, _f.MainPlayerUserName, selfPick: true);

            var round = _f.TestDataContext.Rounds.First();

            var result = new HandTypeBuilder().GetHandType(round, _f.MainPlayerUserName);

            Assert.DoesNotContain(HandType.AllHonors, result);
        }
        public void Detect_InvalidWin()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForInvalidWin(context, _f.MainPlayerUserName, selfPick: true);

            var round = _f.TestDataContext.Rounds.First();

            var result = new HandTypeBuilder().GetHandType(round, _f.MainPlayerUserName);

            Assert.Empty(result);
        }
        public void Detect_ThirteenOrphans()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForThirteenOrphans(context, _f.MainPlayerUserName, selfPick: true);

            var round = _f.TestDataContext.Rounds.First();

            var result = new HandTypeBuilder().GetHandType(round, _f.MainPlayerUserName);

            Assert.Contains(HandType.ThirteenOrphans, result);
        }
        public void Detect_Not_HiddenTreasure()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForTriplets(context, _f.MainPlayerUserName, selfPick: true);

            var round = _f.TestDataContext.Rounds.First();

            var result = new HandTypeBuilder().GetHandType(round, _f.MainPlayerUserName);

            Assert.DoesNotContain(HandType.HiddenTreasure, result);
        }
        public void Detect_HiddenTreasure()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForHiddenTreasure(context, _f.MainPlayerUserName);

            var round = _f.TestDataContext.Rounds.First();

            var result = new HandTypeBuilder().GetHandType(round, _f.MainPlayerUserName);

            Assert.Contains(HandType.HiddenTreasure, result);
        }
        public void Detect_WinOnLastTile()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForExtraPointLastTile(context, _f.MainPlayerUserName, selfPick: true);

            var round = _f.TestDataContext.Rounds.First();

            var result = new ExtraPointBuilder().GetExtraPoint(round, _f.MainPlayerUserName);

            Assert.Contains(ExtraPoint.WinOnLastTile, result);
        }
        public void Detect_AllOneSuit()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForAllOneSuit(context, _f.MainPlayerUserName, selfPick: true);

            var round = _f.TestDataContext.Rounds.First();

            var result = new HandTypeBuilder().GetHandType(round, _f.MainPlayerUserName);

            Assert.Contains(HandType.AllOneSuit, result);
            Assert.Contains(HandType.Chicken, result);
        }
        public void Detect_PrevailingWind()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForExtraPointsPrevailingWind(context, _f.MainPlayerUserName, selfPick: false);

            var round = _f.TestDataContext.Rounds.First();

            var result = new ExtraPointBuilder().GetExtraPoint(round, _f.MainPlayerUserName);

            Assert.Single(result);
            Assert.Contains(ExtraPoint.PrevailingWind, result);
        }
        public void Detect_BigFourWind_Chicken()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForBigFourWind(context, _f.MainPlayerUserName, selfPick: true);

            var round = _f.TestDataContext.Rounds.First();

            var result = new HandTypeBuilder().GetHandType(round, _f.MainPlayerUserName);

            Assert.Contains(HandType.BigFourWind, result);
            Assert.Contains(HandType.MixedOneSuit, result);
            Assert.Contains(HandType.Triplets, result);
        }
        public void Detect_BigDragon_Chicken()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForBigDragon(context, _f.MainPlayerUserName, selfPick: true);

            var round = _f.TestDataContext.Rounds.First();

            var result = new HandTypeBuilder().GetHandType(round, _f.MainPlayerUserName);

            Assert.Equal(2, result.Count());
            Assert.Contains(HandType.BigDragon, result);
            Assert.Contains(HandType.Chicken, result);
        }
        public void Detect_AllFourFlowerSameType()
        {
            var context = _f.TestDataContext;

            WinTilesHelper.SetupForExtraPointFourNumericFlower(context, _f.MainPlayerUserName, selfPick: false);

            var round = _f.TestDataContext.Rounds.First();

            var result = new ExtraPointBuilder().GetExtraPoint(round, _f.MainPlayerUserName);

            Assert.Equal(2, result.Count());
            Assert.Contains(ExtraPoint.NumericFlower, result);
            Assert.Contains(ExtraPoint.AllFourFlowerSameType, result);
        }
Exemple #12
0
        public async Task Should_Be_Invalid_Win()
        {
            var context = _f.TestDataContext;

            //setup common scenario can't win
            WinTilesHelper.SetupForInvalidWin(context, _f.MainPlayerUserName);

            var winCommand = new Win.Command
            {
                GameCode = _f.GameCode,
                RoundId  = _f.RoundId,
                UserName = _f.MainPlayerUserName
            };

            var sut = new Win.Handler(context, _mapper, _f.PointCalculator);
            await Assert.ThrowsAsync <RestException>(() => sut.Handle(winCommand, CancellationToken.None));
        }