Exemple #1
0
        public void BeginConversationTimerArguments_Constructor_SetsProperties()
        {
            // Arrange
            var handle = (ConversationHandle)Guid.NewGuid();
            var timeout = new SecondTimeout(15);

            // Act
            var args = new BeginConversationTimerArguments(handle, timeout);

            // Assert
            Assert.Equal(handle, args.ConversationHandle);
            Assert.Equal(timeout, args.Timeout);
        }
        public async Task BeginConversationTimerAsync_Succeeds()
        {
            // Arrange
            await InitializeDatabaseAsync();
            var handle = await BeginDialogAsync();
            var provider = new SqlServerServiceBroker(connection);
            var arguments = new BeginConversationTimerArguments(handle, 600);

            // Act
            await provider.BeginConversationTimerAsync(arguments);
            var sql = @"SELECT * FROM sys.conversation_endpoints WHERE conversation_handle = @handle";
            var results = await connection.QueryAsync(sql, new { handle });
            var scheduledTime = (DateTime)results.Single().dialog_timer;

            // Assert
            Assert.True(scheduledTime > DateTime.Now);
        }
        public async Task BeginConversationTimerAsync_UsesTransaction()
        {
            // Arrange
            await InitializeDatabaseAsync();
            var handle = await BeginDialogAsync();
            var provider = new SqlServerServiceBroker(connection);
            var arguments = new BeginConversationTimerArguments(handle, 600);

            // Act
            using (var transaction = await provider.BeginTransactionAsync())
            {
                await provider.BeginConversationTimerAsync(arguments);
                transaction.Rollback();
            }

            var sql = @"SELECT * FROM sys.conversation_endpoints WHERE conversation_handle = @handle";
            var results = await connection.QueryAsync(sql, new { handle });
            var scheduledTime = (DateTime)results.Single().dialog_timer;

            // Assert
            Assert.Equal(1900, scheduledTime.Year);
        }