# HG changeset patch # User IBBoard # Date 1314795618 -3600 # Node ID 7b90f41f27e5e4f2d5f74faa83b13d06ddd2bb15 # Parent 12a8279f116f6637310669447af23fc9b01e941f# Parent b0b41bf8ad6809627fe67a7f12f20b34562520ae * Pull in changes from re #101 and merge (changes were on wrong branch) diff -r 12a8279f116f -r 7b90f41f27e5 API/Commands/EditArmyCommandTest.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/API/Commands/EditArmyCommandTest.cs Wed Aug 31 14:00:18 2011 +0100 @@ -0,0 +1,121 @@ +using System; +using System.Collections.Generic; +using System.Text; +using NUnit.Framework; +using IBBoard.WarFoundry.API.Objects; +using IBBoard.WarFoundry.API.Objects.Mock; +using NUnit.Framework.SyntaxHelpers; + +namespace IBBoard.WarFoundry.API.Commands +{ + [TestFixture] + public class EditArmyCommandTest + { + [Test] + public void TestChangingNameOnlyChangesName() + { + Army army = CreateArmy(); + EditArmyCommand cmd = new EditArmyCommand(army); + string newName = "Something New"; + int maxSize = army.MaxPoints; + cmd.NewName = newName; + cmd.Execute(); + Assert.That(army.Name, Is.EqualTo(newName)); + Assert.That(army.MaxPoints, Is.EqualTo(maxSize)); + } + + [Test] + public void TestUndoNameChangeGivesOldName() + { + Army army = CreateArmy(); + EditArmyCommand cmd = new EditArmyCommand(army); + string oldName = army.Name; + cmd.NewName = "Something New"; + cmd.Execute(); + cmd.Undo(); + Assert.That(army.Name, Is.EqualTo(oldName)); + } + + [Test] + public void TestChangingSizeOnlyChangesSize() + { + Army army = CreateArmy(); + EditArmyCommand cmd = new EditArmyCommand(army); + string oldName = army.Name; + int maxSize = 1337; + cmd.NewSize = maxSize; + cmd.Execute(); + Assert.That(army.MaxPoints, Is.EqualTo(maxSize)); + Assert.That(army.Name, Is.EqualTo(oldName)); + } + + [Test] + public void TestUndoSizeChangeGivesOldSize() + { + Army army = CreateArmy(); + EditArmyCommand cmd = new EditArmyCommand(army); + int oldSize = army.MaxPoints; + cmd.NewSize = 1337; + cmd.Execute(); + cmd.Undo(); + Assert.That(army.MaxPoints, Is.EqualTo(oldSize)); + } + + [Test] + public void TestChangingBothChangesBoth() + { + Army army = CreateArmy(); + EditArmyCommand cmd = new EditArmyCommand(army); + string newName = "Something New"; + cmd.NewName = newName; + int maxSize = 1337; + cmd.NewSize = maxSize; + cmd.Execute(); + Assert.That(army.MaxPoints, Is.EqualTo(maxSize)); + Assert.That(army.Name, Is.EqualTo(newName)); + } + + [Test] + public void TestUndoChangeBothGivesOldValues() + { + Army army = CreateArmy(); + EditArmyCommand cmd = new EditArmyCommand(army); + int oldSize = army.MaxPoints; + string oldName = army.Name; + cmd.NewName = "Something New"; + cmd.NewSize = 1337; + cmd.Execute(); + cmd.Undo(); + Assert.That(army.MaxPoints, Is.EqualTo(oldSize)); + Assert.That(army.Name, Is.EqualTo(oldName)); + } + + [Test] + public void TestCanExecuteRequiresArmyAndAtLeastOneValue() + { + EditArmyCommand cmd = new EditArmyCommand(null); + Assert.That(cmd.CanExecute(), Is.False); + Army army = CreateArmy(); + cmd = new EditArmyCommand(army); + Assert.That(cmd.CanExecute(), Is.False); + cmd.NewName = "NonNull"; + Assert.That(cmd.CanExecute(), Is.True); + cmd.NewName = null; + Assert.That(cmd.CanExecute(), Is.False); + cmd.NewSize = 1000; + Assert.That(cmd.CanExecute(), Is.True); + cmd.NewSize = 0; + Assert.That(cmd.CanExecute(), Is.False); + cmd.NewSize = -1; + Assert.That(cmd.CanExecute(), Is.False); + cmd.NewSize = 1; + Assert.That(cmd.CanExecute(), Is.True); + } + + + static Army CreateArmy() + { + return new Army(new MockRace(), "default name", 1000); + } + } +} diff -r 12a8279f116f -r 7b90f41f27e5 IBBoard.WarFoundry.API.Tests.csproj --- a/IBBoard.WarFoundry.API.Tests.csproj Sun Aug 21 21:02:48 2011 +0100 +++ b/IBBoard.WarFoundry.API.Tests.csproj Wed Aug 31 14:00:18 2011 +0100 @@ -106,6 +106,7 @@ + @@ -299,6 +300,7 @@ + False @@ -364,7 +366,5 @@ true - - - + \ No newline at end of file