2021-07-12 21:31:46 +02:00
using NUnit.Framework ;
using Rhino.Mocks ;
using System.Collections.Generic ;
using TINK.Model.Connector ;
using System.Linq ;
using TINK.Repository ;
2021-11-14 23:27:29 +01:00
using TestFramework.Repository ;
2021-07-12 21:31:46 +02:00
namespace TestTINKLib.Fixtures.ObjectTests.Connector
{
/// <summary> Tests filter object. </summary>
[TestFixture]
public class TestFilter
{
/// <summary> Tests all stations. </summary>
[Test]
public void TestGetStationsAll ( )
{
2021-11-14 23:27:29 +01:00
var connector = new ConnectorCache (
2021-07-12 21:31:46 +02:00
string . Empty ,
string . Empty ,
2021-11-14 23:27:29 +01:00
new CopriCallsMemory001 ( ) ) ;
2021-07-12 21:31:46 +02:00
2022-01-04 18:54:03 +01:00
var filter = new FilteredConnector ( new List < string > { FilterHelper . CARGOBIKE , FilterHelper . CITYBIKE } , connector ) ;
2021-11-14 23:27:29 +01:00
var stations = filter . Query . GetBikesAndStationsAsync ( ) . Result . Response ;
Assert . AreEqual ( 41 , stations . StationsAll . Count ( ) ) ; // Count of stations was 9 before switching to data provider CopriCallsMemory(CopriCallsMemory.SampleSets.Set2, 1)
2021-07-12 21:31:46 +02:00
2022-01-04 18:54:03 +01:00
filter = new FilteredConnector ( new List < string > { FilterHelper . CARGOBIKE } , connector ) ;
2021-11-14 23:27:29 +01:00
stations = filter . Query . GetBikesAndStationsAsync ( ) . Result . Response ;
2022-01-04 18:54:03 +01:00
Assert . AreEqual ( 27 , stations . StationsAll . Count ( ) ) ;
2021-07-12 21:31:46 +02:00
2022-01-04 18:54:03 +01:00
filter = new FilteredConnector ( new List < string > { FilterHelper . CITYBIKE } , connector ) ;
2021-11-14 23:27:29 +01:00
stations = filter . Query . GetBikesAndStationsAsync ( ) . Result . Response ;
2022-01-04 18:54:03 +01:00
Assert . AreEqual ( 21 , stations . StationsAll . Count ( ) ) ;
2021-07-12 21:31:46 +02:00
2021-11-14 23:27:29 +01:00
filter = new FilteredConnector ( new List < string > { "AGroupNamedNonsensDoesNotExist" } , connector ) ;
stations = filter . Query . GetBikesAndStationsAsync ( ) . Result . Response ;
Assert . AreEqual ( 0 , stations . StationsAll . Count ( ) ) ;
2021-07-12 21:31:46 +02:00
2021-11-14 23:27:29 +01:00
filter = new FilteredConnector ( new List < string > ( ) , connector ) ;
stations = filter . Query . GetBikesAndStationsAsync ( ) . Result . Response ;
Assert . AreEqual ( 41 , stations . StationsAll . Count ( ) ) ;
2021-07-12 21:31:46 +02:00
2021-11-14 23:27:29 +01:00
filter = new FilteredConnector ( null , connector ) ;
stations = filter . Query . GetBikesAndStationsAsync ( ) . Result . Response ;
Assert . AreEqual ( 41 , stations . StationsAll . Count ( ) , "Null means filter none." ) ;
2021-07-12 21:31:46 +02:00
}
/// <summary> Tests all stations. </summary>
[Test]
public void TestGetBikesAll ( )
{
var l_oConnector = new ConnectorCache (
string . Empty ,
string . Empty ,
2021-11-14 23:27:29 +01:00
new CopriCallsMemory001 ( ) ) ;
2021-07-12 21:31:46 +02:00
2022-01-04 18:54:03 +01:00
var l_oFilter = new FilteredConnector ( new List < string > { FilterHelper . CARGOBIKE , FilterHelper . CITYBIKE } , l_oConnector ) ;
2021-07-12 21:31:46 +02:00
var l_oBikes = l_oFilter . Query . GetBikesAsync ( ) . Result . Response ;
2021-11-14 23:27:29 +01:00
Assert . AreEqual ( 8 , l_oBikes . Count ( ) ) ; // Count of stations was 12 CopriCallsMemory(CopriCallsMemory.SampleSets.Set2, 1)
2021-07-12 21:31:46 +02:00
2022-01-04 18:54:03 +01:00
l_oFilter = new FilteredConnector ( new List < string > { FilterHelper . CARGOBIKE } , l_oConnector ) ;
2021-07-12 21:31:46 +02:00
l_oBikes = l_oFilter . Query . GetBikesAsync ( ) . Result . Response ;
2022-01-04 18:54:03 +01:00
Assert . AreEqual ( 3 , l_oBikes . Count ( ) ) ; // Was 11
2021-07-12 21:31:46 +02:00
2022-01-04 18:54:03 +01:00
l_oFilter = new FilteredConnector ( new List < string > { FilterHelper . CITYBIKE } , l_oConnector ) ;
2021-07-12 21:31:46 +02:00
l_oBikes = l_oFilter . Query . GetBikesAsync ( ) . Result . Response ;
2022-01-04 18:54:03 +01:00
Assert . AreEqual ( 5 , l_oBikes . Count ( ) ) ; // Was 1
2021-07-12 21:31:46 +02:00
l_oFilter = new FilteredConnector ( new List < string > { "AGroupNamedNonsensDoesNotExist" } , l_oConnector ) ;
l_oBikes = l_oFilter . Query . GetBikesAsync ( ) . Result . Response ;
Assert . AreEqual ( 0 , l_oBikes . Count ( ) ) ;
l_oFilter = new FilteredConnector ( new List < string > ( ) , l_oConnector ) ;
l_oBikes = l_oFilter . Query . GetBikesAsync ( ) . Result . Response ;
2021-11-14 23:27:29 +01:00
Assert . AreEqual ( 8 , l_oBikes . Count ( ) , "List with zero element means filter all." ) ; // Was 12
2021-07-12 21:31:46 +02:00
l_oFilter = new FilteredConnector ( null , l_oConnector ) ;
l_oBikes = l_oFilter . Query . GetBikesAsync ( ) . Result . Response ;
2021-11-14 23:27:29 +01:00
Assert . AreEqual ( 8 , l_oBikes . Count ( ) , "Null means filter none." ) ;
2021-07-12 21:31:46 +02:00
}
[Test]
public void TestIsConnected ( )
{
var l_oMock = MockRepository . GenerateMock < IConnector > ( ) ;
l_oMock . Expect ( x = > x . IsConnected ) . Return ( true ) ;
Assert . IsTrue ( new FilteredConnector ( new List < string > ( ) , l_oMock ) . IsConnected ) ;
l_oMock = MockRepository . GenerateMock < IConnector > ( ) ;
l_oMock . Expect ( x = > x . IsConnected ) . Return ( false ) ;
Assert . IsFalse ( new FilteredConnector ( new List < string > ( ) , l_oMock ) . IsConnected ) ;
}
}
}