using System; using System.Collections.Generic; using NUnit.Framework; using TINK.Model.Bike; using TINK.Model.Bikes.Bike; using TINK.Model.State; namespace TestTINKLib { [TestFixture] class TestBikeMutable { private class BikeInfoMutable : TINK.Model.Bike.BC.BikeInfoMutable { public BikeInfoMutable( string id, LockModel lockType, bool isDemo = false, IEnumerable group = null, WheelType? wheelType = null, TypeOfBike? typeOfBike = null, string description = null, string stationId = null, string stationName = null, Uri operatorUri = null, RentalDescription tariffDescription = null, Func dateTimeProvider = null, IStateInfo stateInfo = null) : base(id, lockType, isDemo, group, wheelType, typeOfBike, description, stationId, stationName, operatorUri, tariffDescription, dateTimeProvider, stateInfo) { } } [Test] public void TestConstruct() { var l_oBike = new BikeInfoMutable( "42", LockModel.ILockIt, false, new List { "TINK" }, WheelType.Two, TypeOfBike.Cargo); Assert.AreEqual("42", l_oBike.Id); Assert.IsFalse(l_oBike.IsDemo); Assert.AreEqual(WheelType.Two, l_oBike.WheelType); Assert.AreEqual(TypeOfBike.Cargo, l_oBike.TypeOfBike); Assert.AreEqual(InUseStateEnum.Disposable, l_oBike.State.Value); Assert.IsNull(l_oBike.StationId); l_oBike = new BikeInfoMutable( "17", LockModel.ILockIt, true, new List { "TINK" }, WheelType.Mono, TypeOfBike.Allround, "Test description", "1"); Assert.AreEqual("17", l_oBike.Id); Assert.IsTrue(l_oBike.IsDemo); Assert.AreEqual(WheelType.Mono, l_oBike.WheelType); Assert.AreEqual(TypeOfBike.Allround, l_oBike.TypeOfBike); Assert.AreEqual(InUseStateEnum.Disposable, l_oBike.State.Value); Assert.AreEqual("1", l_oBike.StationId); } [Test] public void TestToString() { var l_oBike = new BikeInfoMutable("3", LockModel.ILockIt, false, new List { "TINK" }, WheelType.Two, TypeOfBike.Cargo, dateTimeProvider: () => new DateTime(1970, 1, 1)); Assert.AreEqual( "Id=3, wheel(s)=Two, type=Cargo, demo=False, state=Disposable, location=On the road.", l_oBike.ToString()); l_oBike = new BikeInfoMutable("3", LockModel.ILockIt, true, new List { "TINK" }, WheelType.Trike, TypeOfBike.Allround, "Test description", "5", dateTimeProvider: () => new DateTime(1970, 1, 1)); Assert.AreEqual( "Id=3, wheel(s)=Trike, type=Allround, demo=True, state=Disposable, location=Station 5.", l_oBike.ToString()); } } }