mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2025-06-21 21:46:27 +02:00
Version 3.0.366
This commit is contained in:
parent
0eb7362cb8
commit
24cdfbb0ca
84 changed files with 900 additions and 393 deletions
|
@ -45,7 +45,7 @@ namespace UITest.Fixtures.ViewModel
|
|||
}
|
||||
}
|
||||
/// <summary>
|
||||
/// Tests base class functionaltiy by using child.
|
||||
/// Tests base class functionality by using child.
|
||||
/// </summary>
|
||||
public static BikeViewModelBase TestStateText_LoggedIn_Reserved(Func<TINK.Model.Bikes.BikeInfoNS.BC.BikeInfoMutable, User, BikeViewModelBase> p_oFactory)
|
||||
{
|
||||
|
@ -67,6 +67,7 @@ namespace UITest.Fixtures.ViewModel
|
|||
l_oBike.State.Load(
|
||||
InUseStateEnum.Reserved, // Copri acknowledges state reserved.
|
||||
new DateTime(1980, 1, 1), // Date when bike was booked.
|
||||
TimeSpan.FromMinutes(15),
|
||||
"ragu@gnu-systems.de"); // Owner from Copri.
|
||||
|
||||
var l_oStoreMock = new StoreMock(new Account("ragu@gnu-systems.de", "123456789" /* password */, false, "987654321" /* session cookie */, new List<string> { "TINK" }));
|
||||
|
@ -87,7 +88,7 @@ namespace UITest.Fixtures.ViewModel
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tests base class functionaltiy by using child.
|
||||
/// Tests base class functionality by using child.
|
||||
/// </summary>
|
||||
public static BikeViewModelBase TestStateText_LoggedIn_ReservedWithCopriConnect(Func<TINK.Model.Bikes.BikeInfoNS.BC.BikeInfoMutable, User, BikeViewModelBase> p_oFactory)
|
||||
{
|
||||
|
@ -109,6 +110,7 @@ namespace UITest.Fixtures.ViewModel
|
|||
l_oBike.State.Load(
|
||||
InUseStateEnum.Reserved, // Copri acknowledges state reserved.
|
||||
new DateTime(1980, 1, 1),
|
||||
TimeSpan.FromMinutes(15),
|
||||
"ragu@gnu-systems.de", // Owner from Copri.
|
||||
"4asdfA"); // Reservation code from Copri
|
||||
|
||||
|
@ -129,7 +131,7 @@ namespace UITest.Fixtures.ViewModel
|
|||
}
|
||||
|
||||
/// <summary>
|
||||
/// Tests base class functionaltiy by using child.
|
||||
/// Tests base class functionality by using child.
|
||||
/// </summary>
|
||||
public static BikeViewModelBase TestStateText_LoggedIn_Booked(Func<TINK.Model.Bikes.BikeInfoNS.BC.BikeInfoMutable, User, BikeViewModelBase> p_oFactory)
|
||||
{
|
||||
|
@ -139,6 +141,7 @@ namespace UITest.Fixtures.ViewModel
|
|||
l_oBike.State.Load(
|
||||
InUseStateEnum.Booked,
|
||||
new DateTime(2017, 10, 24, 21, 49, 3),
|
||||
TimeSpan.FromMinutes(15),
|
||||
"ragu@gnu-systems.de",
|
||||
"4asdfA");
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ namespace TestTINKLib
|
|||
public void TestUpdate_Null()
|
||||
{
|
||||
var l_oBikeRequested = new BikeInfoMutable("20", LockModel.ILockIt, false, new List<string> { "TINK" }, WheelType.Trike, TypeOfBike.Allround);
|
||||
l_oBikeRequested.State.Load(new StateInfo(() => DateTime.Now, DateTime.Now, "john@long", "1234"));
|
||||
l_oBikeRequested.State.Load(new StateInfo(() => DateTime.Now, DateTime.Now, TimeSpan.FromMinutes(15), "john@long", "1234"));
|
||||
|
||||
var l_oBikeColl = new BikeCollectionMutable
|
||||
{
|
||||
|
@ -93,7 +93,7 @@ namespace TestTINKLib
|
|||
public void TestUpdate()
|
||||
{
|
||||
var bikeRequested = new BikeInfoMutable("20", LockModel.ILockIt, false, new List<string> { "TINK" }, WheelType.Trike, TypeOfBike.Allround);
|
||||
bikeRequested.State.Load(new StateInfo(() => DateTime.Now, DateTime.Now, "john@long", "1234"));
|
||||
bikeRequested.State.Load(new StateInfo(() => DateTime.Now, DateTime.Now, TimeSpan.FromMinutes(15), "john@long", "1234"));
|
||||
|
||||
var bikeColl = new BikeCollectionMutable
|
||||
{
|
||||
|
|
|
@ -322,5 +322,15 @@ namespace TestShareeLib.Model.Connector
|
|||
Is.EqualTo(TINK.Model.State.InUseStateEnum.FeedbackPending),
|
||||
"Bikes with state booking state available in ");
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestReservationTimeSpan()
|
||||
{
|
||||
var response = JsonConvertRethrow.DeserializeObject<RentalDescription>(TestShareeLib.Repository.Response.TestRentalDescription.RENTALDESCRIPTIONRESPONSE_A_V4_1_23_03);
|
||||
|
||||
var rentalDescription = RentalDescriptionFactory.Create(response);
|
||||
|
||||
Assert.That(rentalDescription.MaxReservationTimeSpan.TotalMinutes, Is.EqualTo(30));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1055,5 +1055,30 @@ namespace TestTINKLib.Fixtures.Connector
|
|||
{
|
||||
}").GetFrom(),
|
||||
Is.EqualTo(DateTime.MinValue));
|
||||
|
||||
[Test]
|
||||
public void TestGetReservationTimeSpan()
|
||||
{
|
||||
var response = JsonConvertRethrow.DeserializeObject<RentalDescription>(TestShareeLib.Repository.Response.TestRentalDescription.RENTALDESCRIPTIONRESPONSE_A_V4_1_23_03);
|
||||
Assert.That(response.GetMaxReservationTimeSpan().TotalMinutes, Is.EqualTo(30));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestGetReservationTimeSpanInvalid()
|
||||
=> Assert.That(
|
||||
JsonConvertRethrow.DeserializeObject<RentalDescription>(@"
|
||||
{
|
||||
""reserve_timerange"": ""abc"",
|
||||
}").GetMaxReservationTimeSpan().TotalMinutes,
|
||||
Is.EqualTo(15));
|
||||
|
||||
[Test]
|
||||
public void TestGetReservationTimeSpanEmpty()
|
||||
=> Assert.That(
|
||||
JsonConvertRethrow.DeserializeObject<RentalDescription>(@"
|
||||
{
|
||||
}").GetMaxReservationTimeSpan().TotalMinutes,
|
||||
Is.EqualTo(15));
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json;
|
||||
using NUnit.Framework;
|
||||
using TINK.Model.Connector.Updater;
|
||||
using TINK.Repository.Response;
|
||||
|
|
|
@ -44,6 +44,7 @@ namespace TestTINKLib
|
|||
l_oSource.From.Returns(new DateTime(2018, 1, 4, 17, 26, 0));
|
||||
l_oSource.MailAddress.Returns("who@the");
|
||||
l_oSource.Code.Returns("323");
|
||||
l_oSource.MaxReservationTimeSpan.Returns(TimeSpan.FromMinutes(15));
|
||||
|
||||
l_oState = new StateInfoMutable(() => new DateTime(2018, 1, 4, 17, 30, 1), l_oSource);
|
||||
|
||||
|
@ -85,6 +86,7 @@ namespace TestTINKLib
|
|||
l_oStateInfo.Load(
|
||||
InUseStateEnum.Reserved, // Copri acknowledges state reserved.
|
||||
l_oDateTimeMock.GetDateTime(),
|
||||
TimeSpan.FromMinutes(15),
|
||||
"heiz@mustermann"); // Owner from Copri.
|
||||
|
||||
// Invoke first update (after simulated 4mns)
|
||||
|
@ -110,7 +112,7 @@ namespace TestTINKLib
|
|||
Func<DateTime> l_oNowMock = () => new DateTime(2017, 09, 21, 23, 40, 0);
|
||||
var l_oStateInfo = new StateInfoMutable(l_oNowMock);
|
||||
|
||||
l_oStateInfo.Load(InUseStateEnum.Booked, new DateTime(2017, 09, 21, 23, 30, 0), "heiz@mustermann", "21");
|
||||
l_oStateInfo.Load(InUseStateEnum.Booked, new DateTime(2017, 09, 21, 23, 30, 0), TimeSpan.FromMinutes(15), "heiz@mustermann", "21");
|
||||
|
||||
Assert.AreEqual(InUseStateEnum.Booked, l_oStateInfo.Value);
|
||||
Assert.AreEqual("Booked", l_oStateInfo.ToString());
|
||||
|
@ -120,7 +122,7 @@ namespace TestTINKLib
|
|||
Assert.AreEqual("21", l_oStateInfo.Code);
|
||||
|
||||
DateTime FROM = new DateTime(2017, 09, 21, 23, 35, 0);
|
||||
l_oStateInfo.Load(InUseStateEnum.Reserved, FROM, "heiz@mustermann", "22");
|
||||
l_oStateInfo.Load(InUseStateEnum.Reserved, FROM, TimeSpan.FromMinutes(15), "heiz@mustermann", "22");
|
||||
|
||||
// Verify initial values of properties.
|
||||
Assert.AreEqual(InUseStateEnum.Reserved, l_oStateInfo.Value);
|
||||
|
@ -130,7 +132,7 @@ namespace TestTINKLib
|
|||
Assert.AreEqual("heiz@mustermann", l_oStateInfo.MailAddress);
|
||||
Assert.AreEqual("22", l_oStateInfo.Code);
|
||||
|
||||
l_oStateInfo.Load(InUseStateEnum.Disposable, new DateTime(1970, 1, 1, 0, 0, 0), "heiz@mustermann", "unused");
|
||||
l_oStateInfo.Load(InUseStateEnum.Disposable, new DateTime(1970, 1, 1, 0, 0, 0), TimeSpan.FromMinutes(15), "heiz@mustermann", "unused");
|
||||
|
||||
// Verify initial values of properties.
|
||||
Assert.AreEqual(InUseStateEnum.Disposable, l_oStateInfo.Value);
|
||||
|
@ -156,6 +158,7 @@ namespace TestTINKLib
|
|||
var l_oSource = new StateInfo(
|
||||
() => new DateTime(2018, 01, 03, 21, 53, 0),
|
||||
new DateTime(2018, 01, 03, 21, 13, 0), // Requested from
|
||||
TimeSpan.FromMinutes(15),
|
||||
"a@b",
|
||||
"123");
|
||||
l_oState.Load(l_oSource);
|
||||
|
@ -184,5 +187,51 @@ namespace TestTINKLib
|
|||
Assert.IsNull(l_oState.MailAddress);
|
||||
Assert.IsNull(l_oState.Code);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestLoadFromNull()
|
||||
{
|
||||
var state = new StateInfoMutable(
|
||||
() => new DateTime(2018, 01, 03, 21, 14, 0));
|
||||
|
||||
state.Load(InUseStateEnum.Disposable,
|
||||
null,
|
||||
TimeSpan.FromMinutes(15));
|
||||
|
||||
Assert.That(
|
||||
state.RemainingTime,
|
||||
Is.Null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestLoadReservationTimeSpanNull()
|
||||
{
|
||||
var state = new StateInfoMutable(
|
||||
() => new DateTime(2018, 01, 03, 21, 14, 0));
|
||||
|
||||
state.Load(InUseStateEnum.Disposable,
|
||||
DateTime.Now,
|
||||
null);
|
||||
|
||||
Assert.That(
|
||||
state.RemainingTime,
|
||||
Is.Null);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestMaxReservationTimeSpanNullStateAvaialble()
|
||||
=> Assert.That(new StateInfo().MaxReservationTimeSpan, Is.Null);
|
||||
|
||||
[Test]
|
||||
public void TestMaxReservationTimeSpanNullStateFeedbackPending()
|
||||
=> Assert.That(new StateInfo(true).MaxReservationTimeSpan, Is.Null);
|
||||
|
||||
[Test]
|
||||
public void TestMaxReservationTimeSpanNullStateOccupied()
|
||||
=> Assert.That(new StateInfo(new DateTime(2023, 5, 11), "a@b", "").MaxReservationTimeSpan, Is.Null);
|
||||
|
||||
[Test]
|
||||
public void TestMaxReservationTimeSpan()
|
||||
=> Assert.That(new StateInfo(() => DateTime.Now, new DateTime(2023, 5, 11), TimeSpan.FromMinutes(12), "a@b", "").MaxReservationTimeSpan, Is.EqualTo(TimeSpan.FromMinutes(12)));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -55,13 +55,13 @@ namespace TestTINKLib.Fixtures.State
|
|||
public void TestSerializeJSON_Booked()
|
||||
{
|
||||
// Create object to test.
|
||||
var l_oInUseState = new StateInfoMutable(
|
||||
() => new DateTime(2017, 11, 18, 23, 20, 0) // Mocked time stamp returned when StateInfo- object is crated
|
||||
var l_oInUseState = new StateInfoMutable(() => new DateTime(2017, 11, 18, 23, 20, 0) // Mocked time stamp returned when StateInfo- object is crated
|
||||
);
|
||||
|
||||
l_oInUseState.Load(
|
||||
InUseStateEnum.Booked,
|
||||
new DateTime(2017, 11, 18, 23, 19, 0), // Time booked at
|
||||
TimeSpan.FromMinutes(15),
|
||||
"heiz@mustermann",
|
||||
"173"); // Code
|
||||
|
||||
|
@ -111,6 +111,7 @@ namespace TestTINKLib.Fixtures.State
|
|||
l_oInUseState.Load(
|
||||
InUseStateEnum.Reserved,
|
||||
new DateTime(2017, 09, 21, 23, 20, 0),
|
||||
TimeSpan.FromMinutes(15),
|
||||
"heiz@mustermann");
|
||||
|
||||
Assert.AreEqual(InUseStateEnum.Reserved, l_oInUseState.Value);
|
||||
|
@ -167,6 +168,7 @@ namespace TestTINKLib.Fixtures.State
|
|||
l_oInUseState.Load(
|
||||
InUseStateEnum.Reserved,
|
||||
l_oFrom,
|
||||
TimeSpan.FromMinutes(15),
|
||||
"z@C",
|
||||
"01815A");
|
||||
|
||||
|
|
|
@ -15,25 +15,25 @@ namespace TestTINKLib
|
|||
{
|
||||
Assert.AreEqual(
|
||||
InUseStateEnum.Reserved,
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", null).Value);
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), TimeSpan.FromMinutes(15), "a@b", null).Value);
|
||||
|
||||
Assert.AreEqual(
|
||||
"a@b",
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", null).MailAddress);
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), TimeSpan.FromMinutes(15), "a@b", null).MailAddress);
|
||||
|
||||
Assert.IsNull(
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", null).Code);
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), TimeSpan.FromMinutes(15), "a@b", null).Code);
|
||||
|
||||
Assert.AreEqual(
|
||||
new DateTime(2017, 09, 20, 12, 0, 0),
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", null).From);
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), TimeSpan.FromMinutes(15), "a@b", null).From);
|
||||
|
||||
Assert.IsTrue(
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", null).GetIsStillReserved(out TimeSpan? remainingTime));
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 1, 0), new DateTime(2017, 09, 20, 12, 0, 0), TimeSpan.FromMinutes(15), "a@b", null).GetIsStillReserved(out TimeSpan? l_oRemainigTime));
|
||||
|
||||
Assert.AreEqual(
|
||||
14,
|
||||
remainingTime.Value.Minutes);
|
||||
l_oRemainigTime.Value.Minutes);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -41,26 +41,26 @@ namespace TestTINKLib
|
|||
{
|
||||
Assert.AreEqual(
|
||||
InUseStateEnum.Reserved,
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20), new DateTime(2017, 09, 19), "a@b", "372").Value);
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20), new DateTime(2017, 09, 19), TimeSpan.FromMinutes(15), "a@b", "372").Value);
|
||||
|
||||
Assert.AreEqual(
|
||||
"a@b",
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20), new DateTime(2017, 09, 19), "a@b", "372").MailAddress);
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20), new DateTime(2017, 09, 19), TimeSpan.FromMinutes(15), "a@b", "372").MailAddress);
|
||||
|
||||
Assert.AreEqual(
|
||||
"372",
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20), new DateTime(2017, 09, 19), "a@b", "372").Code);
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20), new DateTime(2017, 09, 19), TimeSpan.FromMinutes(15), "a@b", "372").Code);
|
||||
|
||||
Assert.AreEqual(
|
||||
new DateTime(2017, 09, 19),
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20), new DateTime(2017, 09, 19), "a@b", "372").From);
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20), new DateTime(2017, 09, 19), TimeSpan.FromMinutes(15), "a@b", "372").From);
|
||||
|
||||
Assert.IsTrue(
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 12, 0), new DateTime(2017, 09, 20, 12, 0, 0), "a@b", "372").GetIsStillReserved(out TimeSpan? remainingTime));
|
||||
new StateRequestedInfo(() => new DateTime(2017, 09, 20, 12, 12, 0), new DateTime(2017, 09, 20, 12, 0, 0), TimeSpan.FromMinutes(15), "a@b", "372").GetIsStillReserved(out TimeSpan? l_oRemainigTime));
|
||||
|
||||
Assert.AreEqual(
|
||||
3,
|
||||
remainingTime.Value.Minutes);
|
||||
l_oRemainigTime.Value.Minutes);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -72,7 +72,7 @@ namespace TestTINKLib
|
|||
l_oReservedAt.Add(new TimeSpan(0, 16, 0)) // Time elapsed since booking 16 mns
|
||||
});
|
||||
|
||||
var l_oReservedInfo = new StateRequestedInfo(l_oDateTimeMock.GetDateTime, l_oReservedAt, "a@b", null);
|
||||
var l_oReservedInfo = new StateRequestedInfo(l_oDateTimeMock.GetDateTime, l_oReservedAt, TimeSpan.FromMinutes(15), "a@b", null);
|
||||
Assert.AreEqual("a@b", l_oReservedInfo.MailAddress);
|
||||
Assert.AreEqual(new DateTime(2017, 09, 20, 22, 01, 00), l_oReservedInfo.From, "a@b");
|
||||
|
||||
|
@ -86,5 +86,39 @@ namespace TestTINKLib
|
|||
Assert.IsNull(remainingTime);
|
||||
Assert.AreEqual(new DateTime(2017, 09, 20, 22, 01, 00), l_oReservedInfo.From, "a@b");
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestReservationTimeSpanCtor() =>
|
||||
Assert.That(new StateRequestedInfo().MaxReservationTimeSpan, Is.EqualTo(TimeSpan.Zero));
|
||||
|
||||
[Test]
|
||||
public void TestGetIsStillReserved() =>
|
||||
Assert.That(new StateRequestedInfo(
|
||||
() => new DateTime(2023, 5, 11, 14, 42, 0, 100), // one hundred millisecond after bike was reserved
|
||||
new DateTime(2023, 5, 11, 14, 42, 0, 0),
|
||||
TimeSpan.FromSeconds(1),
|
||||
"a@b",
|
||||
"").GetIsStillReserved(out _),
|
||||
Is.True);
|
||||
|
||||
[Test]
|
||||
public void TestGetIsStillReservedExpired() =>
|
||||
Assert.That(new StateRequestedInfo(
|
||||
() => new DateTime(2023, 5, 11, 14, 42, 0, 100), // one hundred millisecond after bike was reserved
|
||||
new DateTime(2023, 5, 11, 14, 42, 0, 0),
|
||||
TimeSpan.FromMilliseconds(50),
|
||||
"a@b",
|
||||
"").GetIsStillReserved(out _),
|
||||
Is.False);
|
||||
|
||||
[Test]
|
||||
public void TestGetIsStillReservedInvalidMaxReservationTimeSpan() =>
|
||||
Assert.That(new StateRequestedInfo(
|
||||
() => new DateTime(2023, 5, 11, 14, 42, 0, 1), // one hundred millisecond after bike was reserved
|
||||
new DateTime(2023, 5, 11, 14, 42, 0, 0),
|
||||
TimeSpan.Zero,
|
||||
"a@b",
|
||||
"").GetIsStillReserved(out _),
|
||||
Is.False);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ namespace TestTINKLib.Fixtures.State
|
|||
var l_oReservedInfo = new StateRequestedInfo(
|
||||
() => new DateTime(2017, 09, 20),
|
||||
new DateTime(2017, 09, 19),
|
||||
TimeSpan.FromMinutes(15),
|
||||
"ä@b",
|
||||
"372");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue