view API/Objects/UnitEquipmentItemTest.cs @ 19:9b23e72ba3cf

Re #198: Add equipment slots * Fix unit tests
author IBBoard <dev@ibboard.co.uk>
date Tue, 27 Oct 2009 20:00:54 +0000
parents ca5d7c2c7493
children beaf7a48a93f
line wrap: on
line source

// This file (UnitEquipmentItemTests.cs) is a part of the IBBoard.WarFoundry.API.Tests project and is copyright 2009 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 NUnit.Framework;
using IBBoard.Limits;
using IBBoard.WarFoundry.API.Objects.Mock;

namespace IBBoard.WarFoundry.API.Objects
{
	[TestFixture()]
	public class UnitEquipmentItemTest
	{
		/*
		[Test()]
		public void DefaultMinMaxNumberLimitsAreZero()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			Assert.AreEqual(0, item.MinNumber);
			Assert.AreEqual(0, item.MaxNumber);
		}
		
		[Test()]
		public void MinNumberLimitEqualsMaxLimitWhenOnlyMaxLimitSet()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MaxNumber = 1;
			Assert.AreEqual(1, item.MinNumber);
		}
		
		[Test()]
		public void MinNumberLimitUntouchedWhenSetFirst()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MinNumber = 1;
			item.MaxNumber = 10;
			Assert.AreEqual(1, item.MinNumber);
		}
		
		[Test()]
		public void MinNumberLimitSetToMaxWhenMaxLessThanMin()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MinNumber = 10;
			item.MaxNumber = 1;
			Assert.AreEqual(1, item.MinNumber);
		}
		
		[Test()]
		public void MaxNumberLimitSetToMinWhenMinGreaterThanMax()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MaxNumber = 1;
			item.MinNumber = 10;
			Assert.AreEqual(10, item.MaxNumber);
		}
		
		[Test()]
		public void EqualNumberLimitsDoesntFail()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MaxNumber = 10;
			item.MinNumber = 10;
			item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MinNumber = 10;
			item.MaxNumber = 10;
		}
		
		[Test()]
		public void TestMinNumberLimitUnchangedWhenMaxSetToInfinity()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MinNumber = 10;
			item.MaxNumber = WarFoundryCore.INFINITY;
			Assert.AreEqual(10, item.MinNumber);
		}
		
		[Test()]
		public void TestMaxNumberLimitSetToMinWhenMinSetToInfinity()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MaxNumber = 10;
			item.MinNumber = WarFoundryCore.INFINITY;
			Assert.AreEqual(WarFoundryCore.INFINITY, item.MaxNumber);
		}
		
		[Test()]
		public void DefaultMinMaxPercentageLimitsAreZero()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			Assert.AreEqual(0, item.MinPercentage);
			Assert.AreEqual(0, item.MaxPercentage);
		}
		
		[Test()]
		public void MinPercentLimitEqualsMaxLimitWhenOnlyMaxLimitSet()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MaxPercentage = 50;
			Assert.AreEqual(50, item.MinPercentage);
		}
		
		[Test()]
		public void MinPercentLimitUntouchedWhenSetFirst()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MinPercentage = 25;
			item.MaxPercentage = 50;
			Assert.AreEqual(25, item.MinPercentage);
		}
		
		[Test()]
		public void MinPercentLimitSetToMaxWhenMaxLessThanMin()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MinNumber = 50;
			item.MaxPercentage = 25;
			Assert.AreEqual(25, item.MinPercentage);
		}
		
		[Test()]
		public void MaxPercentLimitSetToMinWhenMinGreaterThanMax()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MaxPercentage = 25;
			item.MinPercentage = 50;
			Assert.AreEqual(50, item.MaxPercentage);
		}
		
		[Test()]
		public void EqualPercentLimitsDoesntFail()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MaxPercentage = 50;
			item.MinPercentage = 50;
			item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MinPercentage = 50;
			item.MaxPercentage = 50;
		}
		*/
		[Test()]
		public void TestSettingOnlyMinLimitSetsMatchingMaxLimit()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MinLimit = new UnlimitedLimit();
			Assert.AreEqual(item.MinLimit, item.MaxLimit);
		}
		
		[Test()]
		public void TestSettingOnlyMaxLimitSetsMatchingMinLimit()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MaxLimit = new UnlimitedLimit();
			Assert.AreEqual(item.MaxLimit, item.MinLimit);
		}
	}
}