changeset 72:d1d79adcb11d

Re #297: Move Categories over to key/keyref from ID/IDREF * Add unit tests for races with category overrides
author IBBoard <dev@ibboard.co.uk>
date Wed, 21 Jul 2010 20:28:28 +0000
parents a2095a3685fc
children 7458f35d1bb5
files API/Factories/Xml/WarFoundryXmlRaceFactoryTest.cs IBBoard.WarFoundry.API.Tests.csproj testdata/xml-race-factory/duplicate-category-ids.racex testdata/xml-race-factory/valid-categories.racex
diffstat 4 files changed, 70 insertions(+), 0 deletions(-) [+]
line diff
     1.1 --- a/API/Factories/Xml/WarFoundryXmlRaceFactoryTest.cs	Wed Jul 07 19:01:32 2010 +0000
     1.2 +++ b/API/Factories/Xml/WarFoundryXmlRaceFactoryTest.cs	Wed Jul 21 20:28:28 2010 +0000
     1.3 @@ -327,6 +327,20 @@
     1.4  			Assert.That(unitTypesCat2, Is.All.EqualTo(unitType));
     1.5  		}
     1.6  
     1.7 +		[Test()]
     1.8 +		public void TestValidCategoriesLoadsCorrectly()
     1.9 +		{
    1.10 +			SetDefaultGameSystem();
    1.11 +			Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), new FileInfo("testdata/xml-race-factory/valid-categories.racex"));
    1.12 +			Assert.That(race.Categories, Has.Length(5));
    1.13 +		}
    1.14 +
    1.15 +		[Test()]
    1.16 +		public void TestDuplicateCategoryIDErrors()
    1.17 +		{
    1.18 +			TestFileValidationFailure("testdata/xml-race-factory/duplicate-category-ids.racex");
    1.19 +		}
    1.20 +
    1.21  		private void TestFileValidationFailure(string filePath)
    1.22  		{
    1.23  			SetDefaultGameSystem();
     2.1 --- a/IBBoard.WarFoundry.API.Tests.csproj	Wed Jul 07 19:01:32 2010 +0000
     2.2 +++ b/IBBoard.WarFoundry.API.Tests.csproj	Wed Jul 21 20:28:28 2010 +0000
     2.3 @@ -219,6 +219,12 @@
     2.4      <None Include="testdata\xml-system-factory\duplicate-category-ids.systemx">
     2.5        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     2.6      </None>
     2.7 +    <None Include="testdata\xml-race-factory\valid-categories.racex">
     2.8 +      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     2.9 +    </None>
    2.10 +    <None Include="testdata\xml-race-factory\duplicate-category-ids.racex">
    2.11 +      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    2.12 +    </None>
    2.13    </ItemGroup>
    2.14    <ItemGroup>
    2.15      <Reference Include="ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=neutral, PublicKeyToken=1b03e6acf1164f73">
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/testdata/xml-race-factory/duplicate-category-ids.racex	Wed Jul 21 20:28:28 2010 +0000
     3.3 @@ -0,0 +1,25 @@
     3.4 +<?xml version="1.0" encoding="UTF-8"?>
     3.5 +<race xmlns="http://ibboard.co.uk/warfoundry/race" xmlns:cats="http://ibboard.co.uk/warfoundry/cats" xmlns:core="http://ibboard.co.uk/warfoundry/core" id="Empire" name="Empire" system="default">
     3.6 +	<categories>
     3.7 +		<cats:cat id="cat1" name="Characters" minPercentage="0" maxPercentage="50" />
     3.8 +		<cats:cat id="cat1" name="Regiments" minPercentage="25" maxPercentage="100" />
     3.9 +		<cats:cat id="cat3" name="War Machines" minPercentage="0" maxPercentage="25" />
    3.10 +		<cats:cat id="cat4" name="Monsters" minPercentage="0" maxPercentage="25" />
    3.11 +		<cats:cat id="cat5" name="Allies" minPercentage="0" maxPercentage="25" />
    3.12 +	</categories>
    3.13 +	<units>
    3.14 +		<unit id="Empire1" typeName="Empire General" cat="cat1" points="100" maxNum="1" maxSize="1">
    3.15 +			<stats>
    3.16 +				<stat name="M">4</stat>
    3.17 +				<stat name="WS">6</stat>
    3.18 +				<stat name="BS">6</stat>
    3.19 +				<stat name="S">4</stat>
    3.20 +				<stat name="T">4</stat>
    3.21 +				<stat name="W">3</stat>
    3.22 +				<stat name="I">6</stat>
    3.23 +				<stat name="A">4</stat>
    3.24 +				<stat name="Ld">9</stat>
    3.25 +			</stats>
    3.26 +		</unit>
    3.27 +	</units>
    3.28 +</race>
    3.29 \ No newline at end of file
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/testdata/xml-race-factory/valid-categories.racex	Wed Jul 21 20:28:28 2010 +0000
     4.3 @@ -0,0 +1,25 @@
     4.4 +<?xml version="1.0" encoding="UTF-8"?>
     4.5 +<race xmlns="http://ibboard.co.uk/warfoundry/race" xmlns:cats="http://ibboard.co.uk/warfoundry/cats" xmlns:core="http://ibboard.co.uk/warfoundry/core" id="Empire" name="Empire" system="default">
     4.6 +	<categories>
     4.7 +		<cats:cat id="cat1" name="Characters" minPercentage="0" maxPercentage="50" />
     4.8 +		<cats:cat id="cat2" name="Regiments" minPercentage="25" maxPercentage="100" />
     4.9 +		<cats:cat id="cat3" name="War Machines" minPercentage="0" maxPercentage="25" />
    4.10 +		<cats:cat id="cat4" name="Monsters" minPercentage="0" maxPercentage="25" />
    4.11 +		<cats:cat id="cat5" name="Allies" minPercentage="0" maxPercentage="25" />
    4.12 +	</categories>
    4.13 +	<units>
    4.14 +		<unit id="Empire1" typeName="Empire General" cat="cat1" points="100" maxNum="1" maxSize="1">
    4.15 +			<stats>
    4.16 +				<stat name="M">4</stat>
    4.17 +				<stat name="WS">6</stat>
    4.18 +				<stat name="BS">6</stat>
    4.19 +				<stat name="S">4</stat>
    4.20 +				<stat name="T">4</stat>
    4.21 +				<stat name="W">3</stat>
    4.22 +				<stat name="I">6</stat>
    4.23 +				<stat name="A">4</stat>
    4.24 +				<stat name="Ld">9</stat>
    4.25 +			</stats>
    4.26 +		</unit>
    4.27 +	</units>
    4.28 +</race>
    4.29 \ No newline at end of file