2023-04-05 15:02:10 +02:00
using System.Collections.Generic ;
2022-08-30 15:42:25 +02:00
using NUnit.Framework ;
2021-07-12 21:31:46 +02:00
using TINK.Model ;
2021-11-14 23:27:29 +01:00
using TINK.Model.Connector ;
2021-07-12 21:31:46 +02:00
using TINK.ViewModel.Map ;
namespace UITest.Fixtures.ObjectTests.Map
{
2022-09-06 16:08:19 +02:00
[TestFixture]
public class TestMapPageFilter
{
[Test]
public void TestCurrentFilter_Empty ( )
{
var l_oFilter = new TinkKonradToggleViewModel ( null ) ;
Assert . IsEmpty ( l_oFilter . CurrentFilter ) ;
}
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
[Test]
public void TestCurrentFilter ( )
{
var l_oFilter = new TinkKonradToggleViewModel ( new GroupFilterMapPage ( new Dictionary < string , FilterState > { { $"HOM_{FilterHelper.CARGOBIKE}" , FilterState . On } , { "Konrad" , FilterState . Off } } ) ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
Assert . AreEqual ( $"HOM_{FilterHelper.CARGOBIKE}" , l_oFilter . CurrentFilter ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
l_oFilter = new TinkKonradToggleViewModel ( new GroupFilterMapPage ( new Dictionary < string , FilterState > { { $"HOM_{FilterHelper.CARGOBIKE}" , FilterState . Off } , { $"HOM_{FilterHelper.CITYBIKE}" , FilterState . On } } ) ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
Assert . AreEqual ( $"HOM_{FilterHelper.CITYBIKE}" , l_oFilter . CurrentFilter ) ;
}
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
[Test]
public void TestIsToggleVisible ( )
{
var l_oFilter = new TinkKonradToggleViewModel ( new GroupFilterMapPage ( new Dictionary < string , FilterState > { { $"HOM_{FilterHelper.CARGOBIKE}" , FilterState . On } } ) ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
Assert . IsFalse ( l_oFilter . IsToggleVisible ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
l_oFilter = new TinkKonradToggleViewModel ( new GroupFilterMapPage ( new Dictionary < string , FilterState > { { $"HOM_{FilterHelper.CARGOBIKE}" , FilterState . Off } , { $"HOM_{FilterHelper.CITYBIKE}" , FilterState . On } } ) ) ;
2021-07-12 21:31:46 +02:00
2022-09-06 16:08:19 +02:00
Assert . IsTrue ( l_oFilter . IsToggleVisible ) ;
}
2023-04-05 15:02:10 +02:00
/// <summary>
/// Verifies that if Konrad is turned off in settings map page filter does no more contain Konrad option.
/// </summary>
[Test]
public void TestGetFilterDictinaryMapPage_NoKonrad_TinkOnKonradOff ( )
{
var l_oDict = GroupFilterMapPageHelper . CreateUpdated (
new GroupFilterMapPage ( new Dictionary < string , FilterState > { { "TINK" , FilterState . On } , { "Konrad" , FilterState . Off } } ) , // Last map page filter (Konrad was still available but off)
new List < string > { "TINK" } ) ; // Filters from settings page.
Assert . AreEqual ( 1 , l_oDict . Count ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "TINK" ) ) ;
Assert . AreEqual ( FilterState . On , l_oDict [ "TINK" ] ) ;
}
/// <summary>
/// Verifies that if Konrad is turned off in settings map page filter does no more contain Konrad option.
/// </summary>
[Test]
public void TestGetFilterDictinaryMapPage_NoKonrad_TinkOffKonradOn ( )
{
var l_oDict = GroupFilterMapPageHelper . CreateUpdated (
new GroupFilterMapPage ( new Dictionary < string , FilterState > { { "TINK" , FilterState . Off } , { "Konrad" , FilterState . On } } ) , // Last map page filter (Konrad was still available but off)
new List < string > { "TINK" } ) ; // Filters from settings page.
Assert . AreEqual ( 1 , l_oDict . Count ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "TINK" ) ) ;
Assert . AreEqual ( FilterState . On , l_oDict [ "TINK" ] ) ;
}
/// <summary>
/// Verifies that if TINK.* is turned off in settings map page filter does no more contain TINK option.
/// </summary>
[Test]
public void TestGetFilterDictinaryMapPage_NoTink_TinkOnKonradOff ( )
{
var l_oDict = GroupFilterMapPageHelper . CreateUpdated (
new GroupFilterMapPage ( new Dictionary < string , FilterState > { { "TINK" , FilterState . On } , { "Konrad" , FilterState . Off } } ) , // Last map page filter (Konrad was still available but off)
new List < string > { "Konrad" } ) ; // Filters from settings page.
Assert . AreEqual ( 1 , l_oDict . Count ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "Konrad" ) ) ;
Assert . AreEqual ( FilterState . On , l_oDict [ "Konrad" ] ) ;
}
/// <summary>
/// Verifies that if Konrad is turned on in settings map page filter is updated with entry Konrad.
/// </summary>
[Test]
public void TestGetFilterDictinaryMapPage_TinkOn ( )
{
var l_oDict = GroupFilterMapPageHelper . CreateUpdated (
new GroupFilterMapPage ( new Dictionary < string , FilterState > { { "TINK" , FilterState . On } } ) , // Last map page filter (Konrad was still available but off)
new List < string > { "TINK" , "Konrad" } ) ; // Filters from settings page.
Assert . AreEqual ( 2 , l_oDict . Count ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "TINK" ) ) ;
Assert . AreEqual ( FilterState . Off , l_oDict [ "TINK" ] ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "Konrad" ) ) ;
Assert . AreEqual ( FilterState . On , l_oDict [ "Konrad" ] ) ;
}
/// <summary>
/// Verifies that if Konrad is turned on in settings map page filter is updated with entry Konrad.
/// </summary>
[Test]
public void TestGetFilterDictinaryMapPage_TinkOff ( )
{
var l_oDict = GroupFilterMapPageHelper . CreateUpdated (
new GroupFilterMapPage ( new Dictionary < string , FilterState > { { "TINK" , FilterState . Off } } ) , // Last map page filter (Konrad was still available but off)
new List < string > { "TINK" , "Konrad" } ) ; // Filters from settings page.
Assert . AreEqual ( 2 , l_oDict . Count ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "TINK" ) ) ;
Assert . AreEqual ( FilterState . Off , l_oDict [ "TINK" ] ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "Konrad" ) ) ;
Assert . AreEqual ( FilterState . On , l_oDict [ "Konrad" ] ) ;
}
/// <summary>
/// Verifies that map page filters are not touched if state is consitend.
/// </summary>
[Test]
public void TestGetFilterDictinaryMapPage_AllOn_KonradActivated ( )
{
var l_oDict = GroupFilterMapPageHelper . CreateUpdated (
new GroupFilterMapPage ( new Dictionary < string , FilterState > { { "TINK" , FilterState . Off } , { "Konrad" , FilterState . On } } ) , // Last map page filter (Konrad was still available but off)
new List < string > { "TINK" , "Konrad" } ) ; // Filters from settings page.
Assert . AreEqual ( 2 , l_oDict . Count ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "TINK" ) ) ;
Assert . AreEqual ( FilterState . Off , l_oDict [ "TINK" ] ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "Konrad" ) ) ;
Assert . AreEqual ( FilterState . On , l_oDict [ "Konrad" ] ) ;
}
/// <summary>
/// Verifies that map page filters are not touched if state is consitend..
/// </summary>
[Test]
public void TestGetFilterDictinaryMapPage_AllOn_TinkActivated ( )
{
var l_oDict = GroupFilterMapPageHelper . CreateUpdated (
new GroupFilterMapPage ( new Dictionary < string , FilterState > { { "TINK" , FilterState . On } , { "Konrad" , FilterState . Off } } ) , // Last map page filter (Konrad was still available but off)
new List < string > { "TINK" , "Konrad" } ) ; // Filters from settings page.
Assert . AreEqual ( 2 , l_oDict . Count ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "TINK" ) ) ;
Assert . AreEqual ( FilterState . On , l_oDict [ "TINK" ] ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "Konrad" ) ) ;
Assert . AreEqual ( FilterState . Off , l_oDict [ "Konrad" ] ) ;
}
/// <summary>
/// Verifies that map page filters are not touched if state is consitend.
/// </summary>
[Test]
public void TestGetFilterDictinaryMapPage_NullFilter ( )
{
var l_oDict = GroupFilterMapPageHelper . CreateUpdated (
new GroupFilterMapPage ( new Dictionary < string , FilterState > { { "TINK" , FilterState . On } , { "Konrad" , FilterState . Off } } ) , // Last map page filter (Konrad was still available but off)
null ) ;
Assert . AreEqual ( 2 , l_oDict . Count , "Do not apply any filter if filter value null is detected." ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "TINK" ) ) ;
Assert . AreEqual ( FilterState . On , l_oDict [ "TINK" ] ) ;
Assert . IsTrue ( l_oDict . ContainsKey ( "Konrad" ) ) ;
Assert . AreEqual ( FilterState . Off , l_oDict [ "Konrad" ] ) ;
l_oDict = GroupFilterMapPageHelper . CreateUpdated (
null ,
null ) ;
Assert . IsNull ( l_oDict , "Do not apply any filter if filter value null is detected." ) ;
}
[Test]
public void TestDoToggle ( )
{
var l_oFilter = new TinkKonradToggleViewModel ( new GroupFilterMapPage ( new Dictionary < string , FilterState > { { "TINK" , FilterState . On } , { "Konrad" , FilterState . Off } } ) ) ;
l_oFilter = new TinkKonradToggleViewModel ( l_oFilter . FilterDictionary ) . DoToggle ( ) ;
Assert . AreEqual ( "Konrad" , l_oFilter . CurrentFilter ) ;
l_oFilter = new TinkKonradToggleViewModel ( l_oFilter . FilterDictionary ) . DoToggle ( ) ;
Assert . AreEqual ( "TINK" , l_oFilter . CurrentFilter ) ;
}
2022-09-06 16:08:19 +02:00
}
2021-07-12 21:31:46 +02:00
}