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); }
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()); }