using System; using System.Collections.Generic; using System.Linq; using NSubstitute; using NUnit.Framework; using SharedBusinessLogic.Tests.Framework.Repository; using ShareeBike.Model.Connector; using ShareeBike.Repository; namespace SharedBusinessLogic.Tests.Fixtures.ObjectTests.Connector { /// Tests filter object. [TestFixture] public class TestFilter { /// Tests all stations. [Test] public void TestGetStationsAll() { var appContextInfo = new AppContextInfo("MyMerchId", "MyApp", new Version(1, 2)); var connector = new ConnectorCache( appContextInfo, null /*UI language */, string.Empty, string.Empty, server: new CopriCallsMemory001(merchantId: appContextInfo.MerchantId)); var filter = new FilteredConnector(new List { FilterHelper.CARGOBIKE, FilterHelper.CITYBIKE }, connector); var stations = filter.Query.GetBikesAndStationsAsync().Result.Response; Assert.That(stations.StationsAll.Count(), Is.EqualTo(41)); // 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.That(stations.StationsAll.Count(), Is.EqualTo(27)); filter = new FilteredConnector(new List { FilterHelper.CITYBIKE }, connector); stations = filter.Query.GetBikesAndStationsAsync().Result.Response; Assert.That(stations.StationsAll.Count(), Is.EqualTo(21)); filter = new FilteredConnector(new List { "AGroupNamedNonsensDoesNotExist" }, connector); stations = filter.Query.GetBikesAndStationsAsync().Result.Response; Assert.That(stations.StationsAll.Count(), Is.EqualTo(0)); filter = new FilteredConnector(new List(), connector); stations = filter.Query.GetBikesAndStationsAsync().Result.Response; Assert.That(stations.StationsAll.Count(), Is.EqualTo(41)); filter = new FilteredConnector(null, connector); stations = filter.Query.GetBikesAndStationsAsync().Result.Response; Assert.That(stations.StationsAll.Count(), Is.EqualTo(41), "Null means filter none."); } /// Tests all stations. [Test] public void TestGetBikesAll() { var appContextInfo = new AppContextInfo("MyMerchId", "MyApp", new Version(1, 2)); var l_oConnector = new ConnectorCache( appContextInfo, null /*UI language */, string.Empty, string.Empty, server: new CopriCallsMemory001(merchantId: appContextInfo.MerchantId)); var l_oFilter = new FilteredConnector(new List { FilterHelper.CARGOBIKE, FilterHelper.CITYBIKE }, l_oConnector); var l_oBikes = l_oFilter.Query.GetBikesAsync().Result.Response; Assert.That(l_oBikes.Count(), Is.EqualTo(8)); // 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.That(l_oBikes.Count(), Is.EqualTo(3)); // Was 11 l_oFilter = new FilteredConnector(new List { FilterHelper.CITYBIKE }, l_oConnector); l_oBikes = l_oFilter.Query.GetBikesAsync().Result.Response; Assert.That(l_oBikes.Count(), Is.EqualTo(5)); // Was 1 l_oFilter = new FilteredConnector(new List { "AGroupNamedNonsensDoesNotExist" }, l_oConnector); l_oBikes = l_oFilter.Query.GetBikesAsync().Result.Response; Assert.That(l_oBikes.Count(), Is.EqualTo(0)); l_oFilter = new FilteredConnector(new List(), l_oConnector); l_oBikes = l_oFilter.Query.GetBikesAsync().Result.Response; Assert.That(l_oBikes.Count(), Is.EqualTo(8), "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.That(l_oBikes.Count(), Is.EqualTo(8), "Null means filter none."); } [Test] public void TestIsConnected() { var connector = Substitute.For(); connector.IsConnected.Returns(true); Assert.That(new FilteredConnector(new List(), connector).IsConnected, Is.True); var dummy = connector.Received().IsConnected; connector = Substitute.For(); connector.IsConnected.Returns(false); Assert.That(new FilteredConnector(new List(), connector).IsConnected, Is.False); dummy = connector.Received().IsConnected; } } }