public void GetCardComboNewCards_OnlyLast()
        {
            // Several events already happened to same player, yellow arrives.
            // Check that a new event is returned with a red card, and only that.

            var events = new MatchEvent[]
            {
                new MatchEvent {
                    Id = 11, IdMatch = 1001, Type = (int)MatchEventType.Card1, IdPlayer = 101, MatchMinute = 8
                },
                new MatchEvent {
                    Id = 12, IdMatch = 1001, Type = (int)MatchEventType.Card3, IdPlayer = 101, MatchMinute = 8
                },
                new MatchEvent {
                    Id = 13, IdMatch = 1001, Type = (int)MatchEventType.Card4, IdPlayer = 101, MatchMinute = 8
                },
                new MatchEvent {
                    Id = 14, IdMatch = 1001, Type = (int)MatchEventType.Card5, IdPlayer = 101, MatchMinute = 8
                },
                new MatchEvent {
                    Id = 15, IdMatch = 1001, Type = (int)MatchEventType.Card1, IdPlayer = 101, MatchMinute = 30
                }
            };

            var combos = new AutoSanctionCardConfig[]
            {
                new AutoSanctionCardConfig {
                    Card1Type = 1, Card2Type = 1, Penalty = new PenaltyConfig {
                        Type1 = 2
                    }, AddYellowCards = 0
                },
                new AutoSanctionCardConfig {
                    Card1Type = 3, Card2Type = 0, Penalty = new PenaltyConfig {
                        Type1 = 5
                    }
                },
            };

            var newEvent = events[4];

            var result = AutoSanctionDispatcher.GetCardCombosNewCards(events, combos, newEvent);

            Assert.AreEqual(2, result.Count());

            var resultEvents = result.ToList();

            Assert.AreEqual((int)MatchEventType.Card2, resultEvents[0].Type);

            var ev2 = resultEvents[1];

            Assert.AreEqual((int)MatchEventType.AddToPdrData1, ev2.Type);
            Assert.AreEqual(-2, ev2.IntData1);
        }
        public void GetCardComboNewCards_Single()
        {
            var events = new MatchEvent[]
            {
                new MatchEvent {
                    Id = 11, IdMatch = 1001, Type = (int)MatchEventType.Card1, IdPlayer = 101, MatchMinute = 8
                },
                new MatchEvent {
                    Id = 15, IdMatch = 1001, Type = (int)MatchEventType.Card1, IdPlayer = 101, MatchMinute = 30
                }
            };

            var combos = new AutoSanctionCardConfig[]
            {
                new AutoSanctionCardConfig {
                    Card1Type = 1, Card2Type = 1, Penalty = new PenaltyConfig {
                        Type1 = 2
                    }, AddYellowCards = 1
                },
                new AutoSanctionCardConfig {
                    Card1Type = 2, Card2Type = 3, Penalty = new PenaltyConfig {
                        Type1 = 5
                    }
                },
            };

            var newEvent = events[1];

            var result = AutoSanctionDispatcher.GetCardCombosNewCards(events, combos, newEvent);

            Assert.AreEqual(2, result.Count());

            var resultEvents = result.ToList();

            Assert.AreEqual((int)MatchEventType.Card2, resultEvents[0].Type);

            var ev2 = resultEvents[1];

            Assert.AreEqual((int)MatchEventType.AddToPdrData1, ev2.Type);
            Assert.AreEqual(-1, ev2.IntData1);
        }