Mercurial > repos > IBBoard.WarFoundry.API.Tests
diff API/Factories/Xml/WarFoundryXmlRaceFactoryTest.cs @ 50:d3519f38a0f4
Re #270: Add multiple categories to API
* Add unit tests and test data for handling multiple categories and existing method
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Tue, 18 May 2010 19:57:44 +0000 |
parents | b4b4bde843d7 |
children | 9d68b5dd70b3 |
line wrap: on
line diff
--- a/API/Factories/Xml/WarFoundryXmlRaceFactoryTest.cs Tue May 18 19:33:27 2010 +0000 +++ b/API/Factories/Xml/WarFoundryXmlRaceFactoryTest.cs Tue May 18 19:57:44 2010 +0000 @@ -7,6 +7,7 @@ using NUnit.Framework; using System.Collections.Generic; using System.IO; +using NUnit.Framework.SyntaxHelpers; namespace IBBoard.WarFoundry.API.Factories.Xml { @@ -152,6 +153,52 @@ Assert.AreEqual("Empire General", unitType.UnitStatsArraysWithName[0][0].SlotValueString); } + + [Test()] + public void TestSingleUnitArmyWithNoCategoriesUsesMainCategory() + { + SetDefaultGameSystem(); + FileInfo raceFile = new FileInfo("testdata/single-unit-no-category.racex"); + Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); + Category category = race.GetCategory("cat1"); + UnitType[] unitTypes = race.GetUnitTypes(category); + Assert.AreEqual(1, unitTypes.Length); + UnitType unitType = unitTypes[0]; + Assert.That(unitType.MainCategory, Is.EqualTo(category)); + Assert.That(unitType.Categories.Length, Is.EqualTo(1)); + Assert.That(unitType.Categories, Has.Member(category)); + } + + [Test()] + public void TestSingleUnitArmyWithOneCategoryAndSameMainCategoryHasOneCategory() + { + SetDefaultGameSystem(); + FileInfo raceFile = new FileInfo("testdata/single-unit-one-category-same-main-category.racex"); + Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); + Category category = race.GetCategory("cat1"); + UnitType[] unitTypes = race.GetUnitTypes(category); + Assert.AreEqual(1, unitTypes.Length); + UnitType unitType = unitTypes[0]; + Assert.That(unitType.MainCategory, Is.EqualTo(category)); + Assert.That(unitType.Categories.Length, Is.EqualTo(1)); + Assert.That(unitType.Categories, Has.Member(category)); + } + + [Test()] + public void TestSingleUnitArmyWithOneCategoryAndDifferentMainCategoryHasTwoCategories() + { + SetDefaultGameSystem(); + FileInfo raceFile = new FileInfo("testdata/single-unit-one-category-different-main-category.racex"); + Race race = SingleXmlObjectLoader.LoadRaceFromXML(WarFoundryXmlFactory.GetFactory(), raceFile); + Category category = race.GetCategory("cat1"); + UnitType[] unitTypes = race.GetUnitTypes(category); + Assert.AreEqual(1, unitTypes.Length); + UnitType unitType = unitTypes[0]; + Assert.That(unitType.MainCategory, Is.EqualTo(category)); + Assert.That(unitType.Categories.Length, Is.EqualTo(2)); + Assert.That(unitType.Categories, Has.Member(category)); + Assert.That(unitType.Categories, Has.Member(race.GetCategory("cat2"))); + } private static void SetDefaultGameSystem() {