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); }
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); }
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); }
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); }