using System; using System.Collections.Generic; using System.Linq; using NSubstitute; using NUnit.Framework; using TestFramework.Repository; using TINK.Model.Connector; using TINK.Repository; namespace TestTINKLib.Fixtures.ObjectTests.Connector { /// Tests filter object. [TestFixture] public class TestFilter { /// Tests all stations. [Test] public void TestGetStationsAll() { var connector = new ConnectorCache( new AppContextInfo("MyMerchId", "MyApp", new Version(1, 2)), null /*UI language */, string.Empty, string.Empty, new CopriCallsMemory001()); var filter = new FilteredConnector(new List { FilterHelper.CARGOBIKE, FilterHelper.CITYBIKE }, connector); 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) filter = new FilteredConnector(new List { FilterHelper.CARGOBIKE }, connector); stations = filter.Query.GetBikesAndStationsAsync().Result.Response; Assert.AreEqual(27, stations.StationsAll.Count()); filter = new FilteredConnector(new List { FilterHelper.CITYBIKE }, connector); stations = filter.Query.GetBikesAndStationsAsync().Result.Response; Assert.AreEqual(21, stations.StationsAll.Count()); filter = new FilteredConnector(new List { "AGroupNamedNonsensDoesNotExist" }, connector); stations = filter.Query.GetBikesAndStationsAsync().Result.Response; Assert.AreEqual(0, stations.StationsAll.Count()); filter = new FilteredConnector(new List(), connector); stations = filter.Query.GetBikesAndStationsAsync().Result.Response; Assert.AreEqual(41, stations.StationsAll.Count()); filter = new FilteredConnector(null, connector); stations = filter.Query.GetBikesAndStationsAsync().Result.Response; Assert.AreEqual(41, stations.StationsAll.Count(), "Null means filter none."); } /// Tests all stations. [Test] public void TestGetBikesAll() { var l_oConnector = new ConnectorCache( new AppContextInfo("MyMerchId", "MyApp", new Version(1, 2)), null /*UI language */, string.Empty, string.Empty, new CopriCallsMemory001()); var l_oFilter = new FilteredConnector(new List { FilterHelper.CARGOBIKE, FilterHelper.CITYBIKE }, l_oConnector); var l_oBikes = l_oFilter.Query.GetBikesAsync().Result.Response; Assert.AreEqual(8, l_oBikes.Count()); // Count of stations was 12 CopriCallsMemory(CopriCallsMemory.SampleSets.Set2, 1) l_oFilter = new FilteredConnector(new List { FilterHelper.CARGOBIKE }, l_oConnector); l_oBikes = l_oFilter.Query.GetBikesAsync().Result.Response; Assert.AreEqual(3, l_oBikes.Count()); // Was 11 l_oFilter = new FilteredConnector(new List { FilterHelper.CITYBIKE }, l_oConnector); l_oBikes = l_oFilter.Query.GetBikesAsync().Result.Response; Assert.AreEqual(5, l_oBikes.Count()); // Was 1 l_oFilter = new FilteredConnector(new List { "AGroupNamedNonsensDoesNotExist" }, l_oConnector); l_oBikes = l_oFilter.Query.GetBikesAsync().Result.Response; Assert.AreEqual(0, l_oBikes.Count()); l_oFilter = new FilteredConnector(new List(), l_oConnector); l_oBikes = l_oFilter.Query.GetBikesAsync().Result.Response; Assert.AreEqual(8, l_oBikes.Count(), "List with zero element means filter all."); // Was 12 l_oFilter = new FilteredConnector(null, l_oConnector); l_oBikes = l_oFilter.Query.GetBikesAsync().Result.Response; Assert.AreEqual(8, l_oBikes.Count(), "Null means filter none."); } [Test] public void TestIsConnected() { var connector = Substitute.For(); connector.IsConnected.Returns(true); Assert.IsTrue(new FilteredConnector(new List(), connector).IsConnected); var dummy = connector.Received().IsConnected; connector = Substitute.For(); connector.IsConnected.Returns(false); Assert.IsFalse(new FilteredConnector(new List(), connector).IsConnected); dummy = connector.Received().IsConnected; } } }