Beispiel #1
0
 private Contracts.Cards.CardResponse MapDomainToCardResponse(Core.Domain.Card domainCard) => new Contracts.Cards.CardResponse
 {
     Id           = domainCard.Id,
     DefinitionId = domainCard.Definition.Id,
     Name         = domainCard.Name,
     Properties   = domainCard.Properties.Select(p => new Contracts.Cards.CardProperty
     {
         Name  = p.Name,
         Value = p.Value
     })
 };
Beispiel #2
0
        public async Task Deal_WhenLeftWins_ReturnsProperOkResponse()
        {
            var cardType       = "type";
            var cardProperty   = "property";
            var cardDefinition = new Core.Domain.CardDefinition
            {
                Key        = cardType,
                Name       = "name",
                Properties = new[] { cardProperty }
            };
            var leftCard = new Core.Domain.Card {
                Definition = cardDefinition, Name = "name1", Properties = new List <Property> {
                    new Property {
                        Name = cardProperty, Value = 2
                    }
                }
            };
            var rightCard = new Core.Domain.Card {
                Definition = cardDefinition, Name = "name2", Properties = new List <Property> {
                    new Property {
                        Name = cardProperty, Value = 1
                    }
                }
            };
            var dealResult = new DealResult
            {
                LeftCard  = leftCard,
                RightCard = rightCard,
                Verdict   = Verdict.Left
            };

            var loggerStub      = Substitute.For <ILogger <GameController> >();
            var gameServiceStub = Substitute.For <IGameService>();

            gameServiceStub.NewDeal(Arg.Is(cardType), Arg.Is(cardProperty)).Returns(dealResult);

            var gameController = new GameController(gameServiceStub, loggerStub);

            var result = await gameController.Deal(cardType, cardProperty);

            Assert.IsInstanceOf(typeof(OkObjectResult), result);

            var dealResponse = (result as OkObjectResult).Value as DealResponse;

            Assert.AreEqual((int)Verdict.Left, dealResponse.Verdict);
            Assert.AreEqual(leftCard.Name, dealResponse.LeftCard.Name);
            Assert.AreEqual(CardResult.Winner, dealResponse.LeftCard.Result);
            Assert.AreEqual(rightCard.Name, dealResponse.RightCard.Name);
            Assert.AreEqual(CardResult.Loser, dealResponse.RightCard.Result);
        }
Beispiel #3
0
 private DealResponseCard MapCardFromDomain(Core.Domain.Card card, bool isLeft, Core.Domain.Verdict verdict, string selectedPropertyName)
 {
     return(new DealResponseCard
     {
         Name = card.Name,
         Result = verdict == Core.Domain.Verdict.Tie ? CardResult.Tie : (isLeft && verdict == Core.Domain.Verdict.Left) || (!isLeft && verdict == Core.Domain.Verdict.Right) ? CardResult.Winner : CardResult.Loser,
         Properties = card.Properties.Select(p => new CardProperty
         {
             Name = p.Name,
             Value = p.Value,
             Selected = p.Name == selectedPropertyName
         }).ToList()
     });
 }