public MatchmakingController(MatchmakingService matchmakingService, UserManager <ApplicationUser> userManager, IGameRepository gameRepository) { this.matchmakingService = matchmakingService; this.userManager = userManager; this.gameRepository = gameRepository; }
public void Cancel_RemovesSession() { // Arrange var sessionId = Guid.NewGuid(); var mockMatchRepository = new Mock <IMatchRepository>(); IList <MatchmakingSession> sessions = new List <MatchmakingSession>() { new MatchmakingSession { Id = sessionId } }; var mockMatchSessionService = new Mock <IMatchSessionService>(); mockMatchSessionService.SetupGet(x => x.Sessions).Returns(sessions); mockMatchSessionService.SetupSet(x => x.Sessions).Callback(r => sessions = r); var mockBus = new Mock <IBus>(); var service = new MatchmakingService(mockMatchRepository.Object, mockBus.Object, mockMatchSessionService.Object); // Act service.Cancel(sessionId); // Assert Assert.True(sessions.Count == 0); }
public void GetSession_ReturnsSession() { // Arrange var sessionId = Guid.NewGuid(); var mockMatchRepository = new Mock <IMatchRepository>(); IList <MatchmakingSession> sessions = new List <MatchmakingSession>() { new MatchmakingSession { Id = sessionId } }; var mockMatchSessionService = new Mock <IMatchSessionService>(); mockMatchSessionService.SetupGet(x => x.Sessions).Returns(sessions); mockMatchSessionService.SetupSet(x => x.Sessions).Callback(r => sessions = r); var mockBus = new Mock <IBus>(); var service = new MatchmakingService(mockMatchRepository.Object, mockBus.Object, mockMatchSessionService.Object); // Act var session = service.GetSession(sessionId); // Assert Assert.Equal(session, sessions.First()); }
public void JoinSession_ReturnsCompletedSession() { // Arrange var sessionId = Guid.NewGuid(); var userId = Guid.NewGuid(); var mockMatchRepository = new Mock <IMatchRepository>(); IList <MatchmakingSession> sessions = new List <MatchmakingSession>() { new MatchmakingSession { Id = sessionId, HostPlayerId = Guid.NewGuid() } }; var mockMatchSessionService = new Mock <IMatchSessionService>(); mockMatchSessionService.SetupGet(x => x.Sessions).Returns(sessions); mockMatchSessionService.SetupSet(x => x.Sessions).Callback(r => sessions = r); var mockBus = new Mock <IBus>(); var service = new MatchmakingService(mockMatchRepository.Object, mockBus.Object, mockMatchSessionService.Object); // Act var session = service.JoinSession(sessionId, userId); // Assert Assert.Equal(session.JoinedPlayerId, userId); Assert.False(session.Open); }
public void JoinSession_AsHost_ThrowsException() { // Arrange var sessionId = Guid.NewGuid(); var userId = Guid.NewGuid(); var mockMatchRepository = new Mock <IMatchRepository>(); IList <MatchmakingSession> sessions = new List <MatchmakingSession>() { new MatchmakingSession { Id = sessionId, HostPlayerId = userId } }; var mockMatchSessionService = new Mock <IMatchSessionService>(); mockMatchSessionService.SetupGet(x => x.Sessions).Returns(sessions); mockMatchSessionService.SetupSet(x => x.Sessions).Callback(r => sessions = r); var mockBus = new Mock <IBus>(); var service = new MatchmakingService(mockMatchRepository.Object, mockBus.Object, mockMatchSessionService.Object); // Act & Assert Assert.Throws <HubException>(() => service.JoinSession(sessionId, userId)); }
public async Task LfgCommand(CommandContext ctx) { var lfgEmbed = new DiscordEmbedBuilder { Title = "Matchmaking", Description = "", Color = new DiscordColor(28, 128, 219) } .AddField("Klik hier om naar de website te gaan en andere spelers te zoeken!", "Je kan ook hieronder reageren met de game(s) waarvoor je medespelers zoekt!") .WithThumbnail("https://cdn.pixabay.com/photo/2015/12/08/17/40/magnifying-glass-1083378_960_720.png") .WithFooter("Reacties worden na 30 seconden geregistreerd."); DiscordMessage message; if (ctx.Member is not null) { message = await ctx.Member.SendMessageAsync(lfgEmbed.Build()); } else { await ctx.TriggerTypingAsync(); message = await ctx.RespondAsync(lfgEmbed.Build()); } await Task.Delay(100); var gamesWithEmoji = MatchmakingService.Games .Where(g => g.DiscordIconId != null) .ToImmutableList(); foreach (var game in gamesWithEmoji) { await message.CreateReactionAsync( DiscordEmoji.FromGuildEmote(ctx.Client, game.DiscordIconId.GetValueOrDefault()) ); } var interactivity = ctx.Client.GetInteractivity(); var reactions = await interactivity .CollectReactionsAsync(message, TimeSpan.FromSeconds(30)); foreach (var reaction in reactions) { foreach (var game in gamesWithEmoji) { var emoji = DiscordEmoji.FromGuildEmote(ctx.Client, game.DiscordIconId.GetValueOrDefault()); if (reaction.Emoji == emoji) { var user = ctx.User; MatchmakingService.AddUser(user.Username, user.Discriminator, user.AvatarUrl, user.Id, game); Logger.LogInformation("Added {game} to {member}'s matchmaking list.", game, user); } } } }
public async Task Matchmaking_WhenAlreadySimulatingAGame_ShouldThrowException() { //Arrange var userId = Guid.NewGuid(); var mockMatchRepository = new Mock <IMatchRepository>(); mockMatchRepository.Setup(x => x.GetInProgressAsync(userId)).Returns(Task.FromResult <Guid?>(Guid.NewGuid())); var mockBus = new Mock <IBus>(); var mockMatchSessionService = new Mock <IMatchSessionService>(); var service = new MatchmakingService(mockMatchRepository.Object, mockBus.Object, mockMatchSessionService.Object); //Act & Assert await Assert.ThrowsAsync <Exception>(() => service.Matchmake(userId)); }
private void SceneCreated(Scene scene) { var pluginName = scene.GetHostMetadata("stormancer.plugins.matchmaking"); if (!string.IsNullOrEmpty(pluginName)) { var matchmakingService = new MatchmakingService(scene); scene.DependencyResolver.RegisterComponent(matchmakingService); } pluginName = scene.GetHostMetadata("stormancer.gamesession"); if (!string.IsNullOrEmpty(pluginName)) { var gameSessionService = new GameSessionService(scene); scene.DependencyResolver.RegisterComponent(gameSessionService); } }
public void CreateSession_CreatesANewSession() { //Arrange var userId = Guid.NewGuid(); var mockMatchRepository = new Mock <IMatchRepository>(); IList <MatchmakingSession> sessions = new List <MatchmakingSession>(); var mockMatchSessionService = new Mock <IMatchSessionService>(); mockMatchSessionService.SetupGet(x => x.Sessions).Returns(sessions); mockMatchSessionService.SetupSet(x => x.Sessions).Callback(r => sessions = r); var mockBus = new Mock <IBus>(); var service = new MatchmakingService(mockMatchRepository.Object, mockBus.Object, mockMatchSessionService.Object); // Act var session = service.CreateSession(userId); Assert.Equal(session.HostPlayerId, userId); Assert.Contains(session, sessions); }
public MatchmakingController(MatchmakingService matchmakingService, TrackerService trackerService) { _matchmakingService = matchmakingService; _trackerService = trackerService; }
public ManagementController(MatchmakingService matchmakingService) { _matchmakingService = matchmakingService; }
public ChatController(MatchmakingService matchmakingService) { _matchmakingService = matchmakingService; }