public void CreateTicketWsTest()
        {
            DatabaseManager.EnsureDatabase(false);
            IoCContainer.Kernel.Unbind <IConfidenceFactor>();
            IoCContainer.Kernel.Bind <IConfidenceFactor>().ToConstant <IConfidenceFactor>(ConfidenceFactor.Object).InSingletonScope();
            ConfidenceFactor.Expect(x => x.CalculateFactor(It.IsAny <Ticket>())).Returns(1000000);

            IoCContainer.Kernel.Rebind <IChangeTracker>().To <ChangeTracker>().InSingletonScope();
            var ChangeTracker = IoCContainer.Kernel.Get <IChangeTracker>();

            IoCContainer.Kernel.Rebind <ITicketHandler>().To <TicketHandler>().InSingletonScope();
            var TicketHandler = IoCContainer.Kernel.Get <ITicketHandler>();

            BusinessPropsHelper.Expect(x => x.GetNextTransactionId()).Returns("123");

            var DataBinding = new DataBinding();

            IoCContainer.Kernel.Rebind <IDataBinding>().ToConstant <IDataBinding>(DataBinding).InSingletonScope();

            var stationRepository = new StationRepository();

            IoCContainer.Kernel.Rebind <IStationRepository>().ToConstant <IStationRepository>(stationRepository).InSingletonScope();
            stationRepository.MaxOdd            = 1000;
            stationRepository.MaxCombination    = 1000;
            stationRepository.MaxStakeSystemBet = 1000;
            stationRepository.MaxSystemBet      = 1000;
            stationRepository.MaxWinSystemBet   = 10000;
            stationRepository.IsReady           = true;
            stationRepository.BonusFromOdd      = 3.0m;

            TicketHandler.TicketsInBasket.Add(new Ticket());

            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 1, OddId = { Value = 1 }, OddView = new TestOddVw()
                {
                    Value = 1
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 1, Match = new TestMatchLn()
                    {
                        MatchId = 1, MatchView = new TestMatchVw()
                        {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 2.80M }
            }));
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 2, OddId = { Value = 2 }, OddView = new TestOddVw()
                {
                    Value = 2
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 2, Match = new TestMatchLn()
                    {
                        MatchId = 2, MatchView = new TestMatchVw()
                        {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 2.10M }
            }));
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 3, OddId = { Value = 3 }, OddView = new TestOddVw()
                {
                    Value = 3
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 3, Match = new TestMatchLn()
                    {
                        MatchId = 3, MatchView = new TestMatchVw()
                        {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 3.30M }
            }));
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 4, OddId = { Value = 4 }, OddView = new TestOddVw()
                {
                    Value = 4
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 4, Match = new TestMatchLn()
                    {
                        MatchId = 4, MatchView = new TestMatchVw()
                        {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 2.70M }
            }));
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 5, OddId = { Value = 5 }, OddView = new TestOddVw()
                {
                    Value = 5
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 5, Match = new TestMatchLn()
                    {
                        MatchId = 5, MatchView = new TestMatchVw()
                        {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 3.10M }
            }));


            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 6, OddId = { Value = 6 }, OddView = new TestOddVw()
                {
                    Value = 6
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 6, Match = new TestMatchLn()
                    {
                        MatchId = 6
                    }
                }, Value = { Value = 1.80M }
            })
            {
                IsBank = true
            });
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 7, OddId = { Value = 7 }, OddView = new TestOddVw()
                {
                    Value = 7
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 7, Match = new TestMatchLn()
                    {
                        MatchId = 7
                    }
                }, Value = { Value = 1.70M }
            })
            {
                IsBank = true
            });

            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 8, OddId = { Value = 8 }, OddView = new TestOddVw()
                {
                    Value = 8
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 8, Match = new TestMatchLn()
                    {
                        MatchId = 8
                    }
                }, Value = { Value = 3.20M }
            })
            {
                IsBank = true
            });
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 9, OddId = { Value = 9 }, OddView = new TestOddVw()
                {
                    Value = 9
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 9, Match = new TestMatchLn()
                    {
                        MatchId = 8
                    }
                }, Value = { Value = 2.10M }
            })
            {
                IsBank = true
            });

            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 10, OddId = { Value = 10 }, OddView = new TestOddVw()
                {
                    Value = 10
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 10, Match = new TestMatchLn()
                    {
                        MatchId = 9
                    }
                }, Value = { Value = 5.60M }
            })
            {
                IsBank = true
            });
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 11, OddId = { Value = 11 }, OddView = new TestOddVw()
                {
                    Value = 11
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 11, Match = new TestMatchLn()
                    {
                        MatchId = 9
                    }
                }, Value = { Value = 3.70M }
            })
            {
                IsBank = true
            });
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd()
            {
                OutcomeId = 12, OddId = { Value = 12 }, OddView = new TestOddVw()
                {
                    Value = 12
                }, BetDomain = new TestBetDomain()
                {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 12, Match = new TestMatchLn()
                    {
                        MatchId = 9
                    }
                }, Value = { Value = 1.55M }
            })
            {
                IsBank = true
            });

            TicketHandler.TicketsInBasket[0].Stake = 10;
            stationRepository.BonusRangeList.Add(new BonusRangeWS()
            {
                tipSize = 1, bonus = 5
            });
            stationRepository.BonusRangeList.Add(new BonusRangeWS()
            {
                tipSize = 2, bonus = 10
            });

            ChangeTracker.CurrentUser = new LoggedInUser(0, "", 100, 10, 10, 10);

            TicketHandler.TicketState = TicketStates.System;

            TicketHandler.TicketsInBasket[0].Stake = 10;


            TicketHandler.TicketsInBasket[0].SystemX = 2;
            TicketHandler.UpdateTicket();

            Assert.AreEqual(10m, TicketHandler.Stake);
            Assert.AreEqual(783.9422976000000m, TicketHandler.CurrentTicketPossibleWin);
            Assert.AreEqual(10m, TicketHandler.BonusPercentage);
            Assert.AreEqual(71.2674816000000m, TicketHandler.BonusValue);

            var      ticketActions = new TicketActions();
            TicketWS ticket        = ticketActions.CreateNewTicketWS(TicketHandler.TicketsInBasket[0]);

            ticketActions.SaveTicket(ref ticket, ChangeTracker.CurrentUser);
            Assert.AreEqual(10m, ticket.stake);
            Assert.AreEqual(1.1m, ticket.superBonus);
        }
        public void CreateTicketWsTest()
        {
            IoCContainer.Kernel.Unbind <IConfidenceFactor>();
            IoCContainer.Kernel.Bind <IConfidenceFactor>().ToConstant <IConfidenceFactor>(ConfidenceFactor.Object).InSingletonScope();
            ConfidenceFactor.Expect(x => x.CalculateFactor(It.IsAny <Ticket>())).Returns(1000000);

            IoCContainer.Kernel.Unbind <IStationRepository>();
            IoCContainer.Kernel.Unbind <IChangeTracker>();
            var ChangeTracker = new ChangeTracker();

            IoCContainer.Kernel.Bind <IChangeTracker>().ToConstant <IChangeTracker>(ChangeTracker).InSingletonScope();

            IoCContainer.Kernel.Unbind <IDataBinding>();
            var DataBinding = new DataBinding();

            IoCContainer.Kernel.Bind <IDataBinding>().ToConstant <IDataBinding>(DataBinding).InSingletonScope();

            IoCContainer.Kernel.Unbind <ITicketHandler>();
            var TicketHandler = new TicketHandler();

            IoCContainer.Kernel.Bind <ITicketHandler>().ToConstant <ITicketHandler>(TicketHandler).InSingletonScope();

            BusinessPropsHelper.Setup(x => x.GetNextTransactionId()).Returns("123");

            var stationRepository = new StationRepository();

            IoCContainer.Kernel.Bind <IStationRepository>().ToConstant <IStationRepository>(stationRepository).InSingletonScope();
            stationRepository.MaxOdd            = 1000;
            stationRepository.MaxCombination    = 1000;
            stationRepository.MaxStakeSystemBet = 1000;
            stationRepository.MaxStakeCombi     = 1000;
            stationRepository.MaxSystemBet      = 1000;
            stationRepository.MaxWinSystemBet   = 10000;
            stationRepository.MaxWinSingleBet   = 10000;
            stationRepository.IsReady           = true;
            stationRepository.BonusFromOdd      = 1.30m;
            long[] tipLock;
            long[] tournamentlock;
            TicketHandler.TicketsInBasket.Add(new Ticket());
            WsdlRepository.Setup(x => x.SaveTicket(It.IsAny <string>(), It.IsAny <uid>(), It.IsAny <TicketWS>(), It.IsAny <bool>(), It.IsAny <string>(), out tipLock, out tournamentlock)).Returns("1");
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd {
                OutcomeId = 1, OddId = { Value = 1 }, OddView = new TestOddVw()
                {
                    Value = 1
                }, BetDomain = new TestBetDomain {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 1, Match = new TestMatchLn {
                        MatchId = 1, Code = { Value = 1 }, MatchView = new TestMatchVw {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 1.14M }
            })
            {
                IsBank = true
            });
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd {
                OutcomeId = 2, OddId = { Value = 2 }, OddView = new TestOddVw()
                {
                    Value = 2
                }, BetDomain = new TestBetDomain {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 2, Match = new TestMatchLn {
                        MatchId = 2, Code = { Value = 2 }, MatchView = new TestMatchVw {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 1.40M }
            }));
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd {
                OutcomeId = 3, OddId = { Value = 3 }, OddView = new TestOddVw()
                {
                    Value = 3
                }, BetDomain = new TestBetDomain {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 3, Match = new TestMatchLn {
                        MatchId = 3, Code = { Value = 3 }, MatchView = new TestMatchVw {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 1.50M }
            }));
            TicketHandler.TicketsInBasket[0].TipItems.Add(new TipItemVw(new TestOdd {
                OutcomeId = 4, OddId = { Value = 4 }, OddView = new TestOddVw()
                {
                    Value = 4
                }, BetDomain = new TestBetDomain {
                    BetDomainNumber = new ObservableProperty <int>(new BetDomainLn(), new ObservablePropertyList(), "test"), BetDomainId = 4, Match = new TestMatchLn {
                        MatchId = 4, Code = { Value = 4 }, MatchView = new TestMatchVw {
                            LineObject = new MatchLn()
                        }
                    }
                }, Value = { Value = 1.25M }
            }));


            stationRepository.BonusRangeList.Add(new BonusRangeWS {
                tipSize = 1, bonus = 3
            });


            TicketHandler.TicketsInBasket[0].Stake = 10;

            ChangeTracker.CurrentUser = new LoggedInUser(0, "", 100, 10, 10, 10);

            TicketHandler.TicketState = TicketStates.System;
            TicketHandler.TicketsInBasket[0].SystemX = 2;

            TicketHandler.TicketsInBasket[0].Stake = 5;

            TicketWS newticket = new TicketWS();

            TicketActions.Setup(x => x.CreateNewTicketWS(It.IsAny <Ticket>())).Returns(newticket);

            TicketHandler.UpdateTicket();

            Assert.AreEqual(2, TicketHandler.TicketsInBasket[0].SystemX);
            Assert.AreEqual(3, TicketHandler.TicketsInBasket[0].SystemY);
            Assert.AreEqual(5m, TicketHandler.Stake);
            Assert.AreEqual(11.203824999999999999999999999m, TicketHandler.CurrentTicketPossibleWin);


            var      ticketActions = new TicketActions();
            TicketWS ticket        = ticketActions.CreateNewTicketWS(TicketHandler.TicketsInBasket[0]);

            ticketActions.SaveTicket(ref ticket, ChangeTracker.CurrentUser);


            Assert.AreEqual(1.03m, ticket.superBonus);
            Assert.AreEqual(5m, ticket.stake);
            Assert.AreEqual(2.17m, ticket.bets[0].maxOdd);
            Assert.AreEqual(11.203824999999999999999999999m, TicketHandler.CurrentTicketPossibleWin);
            Assert.AreEqual(11.203824999999999999999999999m, ticket.bets[0].maxWin);
            Assert.AreEqual(3m, TicketHandler.BonusPercentage);
            if (CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator == ".")
            {
                Assert.AreEqual("0.32", SportBetting.WPF.Prism.OldCode.PrinterHandler.Decimal2String(TicketHandler.BonusValue, 2));
            }
            if (CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator == ",")
            {
                Assert.AreEqual("0,32", SportBetting.WPF.Prism.OldCode.PrinterHandler.Decimal2String(TicketHandler.BonusValue, 2));
            }
        }
