public IJSResponse StartGame(IJSRequest request) { string emulator = request.GetParameter("emulator"); string id = request.GetParameter("id"); IEmulatorBridge bridge = this.CoreInstance.Get<IPluginManager>().Plugins<IEmulatorBridge>()[emulator]; IGameInfo gameInfo = this.CoreInstance.Get<IGameDatabase>().GetGameByUUID(id); var gameStartEvent = new GameStartEventArgs(this.CoreInstance, gameInfo, bridge.EmulatorAssembly, bridge); SnowflakeEventManager.EventSource.RaiseEvent(gameStartEvent); if (!gameStartEvent.Cancel) { gameStartEvent.GameEmulatorBridge.StartRom(gameStartEvent.GameInfo); } return new JSResponse(request, gameInfo); }
public void GameStartEvent_Test() { SnowflakeEventManager.InitEventSource(); new StandardEvents().RegisterSnowflakeEvents(SnowflakeEventManager.EventSource); var fakeCoreService = new Mock<ICoreService>(); var fakeGameInfo = new Mock<IGameInfo>(); var fakeEmulatorAssembly = new Mock<IEmulatorAssembly>(); var fakeEmulatorBridge = new Mock<IEmulatorBridge>(); var args = new GameStartEventArgs(fakeCoreService.Object, fakeGameInfo.Object, fakeEmulatorAssembly.Object, fakeEmulatorBridge.Object); SnowflakeEventManager.EventSource.Subscribe<GameStartEventArgs>((s, e) => { Assert.Equal(args, e); }); SnowflakeEventManager.EventSource.RaiseEvent(args); }