public void CanLockConcurentThreadsTest() { var moks = new MockRepository(); var service = moks.DynamicMock <IRecalcGameStateService>(); Expect.Call(service.GameId).Return(5).Repeat.Any(); var helper = new ConcurentThreadHelper(); Expect.Call(() => service.RecalcGameState(DateTime.Now)) .Do(helper.Action()) .IgnoreArguments(); moks.ReplayAll(); GameDemon demon = GameDemon.GetInstance(service); demon.MinimalRecalcPeriod = 0; helper.Demon = demon; demon.RecalcGameState(null); moks.VerifyAll(); }
/// <summary> /// If you need to communicate to multiple databases, you'd add a line to this method to /// initialize the other database as well. /// </summary> private void InitializeNHibernateSession() { NHibernateSession.ConfigurationCache = new NHibernateConfigurationFileCache( new string[] { "Beavers.Encounter.Core" }); NHibernateSession.Init( webSessionStorage, new string[] { Server.MapPath("~/bin/Beavers.Encounter.Data.dll") }, new AutoPersistenceModelGenerator().Generate(), Server.MapPath("~/NHibernate.config")); Repository <Game> gameRepository = new Repository <Game>(); foreach (var game in gameRepository.GetAll().Where(x => x.GameState == GameStates.Started)) { var sl = ServiceLocator.Current.GetInstance <IServiceLocator>(); var taskService = sl.GetInstance <ITaskService>(); var teamGameStateRepository = sl.GetInstance <IRepository <TeamGameState> >(); var gameService = new GameService(gameRepository, teamGameStateRepository, taskService); var demon = GameDemon.GetInstance(new RecalcGameStateService( game.Id, gameRepository, gameService)); demon.Start(); } }
public void RecalcTest() { var moks = new MockRepository(); var service = moks.DynamicMock <IRecalcGameStateService>(); Expect.Call(service.GameId).Return(1).Repeat.Any(); Expect.Call(() => service.RecalcGameState(DateTime.Now)) .IgnoreArguments(); moks.ReplayAll(); GameDemon demon = GameDemon.GetInstance(service); demon.MinimalRecalcPeriod = 0; demon.RecalcGameState(null); moks.VerifyAll(); }