예제 #1
0
        private async Task <TestHubConnection> BuildTestHubConnectionWithoutAssignedWaiter <TEvent>(
            HireWaiter hireAssignedWaiterCommand,
            HireWaiter hireUnassignedWaiterCommand,
            AddTable addTableCommand,
            Register registerCommand)
        {
            await HireWaiterWithTable(hireAssignedWaiterCommand, addTableCommand);

            await _fixture.SendAsync(hireUnassignedWaiterCommand);

            await _fixture.SendAsync(registerCommand);

            var assignWaiterToAccountCommand = new AssignWaiterToAccount
            {
                AccountId = registerCommand.Id,

                // Purposefully assigning another waiter to the account, that is not assigned to the table
                WaiterId = hireUnassignedWaiterCommand.Id
            };

            await _fixture.SendAsync(assignWaiterToAccountCommand);

            var accessToken = (await _authHelper
                               .Login(registerCommand.Email, registerCommand.Password))
                              .TokenString;

            var testConnection = BuildTestConnection <TEvent>(accessToken);

            return(testConnection);
        }
예제 #2
0
        public async Task CanConnectAsBarista(Register registerCommand, HireBarista hireBaristaCommand, Guid orderId, MenuItem[] menuItems)
        {
            // Arrange
            await _authTestsHelper.Register(registerCommand);

            await _fixture.SendAsync(hireBaristaCommand);

            var assignBaristaToAccountCommand = new AssignBaristaToAccount
            {
                AccountId = registerCommand.Id,
                BaristaId = hireBaristaCommand.Id
            };

            await _fixture.SendAsync(assignBaristaToAccountCommand);

            var accessToken = (await _authTestsHelper.Login(registerCommand.Email, registerCommand.Password)).TokenString;

            var testConnection = BuildTestConnection(accessToken);

            await testConnection.OpenAsync();

            // Act
            await _toGoOrdersHelper.CreateConfirmedOrder(orderId, menuItems);

            // Assert
            await testConnection
            .VerifyMessageReceived <OrderConfirmed>(
                e => e.Order.Id == orderId &&
                e.Order.OrderedItems.Count == menuItems.Length,
                Times.Once());
        }
예제 #3
0
        public async Task CanConnectAsManager(Register registerCommand, HireManager hireManagerCommand, HireWaiter hireWaiterCommand)
        {
            // Arrange
            await _authTestsHelper.Register(registerCommand);

            await _fixture.SendAsync(hireManagerCommand);

            var assignManagerToAccountCommand = new AssignManagerToAccount
            {
                AccountId = registerCommand.Id,
                ManagerId = hireManagerCommand.Id
            };

            await _fixture.SendAsync(assignManagerToAccountCommand);

            var accessToken = (await _authTestsHelper.Login(registerCommand.Email, registerCommand.Password)).TokenString;

            var testConnection = BuildTestConnection(accessToken);

            await testConnection.OpenAsync();

            // Act
            await _fixture.SendAsync(hireWaiterCommand);

            // Assert
            await testConnection
            .VerifyMessageReceived <WaiterHired>(
                e => e.Waiter.Id == hireWaiterCommand.Id &&
                e.Waiter.ShortName == hireWaiterCommand.ShortName,
                Times.Once());
        }
예제 #4
0
        private async Task <string> SetupUserWithClaims(Fixture fixture, IEnumerable <Claim> withClaims)
        {
            var registerCommand = fixture
                                  .Create <Register>();

            await _authHelper.Register(registerCommand);

            if (withClaims != null)
            {
                await _authHelper.AddClaimsAsync(registerCommand.Id, withClaims);
            }

            var token = (await _authHelper
                         .Login(registerCommand.Email, registerCommand.Password))
                        .TokenString;

            return(token);
        }