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 }) };
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); }
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() }); }