public MultiplayerFlowTests()
        {
            MultiplayerHub.Reset();

            mockDatabaseFactory = new Mock <IDatabaseFactory>();
            mockDatabase        = new Mock <IDatabaseAccess>();
            setUpMockDatabase();

            MemoryDistributedCache cache = new MemoryDistributedCache(Options.Create(new MemoryDistributedCacheOptions()));

            hub = new TestMultiplayerHub(cache, mockDatabaseFactory.Object);

            mockGroups = new Mock <IGroupManager>();

            mockContextUser1 = new Mock <HubCallerContext>();
            mockContextUser1.Setup(context => context.UserIdentifier).Returns(user_id.ToString());
            mockContextUser1.Setup(context => context.ConnectionId).Returns(user_id.ToString());

            mockContextUser2 = new Mock <HubCallerContext>();
            mockContextUser2.Setup(context => context.UserIdentifier).Returns(user_id_2.ToString());
            mockContextUser2.Setup(context => context.ConnectionId).Returns(user_id_2.ToString());

            Mock <IHubCallerClients <IMultiplayerClient> > mockClients = new Mock <IHubCallerClients <IMultiplayerClient> >();

            mockReceiver = new Mock <IMultiplayerClient>();
            mockClients.Setup(clients => clients.Group(MultiplayerHub.GetGroupId(room_id, false))).Returns(mockReceiver.Object);

            mockGameplayReceiver = new Mock <IMultiplayerClient>();
            mockClients.Setup(clients => clients.Group(MultiplayerHub.GetGroupId(room_id, true))).Returns(mockGameplayReceiver.Object);

            hub.Groups  = mockGroups.Object;
            hub.Clients = mockClients.Object;

            setUserContext(mockContextUser1);
        }
Exemplo n.º 2
0
        protected MultiplayerTest()
        {
            mockDatabaseFactory = new Mock <IDatabaseFactory>();
            Database            = new Mock <IDatabaseAccess>();
            setUpMockDatabase();

            MemoryDistributedCache cache = new MemoryDistributedCache(Options.Create(new MemoryDistributedCacheOptions()));

            Rooms      = new EntityStore <MultiplayerRoom>();
            UserStates = new EntityStore <MultiplayerClientState>();
            Hub        = new TestMultiplayerHub(cache, Rooms, UserStates, mockDatabaseFactory.Object);

            Clients = new Mock <IHubCallerClients <IMultiplayerClient> >();
            Groups  = new Mock <IGroupManager>();

            ContextUser = new Mock <HubCallerContext>();
            ContextUser.Setup(context => context.UserIdentifier).Returns(USER_ID.ToString());
            ContextUser.Setup(context => context.ConnectionId).Returns(USER_ID.ToString());

            ContextUser2 = new Mock <HubCallerContext>();
            ContextUser2.Setup(context => context.UserIdentifier).Returns(USER_ID_2.ToString());
            ContextUser2.Setup(context => context.ConnectionId).Returns(USER_ID_2.ToString());

            Receiver = new Mock <IMultiplayerClient>();
            Clients.Setup(clients => clients.Group(MultiplayerHub.GetGroupId(ROOM_ID, false))).Returns(Receiver.Object);

            GameplayReceiver = new Mock <IMultiplayerClient>();
            Clients.Setup(clients => clients.Group(MultiplayerHub.GetGroupId(ROOM_ID, true))).Returns(GameplayReceiver.Object);

            var receiver2 = new Mock <IMultiplayerClient>();

            Clients.Setup(clients => clients.Group(MultiplayerHub.GetGroupId(ROOM_ID_2, false))).Returns(receiver2.Object);

            Caller = new Mock <IMultiplayerClient>();
            Clients.Setup(client => client.Caller).Returns(Caller.Object);

            Hub.Groups  = Groups.Object;
            Hub.Clients = Clients.Object;

            SetUserContext(ContextUser);
        }
 private void verifyRemovedFromGameplayGroup(Mock <HubCallerContext> context, long roomId, bool wasRemoved = true)
 => mockGroups.Verify(groups => groups.RemoveFromGroupAsync(
                          context.Object.ConnectionId,
                          MultiplayerHub.GetGroupId(roomId, true),
                          It.IsAny <CancellationToken>()), wasRemoved ? Times.Once : Times.Never);
Exemplo n.º 4
0
 /// <summary>
 /// Verifies that the given user context was either added or not added to the gameplay group.
 /// </summary>
 /// <param name="context">The user context.</param>
 /// <param name="roomId">The room ID.</param>
 /// <param name="wasAdded">Whether to verify that the user context was added, otherwise verify not.</param>
 protected void VerifyAddedToGameplayGroup(Mock <HubCallerContext> context, long roomId, bool wasAdded = true)
 => Groups.Verify(groups => groups.AddToGroupAsync(
                      context.Object.ConnectionId,
                      MultiplayerHub.GetGroupId(roomId, true),
                      It.IsAny <CancellationToken>()), wasAdded ? Times.Once : Times.Never);