Example #1
0
        public void Drain_Adds_Modifier()
        {
            var cardId   = Guid.NewGuid();
            var stubCard = new Card()
            {
                Id = cardId
            };
            var stubSquad = new Squad()
            {
                Lineup = new Dictionary <string, IEnumerable <Card> >()
                {
                    { "ST", new[] { stubCard } }
                }
            };
            var stubMatch = new ApplicationCore.Models.Match.Match()
            {
                HomeTeam = new TeamDetails()
                {
                    Squad = stubSquad
                },
                AwayTeam = new TeamDetails()
                {
                    Squad = new Squad()
                }
            };
            var minute = 50;

            var randomnessProvider = new ActionTests.TestRandomnessProvider(100);
            var service            = new FitnessDrainService(randomnessProvider);

            //Act
            service.Drain(stubMatch, minute);

            //Assert
            Assert.NotNull(stubMatch.Minutes[minute].Modifiers.First());
            Assert.Equal(ModifierType.Fitness, stubMatch.Minutes[minute].Modifiers.First().Type);
            Assert.Equal(cardId, stubMatch.Minutes[minute].Modifiers.First().CardId);
            Assert.Equal(1, stubMatch.Minutes[minute].Modifiers.First().DrainValue);
        }
Example #2
0
        protected MatchTestBase()
        {
            //TODO Mock these
            var randomnessProvider        = new ThreadSafeRandomnessProvider();
            var calculatedCardStatService = new CalculatedCardStatService();
            var ratingService             = new RatingService(calculatedCardStatService);
            var fitnessDrainService       = new FitnessDrainService(randomnessProvider);
            var possessionService         = new PossessionService(ratingService);
            var actions       = new IAction[] { new Foul(randomnessProvider), new Shot(randomnessProvider, ratingService) };
            var actionService = new ActionService(actions, randomnessProvider);

            StubMatchEngine = new MatchEngine(actionService, possessionService, fitnessDrainService);

            StubHomePlayer = new Card
            {
                Id     = Guid.NewGuid(),
                Name   = "GK",
                Rating = 80
            };

            StubHomeSub = new Card
            {
                Id     = Guid.NewGuid(),
                Name   = "ST",
                Rating = 40
            };

            StubAwayPlayer = new Card
            {
                Id     = Guid.NewGuid(),
                Name   = "ST",
                Rating = 40
            };

            StubAwaySub = new Card
            {
                Id     = Guid.NewGuid(),
                Name   = "ST",
                Rating = 40
            };

            var stubHomeTeamLineup = new Dictionary <string, IEnumerable <Card> >
            {
                {
                    "GK", new List <Card>
                    {
                        StubHomePlayer
                    }
                },
                {
                    "DEF", new List <Card>
                    {
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "LB",
                            Rating = 80
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "CB",
                            Rating = 80
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "CB",
                            Rating = 80
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "RB",
                            Rating = 80
                        }
                    }
                },
                {
                    "MID", new List <Card>
                    {
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "LM",
                            Rating = 80
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "CM",
                            Rating = 80
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "CM",
                            Rating = 80
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "RM",
                            Rating = 80
                        }
                    }
                },
                {
                    "ATT", new List <Card>
                    {
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "ST",
                            Rating = 80
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "ST",
                            Rating = 80
                        }
                    }
                }
            };

            var stubAwayTeamLineup = new Dictionary <string, IEnumerable <Card> >
            {
                {
                    "GK", new List <Card>
                    {
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "GK",
                            Rating = 40
                        }
                    }
                },
                {
                    "DEF", new List <Card>
                    {
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "LB",
                            Rating = 40
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "CB",
                            Rating = 40
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "CB",
                            Rating = 40
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "RB",
                            Rating = 40
                        }
                    }
                },
                {
                    "MID", new List <Card>
                    {
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "LM",
                            Rating = 40
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "CM",
                            Rating = 40
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "CM",
                            Rating = 40
                        },
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "RM",
                            Rating = 40
                        }
                    }
                },
                {
                    "ATT", new List <Card>
                    {
                        StubAwayPlayer,
                        new Card
                        {
                            Id     = Guid.NewGuid(),
                            Name   = "ST",
                            Rating = 40
                        }
                    }
                }
            };

            StubHomeSquad = new Squad
            {
                Id     = Guid.NewGuid(),
                Lineup = stubHomeTeamLineup,
                Subs   = new[]
                {
                    StubHomeSub
                },
                Name = "Good FC"
            };

            StubAwaySquad = new Squad
            {
                Id     = Guid.NewGuid(),
                Lineup = stubAwayTeamLineup,
                Subs   = new[]
                {
                    StubAwaySub
                },
                Name = "Shitty FC"
            };

            StubHomeUserId = Guid.NewGuid();
            var stubAwayUserId = Guid.NewGuid();

            StubHomeTeamDetails = new TeamDetails
            {
                UserId = StubHomeUserId,
                Squad  = StubHomeSquad
            };

            StubMatch = new ApplicationCore.Models.Match.Match
            {
                Id       = Guid.NewGuid(),
                KickOff  = DateTime.Now,
                HomeTeam = StubHomeTeamDetails,
                AwayTeam = new TeamDetails
                {
                    UserId = stubAwayUserId,
                    Squad  = StubAwaySquad
                }
            };
        }