public void AddFighter(string name) { using (BeginTransaction()) { var newFighter = new FighterContext(World) { Name = name }; World.Fighters.Add(newFighter); SelectedFighter = newFighter; } }
public void RemoveFighter() { // Arrange: create a main context. var main = new MainContext(null); // Assert: we should not be able to remove a fighter. Assert.IsFalse(main.RemoveFighterCommand.CanExecute(null)); // Arrange: add a 3 of fighters, select the second var fighter1 = new FighterContext(main.World); var fighter2 = new FighterContext(main.World); var fighter3 = new FighterContext(main.World); main.World.Fighters.Add(fighter1); main.World.Fighters.Add(fighter2); main.World.Fighters.Add(fighter3); // Assert: we should not yet be able to remove a fighter. Assert.IsFalse(main.RemoveFighterCommand.CanExecute(null)); // Select the second fighter. main.SelectedFighter = fighter2; // Assert: we should now be able to remove the fighter. Assert.IsTrue(main.RemoveFighterCommand.CanExecute(null)); // Act: remove fighter2 main.RemoveFighterCommand.Execute(null); // Assert: fighter2 should be removed. Assert.IsTrue(main.World.Fighters.SequenceEqual(new[] {fighter1, fighter3})); // Assert: fighter3 should now be selected. Assert.AreEqual(main.SelectedFighter, fighter3); // Assert: we should now be able to remove fighter3. Assert.IsTrue(main.RemoveFighterCommand.CanExecute(null)); // Act: remove fighter3 main.RemoveFighterCommand.Execute(null); // Assert: fighter3 should be removed. Assert.IsTrue(main.World.Fighters.SequenceEqual(new[] { fighter1 })); // Assert: fighter1 should now be selected. Assert.AreEqual(main.SelectedFighter, fighter1); // Assert: we should now be able to remove fighter1. Assert.IsTrue(main.RemoveFighterCommand.CanExecute(null)); // Act: remove fighter1 main.RemoveFighterCommand.Execute(null); // Assert: nothing should be selected. Assert.IsNull(main.SelectedFighter); // Assert: world should be empty now. Assert.AreEqual(main.World.Fighters.Count, 0); }