Version 3.0.371

This commit is contained in:
Anja 2023-08-31 12:31:38 +02:00
parent bdb2dec1c1
commit 6d22dbf40b
145 changed files with 2289 additions and 764 deletions

View file

@ -20,7 +20,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.Bike.BC
public TestBikeInfoSubClass(
IStateInfo stateInfo,
TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike bike,
Drive drive,
DriveMutable drive,
bool? isDemo = DEFAULTVALUEISDEMO,
IEnumerable<string> group = null,
string stationId = null,
@ -43,7 +43,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.Bike.BC
public void TestCtorBikeNull()
{
Assert.That(
() => new TestBikeInfoSubClass(new StateInfo(), null, new Drive()),
() => new TestBikeInfoSubClass(new StateInfo(), null, new DriveMutable()),
Throws.ArgumentNullException);
}

View file

@ -30,7 +30,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.Bike
Func<DateTime> dateTimeProvider = null,
IStateInfo stateInfo = null) : base(
new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike(id, lockModel, wheelType, typeOfBike, aaRideType, description),
new TINK.Model.Bikes.BikeInfoNS.DriveNS.Drive(),
new TINK.Model.Bikes.BikeInfoNS.DriveNS.DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
isDemo,
group,

View file

@ -28,7 +28,7 @@ namespace TestTINKLib
Func<DateTime> dateTimeProvider = null,
IStateInfo stateInfo = null) : base(
new Bike(id, lockType, wheelType, typeOfBike, aaRideType, description),
new TINK.Model.Bikes.BikeInfoNS.DriveNS.Drive(),
new TINK.Model.Bikes.BikeInfoNS.DriveNS.DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
isDemo,
group,

View file

@ -31,7 +31,7 @@ namespace UITest.Fixtures.ViewModel
Func<DateTime> dateTimeProvider = null,
IStateInfo stateInfo = null) : base(
new Bike(id, lockModel, wheelType, typeOfBike, aaRideType, description),
new TINK.Model.Bikes.BikeInfoNS.DriveNS.Drive(),
new TINK.Model.Bikes.BikeInfoNS.DriveNS.DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
pisDemo,
group,

View file

@ -10,6 +10,7 @@ using TINK.Model.Connector;
using TINK.Model.Device;
using TINK.Model.State;
using TINK.Model.User;
using TINK.Repository.Request;
using TINK.Services.BluetoothLock;
using TINK.Services.Geolocation;
using static TINK.Model.Bikes.BikeInfoNS.BluetoothLock.Command.GetLockedLocationCommand;
@ -199,5 +200,39 @@ namespace TestShareeLib.Model.Bikes.BikeInfoNS.BluetoothLock.Command
await listener.ReportStateAsync(State.QueryLocationSucceeded, string.Empty);
});
}
/// <summary>
/// Use case: End rental.
/// Final state: Disposable closed
/// </summary>
[Test]
public async Task TestReturnClosingLockLocationAvailable()
{
var bike = Substitute.For<IBikeInfoMutable>();
var geolocation = Substitute.For<IGeolocationService>();
var locks = Substitute.For<ILocksService>();
var listener = Substitute.For<IGetLockedLocationCommandListener>();
var closingLockLocation = Substitute.For<IGeolocation>();
closingLockLocation.Latitude.Returns(7);
closingLockLocation.Longitude.Returns(9);
closingLockLocation.Timestamp.Returns(DateTimeOffset.MinValue);
bike.LockInfo.Location.Returns((IGeolocation)closingLockLocation); // When locking bike geolocation was available.
var lockingLocation = await InvokeAsync<TestGetBikeLocationCommand>(
bike,
geolocation,
locks,
() => DateTime.MinValue,
listener);
// Verify behavior
Received.InOrder(() =>
{
listener.ReportStep(Step.StartingQueryLocation);
return;
});
}
}
}

View file

