コード例 #1
0
        public void EngineShouldCopyBonusValuesFromResultToXml(int gameId, int level)
        {
            var module      = GetModule(gameId);
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealItems = RevealBonusEngine.CreateRevealItems(module.Configuration.BonusConfig.Reveal.ItemWeights);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);
            var revealItem  = RandomNumberEngine.Next(Reveal.RandomWeightMinRange, Reveal.RandomWeightMaxRange);

            revealBonus.UpdateBonus(revealItems, revealItem);

            var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus);
            var xElement          = revealBonusResult.ToXElement();
            var responseXml       = new RevealBonusXml();

            using (var xmlReader = xElement.CreateReader())
            {
                responseXml.ReadXml(xmlReader);
            }

            Assert.IsNull(responseXml.GetSchema());
            Assert.AreEqual(revealBonusResult.Win, responseXml.Win);
            Assert.AreEqual(revealBonusResult.Multiplier, responseXml.Multiplier);
            Assert.AreEqual(revealBonusResult.RevealItem, responseXml.RevealItem);
            Assert.AreEqual(string.Join(',', revealBonusResult.RevealItems), string.Join(',', responseXml.RevealItems));
        }
コード例 #2
0
        public void EngineShouldCreateRevealBonusInstance(int level)
        {
            var config     = new Configuration();
            var spinResult = GenerateWithBonusSpinResult(level);

            Assert.IsNotNull(RevealBonusEngine.CreateRevealBonus(spinResult));
        }
コード例 #3
0
        public void EngineShouldWriteXmlOfRevealBonusResultXml(int gameId, int level)
        {
            var module      = GetModule(gameId);
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealItems = RevealBonusEngine.CreateRevealItems(module.Configuration.BonusConfig.Reveal.ItemWeights);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);
            var revealItem  = RandomNumberEngine.Next(Reveal.RandomWeightMinRange, Reveal.RandomWeightMaxRange);

            revealBonus.UpdateBonus(revealItems, revealItem);

            var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus);
            var xElement          = revealBonusResult.ToXElement();

            Assert.DoesNotThrow(() =>
            {
                var responseXml = new RevealBonusXml();
                using (var xmlReader = xElement.CreateReader())
                {
                    responseXml.ReadXml(xmlReader);
                }

                using (var memStream = new MemoryStream())
                    using (var xmlWriter = XmlWriter.Create(memStream, new XmlWriterSettings()
                    {
                        ConformanceLevel = ConformanceLevel.Auto
                    }))
                    {
                        xmlWriter.WriteStartElement("bonus");
                        responseXml.WriteXml(xmlWriter);
                    }
            });
        }
コード例 #4
0
        public decimal EngineShouldCreateCorrectPayout(string revealItemString, int revealItem, int level)
        {
            var config  = new Configuration();
            var spinBet = MainGameEngine.GenerateSpinBet(new RequestContext <SpinArgs>("", "", PlatformType.Web)
            {
                GameSetting = new Model.Entity.GameSetting {
                    GameSettingGroupId = 0
                },
                Currency = new Model.Entity.Currency {
                    Id = 0
                },
                Parameters = new SpinArgs
                {
                    LineBet    = 1,
                    Multiplier = 1
                },
            });

            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealItems = Array.ConvertAll(revealItemString.Split(','), Convert.ToInt32);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);

            revealBonus.UpdateBonus(revealItems, revealItem);

            var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus);

            return(revealBonusResult.Win);
        }
コード例 #5
0
        public void EngineShouldCreateRevealBonusWithTransactionId(int level)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);

            Assert.IsTrue(revealBonus.SpinTransactionId == spinResult.TransactionId);
        }
コード例 #6
0
        public void EngineShouldCreateRevealBonusWithValidGuid(int level)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);

            Assert.IsTrue(!string.IsNullOrWhiteSpace(revealBonus.Guid.ToString()));
        }
コード例 #7
0
        public void EngineShouldIncompleteRevealBonusOnUpdateWithoutSelectedIndex(int level)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealItems = RevealBonusEngine.CreateRevealItems(config.BonusConfig.Reveal.ItemWeights);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);

            Assert.IsTrue(!revealBonus.IsCompleted);
        }
コード例 #8
0
        public void EngineShouldCreateRevealBonusWithGameResult(int level)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);

            Assert.AreSame(spinResult, revealBonus.GameResult);
            Assert.AreSame(spinResult, revealBonus.SpinResult);
        }
コード例 #9
0
        public void EngineShouldThrowExceptionOnInvalidRevealSelectionIndex(int level, int revealItem)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);
            var revealItems = RevealBonusEngine.CreateRevealItems(config.BonusConfig.Reveal.ItemWeights);

            Assert.Throws(typeof(ArgumentException), () => revealBonus.UpdateBonus(revealItems, revealItem));
        }
