public void Apply(IEnumerable <IPlayerHandInformation> infos) { Winner = WinnerStatus.Unknown; WinnerInformation = new PlayerHandInformation(); m_Grouped.Group(infos); foreach (Status status in m_Grouped.Keys) { IEnumerable <IPlayerHandInformation> statusInfos = m_Grouped [status].ToArray(); if (statusInfos.Count() == 1) // todo testing this if { Winner = WinnerStatus.SingleWinner; WinnerInformation = statusInfos.First(); return; } m_Rankings.Apply(statusInfos.ToArray()); if (WinnerStatus.SingleWinner != m_Rankings.Winner) { continue; } Winner = m_Rankings.Winner; WinnerInformation = m_Rankings.Ranked.First(); } }
public void Setup() { m_Info = new PlayerHandInformation(); IEnumerable <IRule <IPlayerHandInformation> > rules = CreateRules(); m_Repository = new CardsRankRulesRepository(rules); m_Sut = new CardsRankEngine(m_Repository); }
public CardsRanking( [NotNull] IPlayerInformationGroupedByStatus grouped, [NotNull] ISameStatusRankingContainer rankings) { m_Grouped = grouped; m_Rankings = rankings; Winner = WinnerStatus.Unknown; WinnerInformation = new PlayerHandInformation(); }
public void Setup() { m_InfoOne = new PlayerHandInformation(); m_InfoTwo = new PlayerHandInformation(); m_InfoThree = new PlayerHandInformation(); m_Infos = new[] { m_InfoOne, m_InfoTwo, m_InfoThree }; m_Sut = new PlayerInformationGroupedByStatus(); }
private IEnumerable <IPlayerHandInformation> CreatePlayerHandInformations( [NotNull] IEnumerable <IEnumerable <ICard> > cardsList) { var infos = new List <IPlayerHandInformation>(); foreach (IEnumerable <ICard> cards in cardsList) { var info = new PlayerHandInformation { Cards = cards }; infos.Add(info); } return(infos); }
public void BeforeScenario() { var stringToCardRank = new StringToCardRankFactory(); var stringToCard = new StringToCardFactory(); stringToCard.Initialize(new CardsBuilder().Cards); var cards = new List <ICard>(); var info = new PlayerHandInformation { Cards = cards }; var sut = new CardsRankEngine(new CardsRankRulesRepository(new CardsRankRulesBuilder().Rules)); ScenarioContext.Current ["ICards"] = cards; ScenarioContext.Current ["IPlayerHandInformation"] = info; ScenarioContext.Current ["ICardsRankEngine"] = sut; ScenarioContext.Current ["IStringToCardRankFactory"] = stringToCardRank; ScenarioContext.Current ["IStringToCardFactory"] = stringToCard; }