using NUnit.Framework; using System; using System.Collections.Generic; using TINK.Model.Bike; using TINK.Model.State; using BikeInfo = TINK.Model.Bike.BC.BikeInfo; using BikeInfoMutable = TINK.Model.Bike.BC.BikeInfoMutable; namespace TestTINKLib { /// /// Moved to TestShareeLib (.Net Core) /// [TestFixture] public class TestBikeCollectionMutable { /// Tests the member. [Test] public void TestAdd() { var l_oColl = new BikeCollectionMutable(); l_oColl.Add(new BikeInfoMutable(57, false, new List { "TINK" }, WheelType.Two, TypeOfBike.Allround)); Assert.Throws(() => l_oColl.Add(new BikeInfoMutable(57, false, new List { "TINK" }, WheelType.Trike, TypeOfBike.Cargo))); } [Test] public void TestUpdate_Null() { var l_oBikeRequested = new BikeInfoMutable(20, false, new List { "TINK" }, WheelType.Trike, TypeOfBike.Allround); l_oBikeRequested.State.Load(new StateInfo(() => DateTime.Now, DateTime.Now, "john@long", "1234")); var l_oBikeColl = new BikeCollectionMutable { new BikeInfoMutable(63, false, new List { "TINK" }, WheelType.Two, TypeOfBike.Allround), new BikeInfoMutable(57, false, new List { "TINK" }, WheelType.Trike, TypeOfBike.Cargo), l_oBikeRequested, }; // Verify initial state Assert.NotNull(l_oBikeColl.GetById("63")); Assert.AreEqual(InUseStateEnum.Disposable, l_oBikeColl.GetById("57").State.Value); Assert.AreEqual(InUseStateEnum.Reserved, l_oBikeColl.GetById("20").State.Value); Assert.Null(l_oBikeColl.GetById("33")); l_oBikeColl.Update(null); // Verify modified state Assert.Null(l_oBikeColl.GetById("63")); Assert.Null(l_oBikeColl.GetById("57")); Assert.Null(l_oBikeColl.GetById("20")); Assert.Null(l_oBikeColl.GetById("33")); } [Test] public void TestUpdate() { var l_oBikeRequested = new BikeInfoMutable(20, false, new List { "TINK" }, WheelType.Trike, TypeOfBike.Allround); l_oBikeRequested.State.Load(new StateInfo(() => DateTime.Now, DateTime.Now, "john@long", "1234")); var l_oBikeColl = new BikeCollectionMutable { new BikeInfoMutable(63, false, new List { "TINK" }, WheelType.Two, TypeOfBike.Allround), new BikeInfoMutable(57, false, new List { "TINK" }, WheelType.Trike, TypeOfBike.Cargo), l_oBikeRequested, }; // Verify initial state Assert.NotNull(l_oBikeColl.GetById("63")); // Will be removed Assert.AreEqual(InUseStateEnum.Disposable, l_oBikeColl.GetById("57").State.Value); // Will be requested Assert.AreEqual(InUseStateEnum.Reserved, l_oBikeColl.GetById("20").State.Value); // Will be booked Assert.Null(l_oBikeColl.GetById("33")); // var l_oBikeResponse = new List { new BikeInfo("57", false, new [] { "TINK" }, WheelType.Trike, TypeOfBike.Allround, "Test description", 7, DateTime.Now, "john@long,", "1234"), new BikeInfo("20", false, new [] {"TINK" }, WheelType.Trike, TypeOfBike.Allround, "Test description", 7, DateTime.Now, "john@long,", "1234"), new BikeInfo("33", 7, false, new [] {"TINK" }, WheelType.Trike, TypeOfBike.Allround), }; l_oBikeColl.Update(l_oBikeResponse); // Verify modified state Assert.Null(l_oBikeColl.GetById("63")); Assert.AreEqual(InUseStateEnum.Booked, l_oBikeColl.GetById("57").State.Value); Assert.AreEqual(InUseStateEnum.Booked, l_oBikeColl.GetById("20").State.Value); Assert.NotNull(l_oBikeColl.GetById("33")); } } }