コード例 #10
0
        public void EngineShouldContinueBonusOnWinBonusResult(int level)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealItems = RevealBonusEngine.CreateRevealItems(config.BonusConfig.Reveal.ItemWeights);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);

            revealBonus.UpdateBonus(revealItems, 1);

            Assert.IsTrue(revealBonus.IsCompleted);
        }
コード例 #11
0
        public void EngineShouldNotThrowExceptionOnValidRevealSelectionIndex(int level, int revealItem)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);
            var revealItems = RevealBonusEngine.CreateRevealItems(config.BonusConfig.Reveal.ItemWeights);

            revealBonus.UpdateBonus(revealItems, revealItem);

            Assert.DoesNotThrow(() => RevealBonusEngine.CreateRevealBonusResult(revealBonus));
        }
コード例 #12
0
        public void EngineShouldCreateRevealBonusResultWithSameSpinTransactionId(int level, int revealItem)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);
            var revealItems = RevealBonusEngine.CreateRevealItems(config.BonusConfig.Reveal.ItemWeights);

            revealBonus.UpdateBonus(revealItems, revealItem);

            var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus);

            Assert.IsTrue(revealBonusResult.SpinTransactionId == revealBonus.SpinTransactionId);
        }
コード例 #13
0
        public void EngineShouldCreateRevealBonusResultWithSameGameResultAndBonus(int level, int revealItem)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);
            var revealItems = RevealBonusEngine.CreateRevealItems(config.BonusConfig.Reveal.ItemWeights);

            revealBonus.UpdateBonus(revealItems, revealItem);

            var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus);

            Assert.AreSame(revealBonusResult.Bonus, revealBonus);
        }
コード例 #14
0
        public void EngineShouldCreateBonusResponseXmlOfRevealBonusResult(int level)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealItems = RevealBonusEngine.CreateRevealItems(config.BonusConfig.Reveal.ItemWeights);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);

            revealBonus.UpdateBonus(revealItems, 0);

            var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus);

            var responseXml = revealBonusResult.ToResponseXml(ResponseXmlFormat.History);

            Assert.IsNotNull(responseXml);
        }
コード例 #15
0
        public void EngineShouldCreateBonusResponseXmlOfRevealBonusResult(int gameId, int level)
        {
            var module      = GetModule(gameId);
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealItems = RevealBonusEngine.CreateRevealItems(module.Configuration.BonusConfig.Reveal.ItemWeights);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);
            var revealItem  = RandomNumberEngine.Next(Reveal.RandomWeightMinRange, Reveal.RandomWeightMaxRange);

            revealBonus.UpdateBonus(revealItems, revealItem);

            var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus);
            var responseXml       = revealBonusResult.ToResponseXml(ResponseXmlFormat.History);

            Assert.IsNotNull(responseXml);
        }
コード例 #16
0
        public void EngineShouldCreateBonusXElementOfRevealBonusResult(int level)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealItems = RevealBonusEngine.CreateRevealItems(config.BonusConfig.Reveal.ItemWeights);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);

            revealBonus.UpdateBonus(revealItems, 0);

            var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus);

            var xElement = revealBonusResult.ToXElement();

            Assert.IsNotNull(xElement);
        }
コード例 #17
0
        public void EngineShouldReadResponseXmlOfRevealBonusResult(int level)
        {
            var config      = new Configuration();
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealItems = RevealBonusEngine.CreateRevealItems(config.BonusConfig.Reveal.ItemWeights);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);

            revealBonus.UpdateBonus(revealItems, 0);

            var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus);

            var xElement = revealBonusResult.ToXElement();

            Assert.DoesNotThrow(() =>
            {
                using (var xmlReader = xElement.CreateReader())
                {
                    var responseXml = new BonusXml();
                    responseXml.ReadXml(xmlReader);
                }
            });
        }
コード例 #18
0
        public void EngineShouldReadResponseXmlOfRevealBonusResult(int gameId, int level)
        {
            var module      = GetModule(gameId);
            var spinResult  = GenerateWithBonusSpinResult(level);
            var revealItems = RevealBonusEngine.CreateRevealItems(module.Configuration.BonusConfig.Reveal.ItemWeights);
            var revealBonus = RevealBonusEngine.CreateRevealBonus(spinResult);
            var revealItem  = RandomNumberEngine.Next(Reveal.RandomWeightMinRange, Reveal.RandomWeightMaxRange);

            revealBonus.UpdateBonus(revealItems, revealItem);

            var revealBonusResult = RevealBonusEngine.CreateRevealBonusResult(revealBonus);
            var xElement          = revealBonusResult.ToXElement();

            Assert.DoesNotThrow(() =>
            {
                using (var xmlReader = xElement.CreateReader())
                {
                    var responseXml = new RevealBonusXml();
                    responseXml.ReadXml(xmlReader);
                }
            });
        }
コード例 #19
0
        public void EngineShouldCreateCorrectRevealItemIndex()
        {
            var config = new Configuration();

            Assert.DoesNotThrow(() => RevealBonusEngine.GetRevealItem(config.BonusConfig.Reveal.ItemWeights));
        }