Exemplo n.º 1
0
        public void DisposeStreamListenerSafeGuardTest()
        {
            var settings = new Mock <ISettings>();

            settings.Setup(x => x.EventStateFilePath).Returns(".");
            settings.Setup(x => x.FixtureCreationConcurrency).Returns(2);
            settings.Setup(x => x.FixtureCheckerFrequency).Returns(1200000);

            var service = new Mock <IServiceFacade>();

            service.Setup(x => x.IsConnected).Returns(true);
            var streamListenerManager = new StreamListenerManager(settings.Object);

            streamListenerManager.StateManager = _state.Object;
            var connector  = new Mock <IAdapterPlugin>();
            var fixtureOne = new Mock <IResourceFacade>();
            var fixtureTwo = new Mock <IResourceFacade>();

            int created = 0;

            fixtureOne.Setup(f => f.Id).Returns("1");
            fixtureOne.Setup(f => f.Sport).Returns("Football");
            fixtureOne.Setup(f => f.GetSnapshot()).Returns(TestHelper.GetSnapshotJson());
            fixtureOne.Setup(f => f.Content).Returns(new Summary {
                Id = "1", Date = "23/05/2012", StartTime = "10:20", MatchStatus = (int)MatchStatus.Setup
            });

            fixtureTwo.Setup(f => f.Id).Returns("2");
            fixtureTwo.Setup(f => f.Sport).Returns("Football");
            fixtureTwo.Setup(f => f.GetSnapshot()).Returns(string.Empty);
            fixtureTwo.Setup(f => f.Content).Returns(new Summary {
                Id = "2", Date = "23/05/2012", StartTime = "10:30", MatchStatus = (int)MatchStatus.Setup
            });

            service.Setup(x => x.GetResources("Football"))
            .Returns(() => new List <IResourceFacade> {
                fixtureOne.Object, fixtureTwo.Object
            });

            Adapter adapter = new Adapter(settings.Object, service.Object, connector.Object, streamListenerManager);

            adapter.StateManager.ClearState("1");
            adapter.StateManager.ClearState("2");
            adapter.AddSport("Football");

            streamListenerManager.StreamCreated += delegate(object sender, string e)
            {
                created++;
            };

            streamListenerManager.StreamRemoved += delegate(object sender, string e)
            {
                created--;
            };

            adapter.Start();

            adapter.TimerEvent();

            Thread.Sleep(500);

            created.Should().Be(2);

            service.Setup(s => s.GetResources("Football")).Returns(() =>
            {
                return(new List <IResourceFacade> {
                    fixtureTwo.Object
                });
            });

            adapter.TimerEvent();

            Thread.Sleep(500);
            created.Should().Be(2);

            adapter.TimerEvent();
            Thread.Sleep(500);

            created.Should().Be(1);
        }
Exemplo n.º 2
0
        public void ShouldCreateListeners()
        {
            var streamListenerManager = new Mock <IStreamListenerManager>();
            var settings = new Mock <ISettings>();

            settings.Setup(x => x.EventStateFilePath).Returns(".");
            var service = new Mock <IServiceFacade>();

            service.Setup(x => x.IsConnected).Returns(true);
            var connector  = new Mock <IAdapterPlugin>();
            var eventState = new Mock <IEventState>();

            var fixtureOne = new Mock <IResourceFacade>();
            var fixtureTwo = new Mock <IResourceFacade>();

            fixtureOne.Setup(f => f.Id).Returns("1");
            fixtureOne.Setup(f => f.GetSnapshot()).Returns(TestHelper.GetSnapshotJson());
            fixtureOne.Setup(f => f.Content).Returns(new Summary {
                Id = "1", Date = "23/05/2012", StartTime = "10:20", MatchStatus = 1
            });

            fixtureTwo.Setup(f => f.Id).Returns("2");
            fixtureTwo.Setup(f => f.GetSnapshot()).Returns(TestHelper.GetSnapshotJson());
            fixtureTwo.Setup(f => f.Content)
            .Returns(new Summary
            {
                Id = "2", Date = "23/05/2012", StartTime = "13:20", MatchStatus = 1
            });

            service.Setup(s => s.GetResources("Football")).Returns(new List <IResourceFacade> {
                fixtureOne.Object, fixtureTwo.Object
            });

            settings.Setup(s => s.FixtureCreationConcurrency).Returns(2);

            var fixtureManager = new FixtureManager(5, streamListenerManager.Object, service.Object.GetResources);

            fixtureManager.ProcessSport("Football");
            fixtureManager.ProcessSport("Rugby");

            //this checks service IsConnected
            var adapter = new Adapter(
                settings.Object,
                service.Object,
                connector.Object,
                streamListenerManager.Object
                );

            adapter.Start();

            //adapter.ProcessSport("Football");
            //adapter.ProcessSport("Rugby");



            Thread.Yield();

            service.VerifyAll();

            eventState.Verify(es => es.RemoveFixture(It.IsAny <string>()), Times.Never());
        }