示例#3
0
        public void OpenUserTicketsTest()
        {
            AuthorizationService = MockRepository.GenerateStub <IAuthorizationService>();
            StationRepository    = MockRepository.GenerateStub <IStationRepository>();
            LanguageRepository   = MockRepository.GenerateStub <ILanguageRepository>();
            LineProvider         = MockRepository.GenerateStub <ILineProvider>();
            BusinessPropsHelper  = MockRepository.GenerateStub <IBusinessPropsHelper>();
            DataBinding          = MockRepository.GenerateStub <IDataBinding>();
            ConfidenceFactor     = MockRepository.GenerateStub <IConfidenceFactor>();


            IoCContainer.Kernel.Bind <IDataBinding>().ToConstant <IDataBinding>(DataBinding).InSingletonScope();
            IoCContainer.Kernel.Bind <IAuthorizationService>().ToConstant <IAuthorizationService>(AuthorizationService).InSingletonScope();
            IoCContainer.Kernel.Bind <IStationRepository>().ToConstant <IStationRepository>(StationRepository).InSingletonScope();
            IoCContainer.Kernel.Bind <ILanguageRepository>().ToConstant <ILanguageRepository>(LanguageRepository).InSingletonScope();
            IoCContainer.Kernel.Bind <ILineProvider>().ToConstant <ILineProvider>(LineProvider).InSingletonScope();
            IoCContainer.Kernel.Bind <IBusinessPropsHelper>().ToConstant <IBusinessPropsHelper>(BusinessPropsHelper).InSingletonScope();
            IoCContainer.Kernel.Bind <IConfidenceFactor>().ToConstant <IConfidenceFactor>(ConfidenceFactor).InSingletonScope();

            ConfidenceFactor.Expect(x => x.CalculateFactor(new Ticket())).Return(1000000).IgnoreArguments();

            StationRepository.TurnOffCashInInit = true;
            StationRepository.Expect(x => x.AllowAnonymousBetting).Return(true);
            StationRepository.Expect(x => x.IsReady).Return(true);
            StationRepository.Expect(x => x.StationNumber).Return("0024");
            StationRepository.Expect(x => x.HubSettings).Return(new Dictionary <string, string>());
            StationRepository.Currency = "EUR";

            ChangeTracker                           = IoCContainer.Kernel.Get <IChangeTracker>();
            ChangeTracker.CurrentUser               = new AnonymousUser("1", 1);
            ChangeTracker.CurrentUser.Cashpool      = 100000;
            ChangeTracker.CurrentUser.AvailableCash = 100000;


            Dispatcher.Invoke(() =>
            {
                Window = MyRegionManager.FindWindowByViewModel <MainViewModel>();
                Window.Show();
            });

            Thread.Sleep(1000);

            ChangeTracker.CurrentUser = new LoggedInUser(1, "111", 1000)
            {
                Username = "******"
            };

            var header = MyRegionManager.CurrentViewModelInRegion(RegionNames.HeaderRegion) as HeaderViewModel;

            header.OpenAuthorizationCommand.Execute("");

            Thread.Sleep(1000);

            var userProfileMenuViewModel = MyRegionManager.CurrentViewModelInRegion(RegionNames.UserProfileMenuRegion) as UserProfileMenuViewModel;

            var ticket = new UserTicket()
            {
                checkSum = "1234", createdAt = DateTime.Now, ticketNumber = "1241252352346"
            };
            string total;

            WsdlRepository.Expect(x => x.GetUserTickets("1", (ticketCategory)1, new AccountTicketSorting()
            {
                field = AccountTicketSortingFields.DateCreated, value = AccountTicketSortingValues.Desc
            }, 0, 20, out total)).Return(new UserTicket[] { ticket }).OutRef("1000").IgnoreArguments();

            userProfileMenuViewModel.ShowTicketsCommand.Execute("");

            Thread.Sleep(1000);



            Assert.AreEqual(1, ChangeTracker.Tickets.Count);


            var userTicketsViewModel = MyRegionManager.CurrentViewModelInRegion(RegionNames.UserProfileContentRegion) as UserTicketsViewModel;

            Assert.AreEqual(1, userTicketsViewModel.TicketsStartPage);

            Dispatcher.Invoke(() =>
            {
                userTicketsViewModel.SelectedType = userTicketsViewModel.TicketType[3];
            });
            Dispatcher.Invoke(() =>
            {
                userTicketsViewModel.NextPage.Execute("");
            });



            Assert.AreEqual(2, userTicketsViewModel.TicketsStartPage);
            Assert.AreEqual(1, userTicketsViewModel.Tickets.Count);

            if (1000 % userTicketsViewModel.Pagesize > 0)
            {
                Assert.AreEqual(1000 / userTicketsViewModel.Pagesize + 1, userTicketsViewModel.AllPages);
            }

            if (1000 % userTicketsViewModel.Pagesize == 0)
            {
                Assert.AreEqual(1000 / userTicketsViewModel.Pagesize, userTicketsViewModel.AllPages);
            }

            Assert.AreEqual(2, userTicketsViewModel.TicketsStartPage);
            Assert.AreEqual(3, userTicketsViewModel.SelectedType.Id);

            userTicketsViewModel.ShowTicketCommand.Execute(userTicketsViewModel.Tickets[0]);

            var nextModel = MyRegionManager.CurrentViewModelType(RegionNames.UserProfileContentRegion);

            Assert.AreEqual(typeof(TicketDetailsViewModel), nextModel);

            UserProfileViewModel userprofileWindow = null;

            Dispatcher.Invoke(() =>
                              { userprofileWindow = ChangeTracker.UserProfileWindow.DataContext as UserProfileViewModel; });

            WsdlRepository.BackToRecord();

            WsdlRepository.Expect(x => x.GetUserTickets("1", (ticketCategory)1, new AccountTicketSorting()
            {
                field = AccountTicketSortingFields.DateCreated, value = AccountTicketSortingValues.Desc
            }, 0, 20, out total)).Return(new UserTicket[] { ticket, ticket, ticket, ticket }).OutRef("1000").IgnoreArguments();

            WsdlRepository.Replay();
            Dispatcher.Invoke(() =>
                              { userprofileWindow.BackCommand.Execute(""); });

            var prevModel = MyRegionManager.CurrentViewModelInRegion(RegionNames.UserProfileContentRegion);

            Thread.Sleep(1000);

            Assert.AreEqual(4, ((UserTicketsViewModel)prevModel).Tickets.Count);
            Assert.IsTrue(((UserTicketsViewModel)prevModel).AllPages > 0);
            Assert.AreEqual(2, userTicketsViewModel.TicketsStartPage);
            Assert.AreEqual(3, userTicketsViewModel.SelectedType.Id);


            userProfileMenuViewModel.LogoutCommand.Execute("");


            Thread.Sleep(1000);
            WsdlRepository.BackToRecord();
            Dispatcher.Invoke(() =>
            {
                Window.Close();
            });
        }