mirror of
https://dev.azure.com/TeilRad/sharee.bike%20App/_git/Code
synced 2025-05-17 06:26:33 +02:00
Version 3.0.376
This commit is contained in:
parent
ca080c87c0
commit
f963c0a219
158 changed files with 3228 additions and 1279 deletions
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json;
|
||||
using NSubstitute;
|
||||
|
@ -138,20 +139,29 @@ namespace TestTINKLib.Fixtures.ObjectTests.Connector.Query
|
|||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikes()
|
||||
public async Task TestGetBikesAsync()
|
||||
{
|
||||
var server = Substitute.For<ICachedCopriServer>();
|
||||
|
||||
server.GetBikesAvailable().Returns(Task.Run(() => new Result<BikesAvailableResponse>(
|
||||
var uri = new Uri("https://MyServer.com");
|
||||
var station = "MyStation";
|
||||
var bike = "MyBike";
|
||||
|
||||
var resultBikesAv = new Result<BikesAvailableResponse>(
|
||||
typeof(CopriCallsHttps),
|
||||
JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE),
|
||||
new GeneralData())));
|
||||
new GeneralData());
|
||||
|
||||
var result = await new CachedQuery(server).GetBikesAsync();
|
||||
server.GetBikesAvailable(operatorUri: uri, stationId: station, bikeId: bike).Returns(Task.Run(() => resultBikesAv));
|
||||
|
||||
var result = await new CachedQuery(server).GetBikesAsync(uri, station, bike);
|
||||
|
||||
Assert.AreEqual(1, result.Response.Count);
|
||||
Assert.AreEqual(typeof(CopriCallsHttps), result.Source);
|
||||
Assert.IsNull(result.Exception);
|
||||
|
||||
await server.Received().GetBikesAvailable(operatorUri: uri, stationId: station, bikeId: bike);
|
||||
server.Received().AddToCache(resultBikesAv, operatorUri: uri, stationId: station, bikeId: bike);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
|
|
@ -761,7 +761,7 @@ namespace TestShareeLib.Model.Connector
|
|||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikes_BikesAvailableFromCache()
|
||||
public async Task TestGetBikesAsync_BikesAvailableFromCache()
|
||||
{
|
||||
var server = Substitute.For<ICachedCopriServer>();
|
||||
|
||||
|
@ -769,7 +769,7 @@ namespace TestShareeLib.Model.Connector
|
|||
typeof(CopriCallsMonkeyStore),
|
||||
JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE),
|
||||
new GeneralData(),
|
||||
new System.Exception("Bang, bikes avail..."))));
|
||||
new Exception("Bang, bikes avail..."))));
|
||||
|
||||
server.GetBikesOccupied(true).Returns(Task.Run(() => new Result<BikesReservedOccupiedResponse>(
|
||||
typeof(CopriCallsHttps),
|
||||
|
@ -781,10 +781,16 @@ namespace TestShareeLib.Model.Connector
|
|||
Assert.AreEqual(2, result.Response.Count);
|
||||
Assert.AreEqual(typeof(CopriCallsMonkeyStore), result.Source);
|
||||
Assert.AreEqual("Bang, bikes avail...", result.Exception.Message);
|
||||
|
||||
await server.Received().GetBikesAvailable();
|
||||
await server.Received().GetBikesOccupied(true);
|
||||
|
||||
server.DidNotReceive().AddToCache(Arg.Any<Result<BikesAvailableResponse>>());
|
||||
server.DidNotReceive().AddToCache(Arg.Any<Result<BikesReservedOccupiedResponse>>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikes_BikesOccupiedFromCache()
|
||||
public async Task TestGetBikesAsync_BikesOccupiedFromCache()
|
||||
{
|
||||
var server = Substitute.For<ICachedCopriServer>();
|
||||
|
||||
|
@ -797,7 +803,7 @@ namespace TestShareeLib.Model.Connector
|
|||
typeof(CopriCallsMonkeyStore),
|
||||
JsonConvert.DeserializeObject<BikesReservedOccupiedResponse>(BIKESOCCUPIED),
|
||||
new GeneralData(),
|
||||
new System.Exception("Bang, error bikes occupied"))));
|
||||
new Exception("Bang, error bikes occupied"))));
|
||||
|
||||
server.GetBikesAvailable(true).Returns(Task.Run(() => new Result<BikesAvailableResponse>(
|
||||
typeof(CopriCallsMonkeyStore),
|
||||
|
@ -809,28 +815,43 @@ namespace TestShareeLib.Model.Connector
|
|||
Assert.AreEqual(2, result.Response.Count);
|
||||
Assert.AreEqual(typeof(CopriCallsMonkeyStore), result.Source);
|
||||
Assert.AreEqual("Bang, error bikes occupied", result.Exception.Message);
|
||||
|
||||
await server.Received().GetBikesAvailable();
|
||||
await server.Received().GetBikesOccupied();
|
||||
|
||||
server.DidNotReceive().AddToCache(Arg.Any<Result<BikesAvailableResponse>>());
|
||||
server.DidNotReceive().AddToCache(Arg.Any< Result<BikesReservedOccupiedResponse>>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikes()
|
||||
public async Task TestGetBikesAsync([Values("", "MyBike")] string bikeFilter)
|
||||
{
|
||||
var server = Substitute.For<ICachedCopriServer>();
|
||||
|
||||
server.GetBikesAvailable().Returns(Task.Run(() => new Result<BikesAvailableResponse>(
|
||||
var resultBikesAvailableResponse = new Result<BikesAvailableResponse>(
|
||||
typeof(CopriCallsHttps),
|
||||
JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE),
|
||||
new GeneralData())));
|
||||
new GeneralData());
|
||||
|
||||
server.GetBikesOccupied().Returns(Task.Run(() => new Result<BikesReservedOccupiedResponse>(
|
||||
var resultBikesOccupiedResponse = new Result<BikesReservedOccupiedResponse>(
|
||||
typeof(CopriCallsHttps),
|
||||
JsonConvert.DeserializeObject<BikesReservedOccupiedResponse>(BIKESOCCUPIED),
|
||||
new GeneralData())));
|
||||
new GeneralData());
|
||||
|
||||
var result = await new CachedQueryLoggedIn(server, "123", "a@b", () => DateTime.Now).GetBikesAsync();
|
||||
server.GetBikesAvailable(bikeId: bikeFilter).Returns(Task.Run(() => resultBikesAvailableResponse));
|
||||
|
||||
server.GetBikesOccupied().Returns(Task.Run(() => resultBikesOccupiedResponse));
|
||||
|
||||
var result = await new CachedQueryLoggedIn(server, "123", "a@b", () => DateTime.Now).GetBikesAsync(bikeId: bikeFilter);
|
||||
|
||||
Assert.AreEqual(2, result.Response.Count);
|
||||
Assert.AreEqual(typeof(CopriCallsHttps), result.Source);
|
||||
Assert.IsNull(result.Exception);
|
||||
|
||||
await server.Received().GetBikesAvailable(bikeId: bikeFilter);
|
||||
await server.Received().GetBikesOccupied();
|
||||
server.Received().AddToCache(resultBikesAvailableResponse, bikeId: bikeFilter);
|
||||
server.Received().AddToCache(resultBikesOccupiedResponse);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -856,41 +877,55 @@ namespace TestShareeLib.Model.Connector
|
|||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikesOperratorUri()
|
||||
public async Task TestGetBikesAsyncOperatorUri()
|
||||
{
|
||||
var server = Substitute.For<ICachedCopriServer>();
|
||||
|
||||
server.GetBikesAvailable(operatorUri: Arg.Any<Uri>()).Returns(Task.Run(() => new Result<BikesAvailableResponse>(
|
||||
var resultBikesAvailableResponse = new Result<BikesAvailableResponse>(
|
||||
typeof(CopriCallsHttps),
|
||||
JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE2),
|
||||
new GeneralData())));
|
||||
new GeneralData());
|
||||
|
||||
var result = await new CachedQueryLoggedIn(server, "123", "a@b", () => DateTime.Now).GetBikesAsync(new Uri("https://shareeapp-fr01.copri.eu//APIjsonserver"));
|
||||
var uri = new Uri("https://shareeapp-fr01.copri.eu//APIjsonserver");
|
||||
var station = "StationX";
|
||||
|
||||
server.GetBikesAvailable(operatorUri: Arg.Any<Uri>(), stationId: station).Returns(Task.Run(() => resultBikesAvailableResponse));
|
||||
|
||||
var result = await new CachedQueryLoggedIn(server, "123", "a@b", () => DateTime.Now).GetBikesAsync(uri, station);
|
||||
|
||||
await server.DidNotReceive().GetBikesOccupied();
|
||||
await server.DidNotReceive().GetBikesOccupied(Arg.Any<bool>());
|
||||
server.Received().AddToCache(Arg.Any<Result<BikesAvailableResponse>>(), Arg.Any<Uri>());
|
||||
server.Received().AddToCache(Arg.Any<Result<BikesAvailableResponse>>(), Arg.Any<Uri>(), station);
|
||||
|
||||
Assert.AreEqual(3, result.Response.Count);
|
||||
Assert.AreEqual(typeof(CopriCallsHttps), result.Source);
|
||||
Assert.IsNull(result.Exception);
|
||||
|
||||
await server.Received().GetBikesAvailable(operatorUri: uri, stationId: station);
|
||||
server.Received().AddToCache(resultBikesAvailableResponse, operatorUri: uri, stationId: station);
|
||||
await server.DidNotReceive().GetBikesOccupied();
|
||||
server.DidNotReceive().AddToCache(Arg.Any<Result<BikesReservedOccupiedResponse>>());
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikesOperratorUriCache()
|
||||
public async Task TestGetBikesAsyncOperatorUriCache()
|
||||
{
|
||||
var server = Substitute.For<ICachedCopriServer>();
|
||||
|
||||
var uri = new Uri("https://shareeapp-fr01.copri.eu//APIjsonserver");
|
||||
|
||||
server.GetBikesAvailable(operatorUri: Arg.Any<Uri>()).Returns(Task.Run(() => new Result<BikesAvailableResponse>(
|
||||
typeof(CopriCallsMonkeyStore),
|
||||
JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE2),
|
||||
new GeneralData())));
|
||||
|
||||
var result = await new CachedQueryLoggedIn(server, "123", "a@b", () => DateTime.Now).GetBikesAsync(new Uri("https://shareeapp-fr01.copri.eu//APIjsonserver"));
|
||||
var result = await new CachedQueryLoggedIn(server, "123", "a@b", () => DateTime.Now).GetBikesAsync(uri);
|
||||
|
||||
await server.Received().GetBikesAvailable(operatorUri: uri);
|
||||
await server.DidNotReceive().GetBikesOccupied();
|
||||
await server.DidNotReceive().GetBikesOccupied(Arg.Any<bool>());
|
||||
server.DidNotReceive().AddToCache(Arg.Any<Result<BikesAvailableResponse>>(), Arg.Any<Uri>());
|
||||
server.DidNotReceive().AddToCache(Arg.Any<Result<BikesReservedOccupiedResponse>>());
|
||||
|
||||
Assert.AreEqual(3, result.Response.Count);
|
||||
Assert.AreEqual(typeof(CopriCallsMonkeyStore), result.Source);
|
||||
|
|
|
@ -424,7 +424,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.Connector
|
|||
|
||||
try
|
||||
{
|
||||
// Do not add if an excption occurred
|
||||
// Do not add if an exception occurred
|
||||
provider.AddToCache(new Result<StationsAvailableResponse>(typeof(CopriCallsHttps), JsonConvert.DeserializeObject<StationsAvailableResponse>(STATIONSALL), new GeneralData(), new System.Exception("Bang...")));
|
||||
stations = await provider.GetStations(true);
|
||||
Assert.AreEqual(0, stations.Response.stations.Count);
|
||||
|
@ -445,6 +445,31 @@ namespace TestTINKLib.Fixtures.ObjectTests.Connector
|
|||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Test_AddToCache()
|
||||
{
|
||||
var cache = Substitute.For<ICopriCache>();
|
||||
|
||||
var provider = new CopriProviderHttps(
|
||||
new Uri("https://copri.net"),
|
||||
"MerchId",
|
||||
new AppContextInfo("MerchId", "Name", new Version()),
|
||||
"de-de",
|
||||
cacheServer: cache);
|
||||
|
||||
var uri = new Uri("https://Myserver.com");
|
||||
var station = "MyStation";
|
||||
var bike = "MyBike";
|
||||
|
||||
var result = new Result<BikesAvailableResponse>(typeof(CopriCallsHttps),
|
||||
JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE),
|
||||
new GeneralData());
|
||||
|
||||
provider.AddToCache(result, uri, station, bike);
|
||||
|
||||
cache.Received().AddToCache(result.Response, uri, station, bike);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task Test_AddToCache_BikesAvailable()
|
||||
{
|
||||
|
@ -464,18 +489,29 @@ namespace TestTINKLib.Fixtures.ObjectTests.Connector
|
|||
|
||||
try
|
||||
{
|
||||
// Do not add if an excption occurred
|
||||
provider.AddToCache(new Result<BikesAvailableResponse>(typeof(CopriCallsHttps), JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE), new GeneralData(), new System.Exception("Bang...")));
|
||||
// Do not add if an exception occurred
|
||||
provider.AddToCache(
|
||||
new Result<BikesAvailableResponse>(typeof(CopriCallsHttps),
|
||||
JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE),
|
||||
new GeneralData(),
|
||||
new System.Exception("Bang...")));
|
||||
bikes = await provider.GetBikesAvailable(true);
|
||||
Assert.AreEqual(0, bikes.Response.bikes.Count);
|
||||
|
||||
// Do not add if results from cache
|
||||
provider.AddToCache(new Result<BikesAvailableResponse>(typeof(CopriCallsMonkeyStore), JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE), new GeneralData()));
|
||||
provider.AddToCache(new Result<BikesAvailableResponse>(
|
||||
typeof(CopriCallsMonkeyStore),
|
||||
JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE),
|
||||
new GeneralData()));
|
||||
bikes = await provider.GetBikesAvailable(true);
|
||||
Assert.AreEqual(0, bikes.Response.bikes.Count);
|
||||
|
||||
// Add result
|
||||
provider.AddToCache(new Result<BikesAvailableResponse>(typeof(CopriCallsHttps), JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE), new GeneralData()));
|
||||
provider.AddToCache(
|
||||
new Result<BikesAvailableResponse>(typeof(CopriCallsHttps),
|
||||
JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE),
|
||||
new GeneralData()));
|
||||
|
||||
bikes = await provider.GetBikesAvailable(true);
|
||||
Assert.AreEqual(1, bikes.Response.bikes.Count);
|
||||
}
|
||||
|
@ -485,7 +521,6 @@ namespace TestTINKLib.Fixtures.ObjectTests.Connector
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
[Test]
|
||||
public async Task Test_AddToCache_BikesOccupied()
|
||||
{
|
||||
|
|
35
TestShareeLib/Model/Connector/TestFilteredConnector.cs
Normal file
35
TestShareeLib/Model/Connector/TestFilteredConnector.cs
Normal file
|
@ -0,0 +1,35 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using NSubstitute;
|
||||
using NUnit.Framework;
|
||||
using TINK.Model.Bikes;
|
||||
using TINK.Model.Connector;
|
||||
using TINK.Model.Services.CopriApi;
|
||||
using TINK.Repository;
|
||||
using TINK.Services.CopriApi;
|
||||
|
||||
namespace TestShareeLib.Model.Connector
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestFilteredConnector
|
||||
{
|
||||
[Test]
|
||||
public async Task TestGetBikesAsync()
|
||||
{
|
||||
var connector = Substitute.For<IConnector>();
|
||||
var filter = new FilteredConnector(new string[] { "" }, connector);
|
||||
var uri = new Uri("https://MyOperator.com");
|
||||
var station = "MyStation";
|
||||
var bike = "MyBike";
|
||||
|
||||
connector.Query.GetBikesAsync(uri, station, bike).Returns(Task.FromResult(new Result<BikeCollection>(
|
||||
typeof(CopriCallsHttps),
|
||||
new BikeCollection(),
|
||||
new GeneralData())));
|
||||
|
||||
await filter.Query.GetBikesAsync(uri, station, bike);
|
||||
|
||||
await connector.Received().Query.GetBikesAsync(uri, station, bike);
|
||||
}
|
||||
}
|
||||
}
|
35
TestShareeLib/Model/Connector/TestNullFilterConnector.cs
Normal file
35
TestShareeLib/Model/Connector/TestNullFilterConnector.cs
Normal file
|
@ -0,0 +1,35 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using NSubstitute;
|
||||
using NUnit.Framework;
|
||||
using TINK.Model.Bikes;
|
||||
using TINK.Model.Connector;
|
||||
using TINK.Model.Services.CopriApi;
|
||||
using TINK.Repository;
|
||||
using TINK.Services.CopriApi;
|
||||
|
||||
namespace TestShareeLib.Model.Connector
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestNullFilterConnector
|
||||
{
|
||||
[Test]
|
||||
public async Task TestGetBikesAsync()
|
||||
{
|
||||
var connector = Substitute.For<IConnector>();
|
||||
var filter = new NullFilterConnector(connector);
|
||||
var uri = new Uri("https://MyOperator.com");
|
||||
var station = "MyStation";
|
||||
var bike = "MyBike";
|
||||
|
||||
connector.Query.GetBikesAsync(uri, station, bike).Returns(Task.FromResult(new Result<BikeCollection>(
|
||||
typeof(CopriCallsHttps),
|
||||
new BikeCollection(),
|
||||
new GeneralData())));
|
||||
|
||||
await filter.Query.GetBikesAsync(uri, station, bike);
|
||||
|
||||
await connector.Received().Query.GetBikesAsync(uri, station, bike);
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,3 +1,4 @@
|
|||
using System;
|
||||
using System.Threading.Tasks;
|
||||
using Newtonsoft.Json;
|
||||
using NSubstitute;
|
||||
|
@ -100,17 +101,23 @@ namespace TestTINKLib.Fixtures.ObjectTests.Query
|
|||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikes()
|
||||
public async Task TestGetBikesAsync()
|
||||
{
|
||||
var server = Substitute.For<ICopriServer>();
|
||||
|
||||
server.GetBikesAvailableAsync().Returns(Task.Run(() => JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE)));
|
||||
var uri = new Uri("https://Myserver.com");
|
||||
var station = "MyStation";
|
||||
var bike = "MyBike";
|
||||
|
||||
var result = await new TINK.Model.Connector.Query(server).GetBikesAsync();
|
||||
server.GetBikesAvailableAsync(uri, station, bike).Returns(Task.Run(() => JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE)));
|
||||
|
||||
var result = await new TINK.Model.Connector.Query(server).GetBikesAsync(uri, station, bike);
|
||||
|
||||
Assert.AreEqual(1, result.Response.Count);
|
||||
Assert.AreEqual(typeof(CopriCallsMonkeyStore), result.Source);
|
||||
Assert.IsNull(result.Exception);
|
||||
|
||||
await server.Received().GetBikesAvailableAsync(uri, station, bike);
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
@ -124,5 +131,19 @@ namespace TestTINKLib.Fixtures.ObjectTests.Query
|
|||
Assert.AreEqual(typeof(CopriCallsMonkeyStore), result.Source);
|
||||
Assert.AreEqual(result.Exception.Message, "Abfrage der reservierten/ gebuchten Räder fehlgeschlagen. Kein Benutzer angemeldet.");
|
||||
}
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikesAvailble()
|
||||
{
|
||||
var server = Substitute.For<ICopriServer>();
|
||||
server.GetBikesAvailableAsync(Arg.Any<Uri>(), Arg.Any<string>()).Returns(new BikesAvailableResponse());
|
||||
|
||||
var uri = new Uri("https://shareeapp-fr01.copri.eu//");
|
||||
var station = "FR101";
|
||||
|
||||
await new TINK.Model.Connector.Query(server).GetBikesAsync(uri, station);
|
||||
|
||||
await server.Received().GetBikesAvailableAsync(uri, station);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -158,22 +158,26 @@ namespace TestTINKLib.Fixtures.ObjectTests.Connector
|
|||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikes()
|
||||
public async Task TestGetBikesAsync()
|
||||
{
|
||||
var server = Substitute.For<ICopriServer>();
|
||||
|
||||
server.GetBikesAvailableAsync().Returns(Task.Run(() => JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE)));
|
||||
var bike = "MyBike";
|
||||
|
||||
server.GetBikesAvailableAsync(bikeId: bike).Returns(Task.Run(() => JsonConvert.DeserializeObject<BikesAvailableResponse>(BIKESAVAILABLE)));
|
||||
server.GetBikesOccupiedAsync().Returns(Task.Run(() => JsonConvert.DeserializeObject<BikesReservedOccupiedResponse>(BIKESOCCUPIED)));
|
||||
|
||||
var result = await new QueryLoggedIn(server, "123", "a@b", () => DateTime.Now).GetBikesAsync();
|
||||
var result = await new QueryLoggedIn(server, "123", "a@b", () => DateTime.Now).GetBikesAsync(bikeId: bike);
|
||||
|
||||
Assert.AreEqual(2, result.Response.Count);
|
||||
Assert.AreEqual(typeof(CopriCallsMonkeyStore), result.Source);
|
||||
Assert.IsNull(result.Exception);
|
||||
|
||||
await server.Received().GetBikesAvailableAsync(bikeId: bike);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikesOccupied()
|
||||
public async Task TestGetBikesOccupiedAsync()
|
||||
{
|
||||
var server = Substitute.For<ICopriServer>();
|
||||
|
||||
|
@ -187,5 +191,79 @@ namespace TestTINKLib.Fixtures.ObjectTests.Connector
|
|||
Assert.AreEqual(typeof(CopriCallsMonkeyStore), result.Source);
|
||||
Assert.IsNull(result.Exception);
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikesAsyncOperatorUriNotNull()
|
||||
{
|
||||
var server = Substitute.For<ICopriServer>();
|
||||
|
||||
var responseBikesAvailable = JsonConvert.DeserializeObject<BikesAvailableResponse>(@"{
|
||||
""bikes"" : {
|
||||
""FR1011"" : {
|
||||
""state"" : ""available"",
|
||||
""bike"" : ""FR1011"",
|
||||
""station"" : ""FR103"",
|
||||
}
|
||||
},
|
||||
""bikes_occupied"" : {
|
||||
""160373"" : {
|
||||
""bike"" : ""FR1012"",
|
||||
""station"" : ""FR103"",
|
||||
""state"" : ""occupied"",
|
||||
}
|
||||
},
|
||||
}");
|
||||
|
||||
server.GetBikesAvailableAsync(Arg.Any<Uri>(), Arg.Any<string>()).Returns(responseBikesAvailable);
|
||||
|
||||
var uri = new Uri("https://shareeapp-fr01.copri.eu//");
|
||||
var station = "FR101";
|
||||
|
||||
var result = await new QueryLoggedIn(server, "123", "a@b", () => DateTime.Now).GetBikesAsync(uri, station);
|
||||
|
||||
Assert.That(result.Response.Count, Is.EqualTo(2));
|
||||
|
||||
await server.Received().GetBikesAvailableAsync(
|
||||
uri /* Uri is not null for use case show "bikes at station x" page */,
|
||||
station);
|
||||
await server.DidNotReceive().GetBikesOccupiedAsync();
|
||||
}
|
||||
|
||||
[Test]
|
||||
public async Task TestGetBikesAsyncOperatorUriNull()
|
||||
{
|
||||
var server = Substitute.For<ICopriServer>();
|
||||
|
||||
var responseBikesAvailable = JsonConvert.DeserializeObject<BikesAvailableResponse>(@"{
|
||||
""bikes"" : {
|
||||
""FR1011"" : {
|
||||
""state"" : ""available"",
|
||||
""bike"" : ""FR1011"",
|
||||
""station"" : ""FR103"",
|
||||
}
|
||||
},
|
||||
}");
|
||||
|
||||
var responseBikesOccupied = JsonConvert.DeserializeObject<BikesReservedOccupiedResponse>(@"{
|
||||
""bikes_occupied"" : {
|
||||
""160373"" : {
|
||||
""bike"" : ""FR1012"",
|
||||
""station"" : ""FR103"",
|
||||
""state"" : ""occupied"",
|
||||
}
|
||||
},
|
||||
}");
|
||||
|
||||
server.GetBikesAvailableAsync().Returns(responseBikesAvailable);
|
||||
server.GetBikesOccupiedAsync().Returns(responseBikesOccupied);
|
||||
|
||||
|
||||
var result = await new QueryLoggedIn(server, "123", "a@b", () => DateTime.Now).GetBikesAsync();
|
||||
|
||||
Assert.That(result.Response.Count, Is.EqualTo(2));
|
||||
|
||||
await server.Received().GetBikesAvailableAsync();
|
||||
await server.Received().GetBikesOccupiedAsync();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4,7 +4,6 @@ using Newtonsoft.Json;
|
|||
using NSubstitute;
|
||||
using NUnit.Framework;
|
||||
using TINK.Model;
|
||||
using TINK.Model.Bikes;
|
||||
using TINK.Model.Bikes.BikeInfoNS.BC;
|
||||
using TINK.Model.Bikes.BikeInfoNS.BikeNS;
|
||||
using TINK.Model.Bikes.BikeInfoNS.DriveNS;
|
||||
|
|
|
@ -36,8 +36,24 @@ namespace TestShareeLib.Repository.Request
|
|||
public void TestGetBikesAvailable()
|
||||
{
|
||||
Assert.AreEqual(
|
||||
"request=bikes_available&system=all&authcookie=123",
|
||||
new RequestBuilder("123", null /*UI language */).GetBikesAvailable());
|
||||
"request=bikes_available&system=all&station=FR101&bike=FR1001&authcookie=123",
|
||||
new RequestBuilder("123", null /*UI language */).GetBikesAvailable("FR101", "FR1001"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestGetBikesAvailable_BikeOptOut()
|
||||
{
|
||||
Assert.AreEqual(
|
||||
"request=bikes_available&system=all&station=FR101&authcookie=123",
|
||||
new RequestBuilder("123", null /*UI language */).GetBikesAvailable("FR101"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestGetBikesAvailable_StationOptOut()
|
||||
{
|
||||
Assert.AreEqual(
|
||||
"request=bikes_available&system=all&bike=FR1001&authcookie=123",
|
||||
new RequestBuilder("123", null /*UI language */).GetBikesAvailable(bikeId: "FR1001"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
|
|
@ -38,18 +38,66 @@ namespace TestShareeLib.Repository.Request
|
|||
public void TestGetBikesAvailable()
|
||||
{
|
||||
Assert.AreEqual(
|
||||
"request=bikes_available&system=all&authcookie=456123",
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, "456").GetBikesAvailable());
|
||||
"request=bikes_available&system=all&station=FR101&bike=FR1001&authcookie=456123",
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, "456").GetBikesAvailable("FR101", "FR1001"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestGetBikesAvailable_BikeIdOptOut()
|
||||
{
|
||||
Assert.AreEqual(
|
||||
"request=bikes_available&system=all&station=FR101&authcookie=456123",
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, "456").GetBikesAvailable("FR101"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestGetBikesAvailable_BikeIdNull()
|
||||
{
|
||||
Assert.AreEqual(
|
||||
"request=bikes_available&system=all&station=FR101&authcookie=456123",
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, "456").GetBikesAvailable("FR101", null));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestGetBikesAvailable_BikeIdEmpty()
|
||||
{
|
||||
Assert.AreEqual(
|
||||
"request=bikes_available&system=all&station=FR101&authcookie=456123",
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, "456").GetBikesAvailable("FR101", ""));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestGetBikesAvailable_StationIdOptOut()
|
||||
{
|
||||
Assert.AreEqual(
|
||||
"request=bikes_available&system=all&bike=FR1001&authcookie=456123",
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, "456").GetBikesAvailable(bikeId: "FR1001"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestGetBikesAvailable_StationNull()
|
||||
{
|
||||
Assert.AreEqual(
|
||||
"request=bikes_available&system=all&bike=FR1001&authcookie=456123",
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, "456").GetBikesAvailable(null, "FR1001"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestGetBikesAvailable_StationEmpty()
|
||||
{
|
||||
Assert.AreEqual(
|
||||
"request=bikes_available&system=all&bike=FR1001&authcookie=456123",
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, "456").GetBikesAvailable("", "FR1001"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
public void TestGetBikesAvailable_Null()
|
||||
{
|
||||
Assert.Throws<ArgumentException>(() =>
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, null).GetBikesAvailable());
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, null).GetBikesAvailable("FR101", "FR1001"));
|
||||
|
||||
Assert.Throws<ArgumentException>(() =>
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, string.Empty).GetBikesAvailable());
|
||||
new RequestBuilderLoggedIn("123", null /*UI language */, string.Empty).GetBikesAvailable("FR101", "FR1001"));
|
||||
}
|
||||
|
||||
[Test]
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
using NUnit.Framework;
|
||||
using NUnit.Framework;
|
||||
using TINK.Model;
|
||||
|
||||
using static TINK.Repository.CopriCallsMemory;
|
||||
|
||||
namespace TestTINKLib.Fixtures.Connector
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
using NUnit.Framework;
|
||||
using NUnit.Framework;
|
||||
using TINK.Repository;
|
||||
|
||||
using static TINK.Repository.CopriCallsMemory;
|
||||
|
||||
namespace TestTINKLib.Fixtures.Connector.Response
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using NUnit.Framework;
|
||||
using NUnit.Framework;
|
||||
using TINK.Repository;
|
||||
using TINK.Repository.Response;
|
||||
using static TINK.Repository.CopriCallsMemory;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
using System;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NUnit.Framework;
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
using NUnit.Framework;
|
||||
using NUnit.Framework;
|
||||
using TINK.Model;
|
||||
|
||||
using static TINK.Repository.CopriCallsMemory;
|
||||
|
||||
namespace TestTINKLib.Fixtures.Connector
|
||||
|
|
|
@ -162,7 +162,7 @@ namespace TestTINKLib.Fixtures.ObjectTests.ViewModel
|
|||
permissions,
|
||||
bluetooth,
|
||||
Device.Android,
|
||||
new TINK.Model.Stations.StationNS.Station("102", new List<string>(), null), // Station 102
|
||||
new TINK.Model.Stations.StationNS.Station("102", new List<string>(), null /* position*/, operatorUri: new Uri("https://shareeapp-fr01.copri.eu//APIjsonserver")), // Station 102
|
||||
() => tinkApp.GetIsConnected(),
|
||||
(isConnected) => tinkApp.GetConnector(isConnected),
|
||||
geolocation.Active, // geolocation
|
||||
|
|
|
@ -1,23 +0,0 @@
|
|||
using NUnit.Framework;
|
||||
using TINK.ViewModel.Info;
|
||||
|
||||
namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.Info
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestInfoViewModel
|
||||
{
|
||||
[Test]
|
||||
public void TestOnAppearing()
|
||||
{
|
||||
var viewModel = new InfoPageViewModel(
|
||||
"Hosti",
|
||||
"agbResourcePath",
|
||||
"privacyResourcePath",
|
||||
"impressResourcePath",
|
||||
false,
|
||||
(url) => string.Empty,
|
||||
() => null,
|
||||
(resourceUrls) => { });
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
using NUnit.Framework;
|
||||
using TINK.ViewModel.LegalInformation;
|
||||
|
||||
namespace TestTINKLib.Fixtures.ObjectTests.ViewModel.LegalInformation
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestLegalInformationViewModel
|
||||
{
|
||||
[Test]
|
||||
public void TestOnAppearing()
|
||||
{
|
||||
var viewModel = new LegalInformationPageViewModel(
|
||||
"Host",
|
||||
"gtcResourcePath",
|
||||
"privacyResourcePath",
|
||||
"impressResourcePath",
|
||||
false,
|
||||
(url) => string.Empty,
|
||||
() => null,
|
||||
(resourceUrls) => { });
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
using System.Collections.Generic;
|
||||
using NUnit.Framework;
|
||||
using TINK.Model;
|
||||
using TINK.ViewModel.SelectBike;
|
||||
using TINK.ViewModel.Map;
|
||||
|
||||
namespace TestShareeLib.ViewModel.SelectBike
|
||||
{
|
||||
[TestFixture]
|
||||
public class TestSelectBikePageViewModel
|
||||
{
|
||||
[Test]
|
||||
public void TestSelectBikeGetActiveFilteredBikeTypeCity() =>
|
||||
Assert.That(
|
||||
SelectBikePageViewModel.GetActiveFilteredBikeType(new GroupFilterMapPage(new Dictionary<string, FilterState> { { "300103" /* Citybike */, TINK.Model.FilterState.On }, { "300101", TINK.Model.FilterState.Off } })),
|
||||
Is.EqualTo("City bike"));
|
||||
|
||||
[Test]
|
||||
public void TestSelectBikeGetActiveFilteredBikeTypeCargo() =>
|
||||
Assert.That(
|
||||
SelectBikePageViewModel.GetActiveFilteredBikeType(new GroupFilterMapPage(new Dictionary<string, FilterState> { { "300103" /* Citybike */, TINK.Model.FilterState.Off }, { "300101", TINK.Model.FilterState.On } })),
|
||||
Is.EqualTo("Cargo bike"));
|
||||
|
||||
[Test]
|
||||
public void TestSelectBikeGetActiveFilteredBikeType() =>
|
||||
Assert.That(
|
||||
SelectBikePageViewModel.GetActiveFilteredBikeType(new GroupFilterMapPage(new Dictionary<string, FilterState>())),
|
||||
Is.EqualTo(""));
|
||||
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue