2022-10-17 18:45:38 +02:00
using System ;
2021-07-12 21:31:46 +02:00
using System.Collections.Generic ;
using NSubstitute ;
2022-08-30 15:42:25 +02:00
using NUnit.Framework ;
using Plugin.BLE.Abstractions.Contracts ;
2021-11-14 23:27:29 +01:00
using TestFramework.Model.Device ;
using TestFramework.Model.Services.Geolocation ;
2022-08-30 15:42:25 +02:00
using TestFramework.Model.User.Account ;
2021-11-14 23:27:29 +01:00
using TestFramework.Services.BluetoothLock ;
2022-08-30 15:42:25 +02:00
using TINK.Model ;
using TINK.Model.Connector ;
2022-10-17 18:45:38 +02:00
using TINK.Model.Settings ;
2022-08-30 15:42:25 +02:00
using TINK.Repository ;
using TINK.Services ;
using TINK.Services.Geolocation ;
2022-04-10 17:38:34 +02:00
using TINK.Services.Permissions ;
2022-08-30 15:42:25 +02:00
using TINK.ViewModel.Settings ;
using static TINK . Repository . CopriCallsMemory ;
2021-07-12 21:31:46 +02:00
namespace TestTINKLib.Fixtures.UseCases.SelectStation
{
2022-09-06 16:08:19 +02:00
[TestFixture]
public class TestTinkApp
{
[Test]
public void TestBikesAtStation_AccountStoreMock_NoUser_CopriMock_Set2 ( )
{
const string MERCH_ID = "MyMerchId" ;
2022-08-30 15:42:25 +02:00
2022-09-06 16:08:19 +02:00
var l_oConnector = new ConnectorCache (
new AppContextInfo ( MERCH_ID , "MyApp" , new Version ( 1 , 2 ) ) ,
null /*UI language */ ,
string . Empty ,
string . Empty ,
new CopriCallsMemory ( MERCH_ID , SampleSets . Set2 , 1 ) ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
var l_oTinkApp = new TinkApp (
2022-10-17 18:45:38 +02:00
new Settings (
2022-09-06 16:08:19 +02:00
new TINK . ViewModel . Map . GroupFilterMapPage ( new Dictionary < string , FilterState > { { "TINK" , FilterState . On } } ) ,
new GroupFilterSettings ( new Dictionary < string , FilterState > { { "TINK" , FilterState . On } , { "Konrad" , FilterState . On } } ) ,
2022-10-17 18:45:38 +02:00
new StartupSettings ( ) ,
2022-09-06 16:08:19 +02:00
new Uri ( "https://shareeapp-primary.copri-bike.de/APIjsonserver" ) ,
new TINK . Settings . PollingParameters ( new TimeSpan ( 10000 ) , true ) ,
Serilog . Events . LogEventLevel . Error ,
activeLockService : typeof ( LocksServiceMock ) . FullName ,
activeGeolocationService : typeof ( GeolocationMock ) . FullName ) ,
new StoreMock ( ) ,
isConnectedFunc : ( ) = > true ,
connectorFactory : ( isConnected , uri , sessionCookie , mail , expiresAfter ) = > new ConnectorCache ( new AppContextInfo ( MERCH_ID , "MyApp" , new Version ( 1 , 2 ) ) , null /*UI language */ , sessionCookie , mail , new CopriCallsMemory ( MERCH_ID , SampleSets . Set2 , 1 ) ) ,
merchantId : MERCH_ID ,
bluetoothService : Substitute . For < IBluetoothLE > ( ) ,
locationPermissionsService : Substitute . For < ILocationPermission > ( ) ,
locationServicesContainer : Substitute . For < IServicesContainer < IGeolocation > > ( ) ,
locksService : new LocksServiceMock ( ) , // Cipher
device : new DeviceMock ( ) ,
specialFolder : new SpecialFolderMock ( ) ,
cipher : null ,
theme : null ,
currentVersion : new Version ( 3 , 2 , 0 , 115 ) ,
lastVersion : new Version ( 3 , 0 , 173 ) ) ; // Current app version. Must be larger or equal 3.0.173 to
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
Assert . AreEqual ( 0 , TestHelper . GetBikesAtStation ( l_oTinkApp . ActiveUser , l_oConnector , l_oTinkApp . Stations , l_oTinkApp . SelectedStation . Id ) . Result . Count ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
l_oTinkApp . SelectedStation = new TINK . Model . Station . Station ( "5" , new List < string > ( ) , null ) ;
Assert . AreEqual ( 3 , TestHelper . GetBikesAtStation ( l_oTinkApp . ActiveUser , l_oConnector , l_oTinkApp . Stations , l_oTinkApp . SelectedStation . Id ) . Result . Count ) ;
Assert . AreEqual ( "25" , TestHelper . GetBikesAtStation ( l_oTinkApp . ActiveUser , l_oConnector , l_oTinkApp . Stations , l_oTinkApp . SelectedStation . Id ) . Result . GetById ( "25" ) . Id ) ;
Assert . AreEqual ( "11" , TestHelper . GetBikesAtStation ( l_oTinkApp . ActiveUser , l_oConnector , l_oTinkApp . Stations , l_oTinkApp . SelectedStation . Id ) . Result . GetById ( "11" ) . Id ) ;
Assert . AreEqual ( "2" , TestHelper . GetBikesAtStation ( l_oTinkApp . ActiveUser , l_oConnector , l_oTinkApp . Stations , l_oTinkApp . SelectedStation . Id ) . Result . GetById ( "2" ) . Id ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
l_oTinkApp . SelectedStation = new TINK . Model . Station . Station ( "10" , new List < string > ( ) , null ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
Assert . AreEqual (
1 ,
TestHelper . GetBikesAtStation ( l_oTinkApp . ActiveUser , l_oConnector , l_oTinkApp . Stations , l_oTinkApp . SelectedStation . Id ) . Result . Count ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
Assert . AreEqual ( "18" , TestHelper . GetBikesAtStation ( l_oTinkApp . ActiveUser , l_oConnector , l_oTinkApp . Stations , l_oTinkApp . SelectedStation . Id ) . Result . GetById ( "18" ) . Id ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
l_oTinkApp . SelectedStation = new TINK . Model . Station . Station ( "91345" , new List < string > ( ) , null ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
Assert . AreEqual ( 0 , TestHelper . GetBikesAtStation ( l_oTinkApp . ActiveUser , l_oConnector , l_oTinkApp . Stations , l_oTinkApp . SelectedStation . Id ) . Result . Count ) ;
}
}
2022-10-17 18:45:38 +02:00
}