Пример #1
0
        public void TestCreateRespinSpinBonus()
        {
            // Arrange
            var user   = new UserGameKey(-1, 80);
            var result = new GeniesLuckResult()
            {
                Wheel = new GeniesLuckWheel {
                    Reels = new List <int[]> {
                        new[] { 9, 9, 9 }, new[] { 1, 2, 3 }, new[] { 2, 3, 4 }, new[] { 4, 6, 5 }, new[] { 5, 2, 1 }
                    }
                },
                BonusPositions = new List <BonusPosition> {
                    new BonusPosition {
                        Line = 1, Multiplier = 1, RowPositions = new List <int> {
                            1, 0, 0, 0, 0
                        }
                    }
                },
                Bonus = new Stake(Guid.NewGuid(), 4)
                {
                    Count = 3
                }
            };
            // action
            var bonus = module.CreateBonus(result);
            var state = ((GeniesLuckBonus)bonus.Value).State;

            // Assert
            Assert.AreEqual(result.Bonus.Guid, bonus.Value.Guid);
            Assert.AreEqual(true, state is ReSpin);
            Assert.AreEqual(true, ((ReSpin)state).Count == 3);
        }
Пример #2
0
        public void TestCreateFreeSpinBonus()
        {
            // Arrange
            var user   = new UserGameKey(-1, 80);
            var result = new GeniesLuckResult()
            {
                BonusPositions = new List <BonusPosition> {
                    new BonusPosition {
                        Line = 1, Multiplier = 1, RowPositions = new List <int> {
                            0, 2, 2, 2, 0
                        }
                    }
                },
                Bonus = new Stake(Guid.NewGuid(), 3)
                {
                    Count = 10
                }
            };
            // action
            var bonus = module.CreateBonus(result);
            var state = ((GeniesLuckBonus)bonus.Value).State;

            // Assert
            Assert.AreEqual(result.Bonus.Guid, bonus.Value.Guid);
            Assert.AreEqual(true, state is FreeSpin);
            Assert.AreEqual(true, ((FreeSpin)state).Count == 10);
        }
Пример #3
0
        private static SummaryData ExecuteBonus(int level, RequestContext <BonusArgs> requestContext, GeniesLuckResult result)
        {
            var bonus           = module.CreateBonus(result);
            var geniesLuckBonus = bonus.Value as GeniesLuckBonus;
            var entity          = new BonusEntity
            {
                UserId       = -1,
                GameId       = GameId,
                Guid         = geniesLuckBonus.Guid.ToString("N"),
                Data         = Model.Utility.Extension.ToByteArray(geniesLuckBonus),
                BonusType    = bonus.GetType().Name,
                Version      = 3,
                RoundId      = 1,
                BetReference = ""
            };

            var summData = new SummaryData();

            do
            {
                var freeSpinResult = module.ExecuteBonus(level, entity, requestContext).Value as GeniesLuckBonusSpinResult;
                var spinResult     = freeSpinResult.SpinResult;
                switch (freeSpinResult.GameResultType)
                {
                case Model.GameResultType.FreeSpinResult:
                    summData.FSWin += freeSpinResult.Win;
                    summData.FSpinCounter++;
                    break;

                case Model.GameResultType.CollapsingSpinResult:
                    summData.ReSpinWin += freeSpinResult.Win;
                    break;

                case Model.GameResultType.FreeSpinCollapsingSpinResult:
                    summData.ReSpinFSWin += freeSpinResult.Win;
                    break;
                }

                if (spinResult.HasBonus)
                {
                    if (spinResult.Bonus.ClientId == 3)
                    {
                        summData.FgFHit++;
                    }
                    else
                    {
                        summData.FgReHit++;
                    }
                }

                if (freeSpinResult.IsCompleted)
                {
                    break;
                }
                entity.Data = Model.Utility.Extension.ToByteArray(freeSpinResult.Bonus);
            } while (true);
            return(summData);
        }
Пример #4
0
        public void TestExecuteBonus()
        {
            // Arrange
            var user   = new UserGameKey(-1, 80);
            var result = new GeniesLuckResult()
            {
                BonusPositions = new List <BonusPosition> {
                    new BonusPosition {
                        Line = 1, Multiplier = 1, RowPositions = new List <int> {
                            0, 2, 2, 2, 0
                        }
                    }
                },
                Bonus = new Stake(Guid.NewGuid(), 3)
                {
                    Count = 1
                }
            };

            result.SpinBet = new SpinBet(user, PlatformType.None)
            {
                Lines   = 40,
                LineBet = 1.0m
            };
            var userSession = new UserSession
            {
                SessionKey = "unittest",
                UserId     = -1
            };
            var requestContext = new RequestContext <SpinArgs>("simulation", "Genies Luck", PlatformType.None)
            {
                GameSetting = new GameSetting {
                    GameSettingGroupId = 1
                },
                Query = new QueryCollection {
                },
                Game  = new Game {
                    Id = 80
                }
            };
            var requestBonusContext = new RequestContext <BonusArgs>("unittest", "Genies Luck", PlatformType.None)
            {
                GameSetting = new GameSetting {
                    GameSettingGroupId = 1
                },
                Query = new QueryCollection {
                },
            };

            requestBonusContext.UserSession = userSession;
            requestBonusContext.UserGameKey = user;
            var bonus = module.CreateBonus(result).Value;

            var entity = new BonusEntity
            {
                UserId       = userSession.UserId,
                GameId       = requestContext.Game.Id,
                Guid         = bonus.Guid.ToString("N"),
                Data         = Model.Utility.Extension.ToByteArray(bonus),
                BonusType    = bonus.GetType().Name,
                Version      = 3,
                IsOptional   = bonus.IsOptional,
                IsStarted    = bonus.IsStarted,
                RoundId      = 1,
                BetReference = ""
            };

            // action
            var respinResult = module.ExecuteBonus(1, entity, requestBonusContext).Value as GeniesLuckBonusSpinResult;

            // assert
            Assert.NotNull(respinResult);
            Assert.AreEqual(respinResult.SpinResult.HasBonus == false, ((GeniesLuckBonus)respinResult.Bonus).State is Finish);
            Assert.AreEqual(respinResult.GameResultType, GameResultType.FreeSpinResult);
        }