changeset 38:feb77f3287ca

Re #152: Test and fix extensibility of current schemas * Add unit test for parsing extended document without XSD for namespace
author IBBoard <dev@ibboard.co.uk>
date Sat, 27 Feb 2010 15:03:51 +0000
parents bf46c113d85c
children 5669f2ef6444
files API/Factories/Xml/WarFoundryXmlFactoryUtilTest.cs IBBoard.WarFoundry.API.Tests.csproj testdata/extended-data.racex
diffstat 3 files changed, 112 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/API/Factories/Xml/WarFoundryXmlFactoryUtilTest.cs	Sat Feb 27 15:03:51 2010 +0000
@@ -0,0 +1,20 @@
+//  This file (WarFoundryXmlFactoryUtilTest.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2010 IBBoard
+// 
+//  // The file and the library/program it is in are licensed and distributed, without warranty, under the GNU Affero GPL license, either version 3 of the License or (at your option) any later version. Please see COPYING for more information and the full license.
+
+using System;
+using System.IO;
+using NUnit.Framework;
+
+namespace IBBoard.WarFoundry.API.Factories.Xml
+{
+	[TestFixture()]
+	public class WarFoundryXmlFactoryUtilTest
+	{
+		[Test()]
+		public void TestParsingExtendedDataFile()
+		{
+			WarFoundryXmlFactoryUtils.CreateXmlDocumentFromStream(new FileInfo("testdata/extended-data.racex").OpenRead());		
+		}
+	}
+}
--- a/IBBoard.WarFoundry.API.Tests.csproj	Sat Feb 27 14:26:19 2010 +0000
+++ b/IBBoard.WarFoundry.API.Tests.csproj	Sat Feb 27 15:03:51 2010 +0000
@@ -59,6 +59,7 @@
     <Compile Include="API\Factories\Xml\WarFoundryXmlRaceFactoryTest.cs" />
     <Compile Include="API\FixedGameSystemWarFoundryLoader.cs" />
     <Compile Include="API\Factories\Xml\SingleXmlObjectLoader.cs" />
+    <Compile Include="API\Factories\Xml\WarFoundryXmlFactoryUtilTest.cs" />
   </ItemGroup>
   <ItemGroup>
     <None Include="testdata\Test.race">
@@ -77,6 +78,9 @@
     <None Include="testdata\race-with-non-existant-ability.systemx">
       <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
     </None>
+    <None Include="testdata\extended-data.racex">
+      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
+    </None>
   </ItemGroup>
   <ItemGroup>
     <Reference Include="ICSharpCode.SharpZipLib, Version=0.85.5.452, Culture=neutral, PublicKeyToken=1b03e6acf1164f73">
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/testdata/extended-data.racex	Sat Feb 27 15:03:51 2010 +0000
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<race xmlns="http://ibboard.co.uk/warfoundry/race" xmlns:ext="http://ibboard.co.uk/warfoundry/attrib" id="EmpireAlt" name="Empire (Extended)" system="test" ext:extraAttrib="en">
+	<units>
+		<unit id="Empire1" typeName="Empire General" cat="cat1" points="100" maxNum="1" maxSize="1">
+			<stats>
+				<stat name="m">4</stat>
+				<stat name="WS">6</stat>
+				<stat name="BS">6</stat>
+				<stat name="S">4</stat>
+				<stat name="T">4</stat>
+				<stat name="W">3</stat>
+				<stat name="I">6</stat>
+				<stat name="A">4</stat>
+				<stat name="Ld">9</stat>
+			</stats>
+			<unitEquipment>
+				<unitEquipmentItem id="equip1" required="true" />
+			</unitEquipment>
+		</unit>
+		<unit id="Empire2" typeName="Swordsmen" cat="cat2" points="10">
+			<stats>
+				<stat name="M">4</stat>
+				<stat name="WS">3</stat>
+				<stat name="BS">3</stat>
+				<stat name="S">4</stat>
+				<stat name="T">3</stat>
+				<stat name="W">1</stat>
+				<stat name="I">4</stat>
+				<stat name="A">1</stat>
+				<stat name="Ld">7</stat>
+			</stats>
+			<unitEquipment>
+				<unitEquipmentItem id="equip1" required="true" exclusivityGroup="group1" />
+				<unitEquipmentItem id="equip2"/>
+				<unitEquipmentItem id="equip3" required="true" exclusivityGroup="group1" />
+			</unitEquipment>
+			<contains>
+				<containedUnit containedID="Empire3" />
+			</contains>
+		</unit>
+		<unit id="Empire3" typeName="Swordsmen Champion" cat="cat2" points="35">
+			<stats>
+				<stat name="M">4</stat>
+				<stat name="WS">4</stat>
+				<stat name="BS">3</stat>
+				<stat name="S">4</stat>
+				<stat name="T">3</stat>
+				<stat name="W">1</stat>
+				<stat name="I">4</stat>
+				<stat name="A">2</stat>
+				<stat name="Ld">7</stat>
+			</stats>
+			<unitEquipment>
+				<unitEquipmentItem id="equip1" required="true" exclusivityGroup="group1" />
+				<unitEquipmentItem id="equip2"/>
+				<unitEquipmentItem id="equip3" required="true" exclusivityGroup="group1" />
+			</unitEquipment>
+		</unit>
+		<unit id="Empire4" typeName="Gunnery Specialists" cat="cat2" points="15">
+			<stats>
+				<stat name="M">4</stat>
+				<stat name="WS">3</stat>
+				<stat name="BS">4</stat>
+				<stat name="S">4</stat>
+				<stat name="T">3</stat>
+				<stat name="W">1</stat>
+				<stat name="I">4</stat>
+				<stat name="A">1</stat>
+				<stat name="Ld">7</stat>
+			</stats>
+			<unitEquipment>
+				<unitEquipmentItem id="equip4" required="true" exclusivityGroup="group1" minPercentage="50" maxPercentage="100" />
+				<unitEquipmentItem id="equip1" required="true" />
+				<unitEquipmentItem id="equip5" minNum="0" maxNum="5" />
+			</unitEquipment>
+			<contains>
+				<containedUnit containedID="Empire3" />
+			</contains>
+		</unit>
+	</units>
+	<equipment>
+		<equipmentItem id="equip1" name="sword" cost="1"/>
+		<equipmentItem id="equip2" name="shield" cost="1"/>
+		<equipmentItem id="equip3" name="broadsword" cost="2" />
+		<equipmentItem id="equip4" name="Standard Guns" cost="3" />
+		<equipmentItem id="equip5" name="Special Guns" cost="5" />
+	</equipment>
+</race>