@ -19,9 +19,9 @@ namespace TestTINKLib.Fixtures.ObjectTests.Bike.BluetoothLock
[Test]
public void TestCtorAvailable()
{
Assert.AreEqual("12", new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new Drive(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 5200544, new Guid("00000000-0000-0000-0000-000000000001"), "13").Id);
Assert.AreEqual("13", new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new Drive(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 5200544, new Guid("00000000-0000-0000-0000-000000000001"), "13").StationId);
Assert.AreEqual(InUseStateEnum.Disposable, new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new Drive(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 5200544, new Guid("00000000-0000-0000-0000-000000000001"), "13").State.Value);
Assert.AreEqual("12", new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new DriveMutable(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 5200544, new Guid("00000000-0000-0000-0000-000000000001"), "13").Id);
Assert.AreEqual("13", new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new DriveMutable(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 5200544, new Guid("00000000-0000-0000-0000-000000000001"), "13").StationId);
Assert.AreEqual(InUseStateEnum.Disposable, new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new DriveMutable(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 5200544, new Guid("00000000-0000-0000-0000-000000000001"), "13").State.Value);
}
[Test]
@ -30,7 +30,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.Bike.BluetoothLock
Assert.That(
() => new BikeInfo(
null,
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
5200544,
new Guid("00000000-0000-0000-0000-000000000001"),
@ -41,9 +41,9 @@ namespace TestTINKLib.Fixtures.ObjectTests.Bike.BluetoothLock
[Test]
public void TestCtorRequested()
{
Assert.AreEqual("12", new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new Drive(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1), false /*isDemo*/, null /*group*/).Id);
Assert.AreEqual(112, new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new Drive(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1), false /*isDemo*/, null /*group*/).LockInfo.Id);
Assert.AreEqual(InUseStateEnum.Reserved, new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new Drive(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1), false /*isDemo*/, null /*group*/).State.Value);
Assert.AreEqual("12", new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new DriveMutable(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1), false /*isDemo*/, null /*group*/).Id);
Assert.AreEqual(112, new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new DriveMutable(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1), false /*isDemo*/, null /*group*/).LockInfo.Id);
Assert.AreEqual(InUseStateEnum.Reserved, new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new DriveMutable(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null, null, dateTimeProvider: () => new DateTime(2019, 1, 1), false /*isDemo*/, null /*group*/).State.Value);
}
[Test]
@ -52,7 +52,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.Bike.BluetoothLock
Assert.That(
() => new BikeInfo(
null,
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
112,
new Guid(),
@ -73,9 +73,9 @@ namespace TestTINKLib.Fixtures.ObjectTests.Bike.BluetoothLock
[Test]
public void TestCtorBooked()
{
Assert.AreEqual("12", new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new Drive(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null /*operator uri*/).Id);
Assert.AreEqual(112, new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new Drive(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null /*operator uri*/).LockInfo.Id);
Assert.AreEqual(InUseStateEnum.Booked, new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new Drive(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null /*operator uri*/).State.Value);
Assert.AreEqual("12", new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new DriveMutable(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null /*operator uri*/).Id);
Assert.AreEqual(112, new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new DriveMutable(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null /*operator uri*/).LockInfo.Id);
Assert.AreEqual(InUseStateEnum.Booked, new BikeInfo(new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("12", LockModel.ILockIt), new DriveMutable(), TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri, 112, new Guid(), null, null, null, new DateTime(2020, 1, 1), "a@b", "13", null /*operator uri*/).State.Value);
}
[Test]
@ -84,7 +84,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.Bike.BluetoothLock
Assert.That(
() => new BikeInfo(
null,
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
112,
new Guid(),

View file

@ -27,7 +27,7 @@ namespace TestShareeLib.Model.Bike.BluetoothLock
new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike(
"MyBikeId",
TINK.Model.Bikes.BikeInfoNS.BikeNS.LockModel.ILockIt),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
42,
new Guid(),
@ -52,7 +52,7 @@ namespace TestShareeLib.Model.Bike.BluetoothLock
TINK.Model.Bikes.BikeInfoNS.BikeNS.LockModel.ILockIt,
TINK.Model.Bikes.BikeInfoNS.BikeNS.WheelType.Trike,
TINK.Model.Bikes.BikeInfoNS.BikeNS.TypeOfBike.Cargo),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
42,
new Guid(),

View file

@ -15,7 +15,7 @@ namespace TestShareeLib.Model.Bike.CopriLock
{
var bike = new TINK.Model.Bikes.BikeInfoNS.CopriLock.BikeInfo(
new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("bikeId", LockModel.Sigo),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
"stationId",
new TINK.Model.Bikes.BikeInfoNS.CopriLock.LockInfo());
@ -32,7 +32,7 @@ namespace TestShareeLib.Model.Bike.CopriLock
Assert.That(
() => new TINK.Model.Bikes.BikeInfoNS.CopriLock.BikeInfo(
null,
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
"stationId",
new TINK.Model.Bikes.BikeInfoNS.CopriLock.LockInfo()),
@ -44,7 +44,7 @@ namespace TestShareeLib.Model.Bike.CopriLock
{
var bike = new TINK.Model.Bikes.BikeInfoNS.CopriLock.BikeInfo(
new TINK.Model.Bikes.BikeInfoNS.BikeNS.Bike("bikeId", LockModel.Sigo),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
"stationId",
new TINK.Model.Bikes.BikeInfoNS.CopriLock.LockInfo(),
@ -61,7 +61,7 @@ namespace TestShareeLib.Model.Bike.CopriLock
Assert.That(
() => new TINK.Model.Bikes.BikeInfoNS.CopriLock.BikeInfo(
null,
new Drive(),
new DriveMutable(),
DataSource.Copri,
DateTime.Now,
"a@b",
@ -79,7 +79,7 @@ namespace TestShareeLib.Model.Bike.CopriLock
Assert.That(
() => new TINK.Model.Bikes.BikeInfoNS.CopriLock.BikeInfo(
null,
new Drive(),
new DriveMutable(),
DataSource.Copri,
DateTime.Now,
"a@b",

View file

@ -0,0 +1,93 @@
using NUnit.Framework;
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
namespace TestShareeLib.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS
{
[TestFixture]
public class TestBatteryMutable
{
[Test]
public void TestCurrentChargeBars()
{
var battery = new BatteryMutable(new Battery.Builder {
MaxChargeBars = 5,
CurrentChargeBars = 1,
CurrentChargePercent = 20.0
}.Build());
battery.CurrentChargeBars = 4;
Assert.That(
battery.CurrentChargeBars,
Is.EqualTo(4));
Assert.That(
battery.CurrentChargePercent,
Is.EqualTo(80.0));
}
[Test]
public void TestCurrentChargeBarsNull()
{
var battery = new BatteryMutable(new Battery.Builder
{
MaxChargeBars = 5,
CurrentChargeBars = 1,
CurrentChargePercent = 20.0
}.Build());
battery.CurrentChargeBars = null;
Assert.That(
battery.CurrentChargeBars,
Is.Null);
Assert.That(
battery.CurrentChargePercent,
Is.EqualTo(double.NaN));
}
[Test]
public void TestCurrentChargeBarsInvalidStateZero()
{
var battery = new BatteryMutable(new Battery.Builder
{
MaxChargeBars = 0, // Could lead to division by zero if not handled correctly.
CurrentChargeBars = null,
CurrentChargePercent = 20.0
}.Build());
battery.CurrentChargeBars = 4;
Assert.That(
battery.CurrentChargeBars,
Is.Null);
Assert.That(
battery.CurrentChargePercent,
Is.EqualTo(20.0));
}
[Test]
public void TestCurrentChargeBarsInvalidStateNull()
{
var battery = new BatteryMutable(new Battery.Builder
{
MaxChargeBars = null,
CurrentChargeBars = null,
CurrentChargePercent = 20.0
}.Build());
battery.CurrentChargeBars = 4;
Assert.That(
battery.CurrentChargeBars,
Is.Null);
Assert.That(
battery.CurrentChargePercent,
Is.EqualTo(20.0));
}
}
}

View file

@ -1,4 +1,4 @@
using NSubstitute;
using NSubstitute;
using NUnit.Framework;
using TINK.Model.Bikes.BikeInfoNS.DriveNS;
using TINK.Model.Bikes.BikeInfoNS.DriveNS.BatteryNS;
@ -12,7 +12,7 @@ namespace TestShareeLib.Model.BikeInfo.DriveNS
[Test]
public void TestCtorNoArgs()
{
var drive = new TINK.Model.Bikes.BikeInfoNS.DriveNS.Drive();
var drive = new DriveMutable();
Assert.That(
drive.Type,
Is.EqualTo(DriveType.SoleHumanPowered));
@ -35,7 +35,7 @@ namespace TestShareeLib.Model.BikeInfo.DriveNS
engine.Manufacturer.Returns("Bosch");
battery.CurrentChargePercent.Returns(97);
var drive = new TINK.Model.Bikes.BikeInfoNS.DriveNS.Drive(engine, battery);
var drive = new DriveMutable(engine, battery);
Assert.That(
drive.Engine.Manufacturer,

View file

@ -41,7 +41,7 @@ namespace TestTINKLib
Func<DateTime> dateTimeProvider = null,
IStateInfo stateInfo = null) : base(
new Bike(id, lockType, wheelType, typeOfBike, aaRideType, description),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
isDemo,
group,
@ -132,7 +132,7 @@ namespace TestTINKLib
{
new TINK.Model.Bikes.BikeInfoNS.CopriLock.BikeInfo(
new Bike("57", LockModel.ILockIt),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
DateTime.Now,
"john@long",
@ -141,7 +141,7 @@ namespace TestTINKLib
null),
new TINK.Model.Bikes.BikeInfoNS.CopriLock.BikeInfo(
new Bike("20", LockModel.ILockIt),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
DateTime.Now,
"john@long",
@ -150,7 +150,7 @@ namespace TestTINKLib
null),
new TINK.Model.Bikes.BikeInfoNS.CopriLock.BikeInfo(
new Bike("33", LockModel.Sigo),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
"7",
new TINK.Model.Bikes.BikeInfoNS.CopriLock.LockInfo()),
@ -186,7 +186,7 @@ namespace TestTINKLib
{
new TINK.Model.Bikes.BikeInfoNS.CopriLock.BikeInfo(
new Bike("57", LockModel.Sigo),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
"7" /*station id*/,
new TINK.Model.Bikes.BikeInfoNS.CopriLock.LockInfo()),
@ -226,7 +226,7 @@ namespace TestTINKLib
{
new TINK.Model.Bikes.BikeInfoNS.BluetoothLock.BikeInfo(
new Bike("57" /* bike id*/, LockModel.ILockIt, WheelType.Trike, TypeOfBike.Allround, AaRideType.NoAaRide, "Test description"),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
17, /* Lock id */
new Guid(),
@ -271,7 +271,7 @@ namespace TestTINKLib
{
new TINK.Model.Bikes.BikeInfoNS.CopriLock.BikeInfo(
new Bike("57", LockModel.Sigo),
new Drive(),
new DriveMutable(),
TINK.Model.Bikes.BikeInfoNS.BC.DataSource.Copri,
"7" /*station id*/,
new TINK.Model.Bikes.BikeInfoNS.CopriLock.LockInfo(),