view API/Objects/UnitEquipmentItemTest.cs @ 20:beaf7a48a93f

Re #198: Create equipment slots * Fix UnitEquipmentItem tests for new limits
author IBBoard <dev@ibboard.co.uk>
date Tue, 27 Oct 2009 20:08:52 +0000
parents 9b23e72ba3cf
children 2395dc131401
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 DefaultMinMaxNumberLimitsAreUnlimited()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			Assert.IsTrue(item.MinLimit is UnlimitedLimit);
			Assert.IsTrue(item.MaxLimit is UnlimitedLimit);
		}
		
		[Test()]
		public void MinNumberLimitEqualsMaxLimitWhenOnlyMaxLimitSet()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MaxLimit = new AbsoluteNumericLimit(1);
			Assert.AreEqual(item.MaxLimit, item.MinLimit);
		}
		
		[Test()]
		public void MaxNumberLimitEqualsMinLimitWhenOnlyMinLimitSet()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MinLimit = new AbsoluteNumericLimit(1);
			Assert.AreEqual(item.MinLimit, item.MaxLimit);
		}
		
		[Test()]
		public void MinNumberLimitUntouchedWhenSetFirst()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			AbsoluteNumericLimit limit = new AbsoluteNumericLimit(1);
			item.MinLimit = limit;
			item.MaxLimit = new AbsoluteNumericLimit(10);
			Assert.AreEqual(limit, item.MinLimit);
		}
		
		[Test()]
		public void EqualNumberLimitsDoesntFail()
		{
			UnitEquipmentItem item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MaxLimit = new AbsoluteNumericLimit(10);
			item.MinLimit = new AbsoluteNumericLimit(10);
			item = new UnitEquipmentItem(new MockEquipmentItem(), new MockUnitType());
			item.MinLimit = new AbsoluteNumericLimit(10);
			item.MaxLimit = new AbsoluteNumericLimit(10);
		}
	}
}