public void PostManyWithCommand_Returns_expected() { //Arrange var availableCommands = new List <CommandComponent>(); foreach (var val in Enum.GetValues(typeof(DieType))) { availableCommands.Add(new CommandComponent { CommandName = "RollDice", FriendlyName = "Roll Dice", IsEnabled = true, IsVisible = true, Payload = new CommandPayload { ExecutionData = JObject.FromObject(new Dictionary <DieType, uint> { { (DieType)val, 0 } }) } }); } var command = new CommandComponent { CommandName = "RollDice", FriendlyName = "Roll Dice", IsEnabled = true, IsVisible = true, Payload = new CommandPayload { ExecutionData = JObject.FromObject(new Dictionary <DieType, uint> { { DieType.D12, 0 } }) } }; var request = new MultipleDiceRollComponent { SelectedCommand = command, AvailableCommands = availableCommands }; var rolls = _fixture.Create <DiceRolls>(); _manager.Setup(x => x.RollDice(It.IsAny <Dictionary <string, uint> >())).Returns(rolls); var expected = request; //Act var actual = _sut.PostManyWithCommand(request); //Assert expected.RollValues = rolls; actual.Value.Should().BeEquivalentTo(expected); }
public ActionResult <MultipleDiceRollComponent> PostManyWithCommand([FromBody] MultipleDiceRollComponent component) { if (component.SelectedCommand == null) { return(BadRequest("No selected command provided.")); } var request = component.SelectedCommand.Payload.ExecutionData.ToObject <Dictionary <string, uint> >(); if (request == null || !request.Any()) { return(BadRequest("Invalid payload")); } var rolls = _manager.RollDice(request); component.RollValues = rolls; component.AvailableCommands.Clear(); component.AvailableCommands.Add(GetNewMultipleRollsComponent()); return(component); }