public void TestHandleClickedWhenTwoPlayersAreLocked() { // Arrange player1.Tagged = false; player1.Locked = false; player2.Tagged = false; player2.Locked = false; var pCardEvent = new ClickedPCardEvent() { ClickedPlayer = player2, Modifier = ButtonModifier.Control }; var pCardEvent2 = new ClickedPCardEvent() { ClickedPlayer = player1, Modifier = ButtonModifier.Control }; // Action App.Current.EventsBroker.Publish(pCardEvent); App.Current.EventsBroker.Publish(pCardEvent2); // Assert Assert.IsTrue(player1.Tagged, "Player 1 should be tagged"); Assert.IsTrue(player1.Locked, "Player 1 should be locked"); Assert.IsTrue(player2.Tagged, "Player 2 should be tagged"); Assert.IsTrue(player2.Locked, "Player 2 should be locked"); }
/// <summary> /// Handles when a Participant Card is clicked. /// </summary> /// <param name="e">Event.</param> protected void HandleClickedPCardEvent(ClickedPCardEvent e) { if (e.ClickedPlayer != null) { if (e.Modifier == ButtonModifier.Control) { e.ClickedPlayer.Tagged = !e.ClickedPlayer.Locked; e.ClickedPlayer.Locked = !e.ClickedPlayer.Locked; } else { if (!e.ClickedPlayer.Locked) { e.ClickedPlayer.Tagged = !e.ClickedPlayer.Tagged; } } } // Without the Shift modifier, unselect the rest of players that are not locked. if (e.Modifier != ButtonModifier.Shift) { foreach (PlayerVM player in project.Players) { if (player != e.ClickedPlayer && !player.Locked) { player.Tagged = false; } } } // Right now we don't care about selections and moving pcards }
public void TestHandleClickedWhenPlayerIsTagged() { // Arrange player2.Tagged = false; player2.Locked = false; var pCardEvent = new ClickedPCardEvent() { ClickedPlayer = player2, Modifier = ButtonModifier.None }; // Action App.Current.EventsBroker.Publish(pCardEvent); // Assert Assert.IsTrue(player2.Tagged, "Player 2 should be tagged"); Assert.IsFalse(player2.Locked, "Player 2 should not be locked"); }