Mercurial > repos > IBBoard.Tests
view Limits/AbstractCompositeLimitTest.cs @ 28:31fdc90f3556
* Fix license comments at top of files
no-open-ticket
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 21 Aug 2010 10:07:09 +0000 |
parents | 57b5d27e95fb |
children | 99e4c1949c92 |
line wrap: on
line source
// This file (AbstractCompositeLimitTest.cs) is a part of the IBBoard.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 LGPL, 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.Collections.Generic; using NUnit.Framework; using NUnit.Framework.SyntaxHelpers; namespace IBBoard.Limits { public abstract class AbstractCompositeLimitTest { [Test()] public void TestCompositeWithZeroLimits() { Assert.That(CreateCompositeLimitWithCollection(new List<ILimit>()).GetLimit(100), Is.EqualTo(0)); } [Test()] public void TestCompositeWithOneLimitReturnsLimitValue() { NumericSizeConstrainedLimit limit = new NumericSizeConstrainedLimit(10); AbstractCompositeLimit compositeLimit = CreateCompositeLimitWithLimit(limit); Assert.That(compositeLimit.GetLimit(1), Is.EqualTo(limit.GetLimit(1))); Assert.That(compositeLimit.GetLimit(10), Is.EqualTo(limit.GetLimit(10))); Assert.That(compositeLimit.GetLimit(100), Is.EqualTo(limit.GetLimit(100))); } [Test()] public void TestCompositeWithMultipleLimitsReturnsCorrectValues() { List<ILimit> limits = new List<ILimit>(); int sizeConstrainedLimitNum = 10; NumericSizeConstrainedLimit limit1 = new NumericSizeConstrainedLimit(sizeConstrainedLimitNum); limits.Add(limit1); int absoluteLimitNum = 5; AbsoluteNumericLimit limit2 = new AbsoluteNumericLimit(absoluteLimitNum); limits.Add(limit2); AbstractCompositeLimit compositeLimit = CreateCompositeLimitWithCollection(limits); Assert.That(compositeLimit.GetLimit(1), Is.EqualTo(GetMultipleLimitValue(1, sizeConstrainedLimitNum, absoluteLimitNum))); Assert.That(compositeLimit.GetLimit(10), Is.EqualTo(GetMultipleLimitValue(10, sizeConstrainedLimitNum, absoluteLimitNum))); Assert.That(compositeLimit.GetLimit(100), Is.EqualTo(GetMultipleLimitValue(100, sizeConstrainedLimitNum, absoluteLimitNum))); } protected abstract AbstractCompositeLimit CreateCompositeLimitWithLimit(ILimit limit); protected abstract AbstractCompositeLimit CreateCompositeLimitWithCollection(List<ILimit> limits); protected abstract int GetMultipleLimitValue(int numberBeingLimited, int sizeConstrainedLimitNum, int absoluteLimitNum); } }