public async Task GetReceivedMessageAsync_Test()
        {
            var sql             = $@"
        INSERT INTO [Cap].[Received]([Name],[Group],[Content],[Retries],[Added],[ExpiresAt],[StatusName]) OUTPUT INSERTED.Id
        VALUES(@Name,@Group,@Content,@Retries,@Added,@ExpiresAt,@StatusName);";
            var receivedMessage = new CapReceivedMessage
            {
                Name       = "SqlServerStorageConnectionTest",
                Content    = "",
                Group      = "mygroup",
                StatusName = StatusName.Scheduled
            };
            var insertedId = default(int);

            using (var connection = ConnectionUtil.CreateConnection())
            {
                insertedId = connection.QueryFirst <int>(sql, receivedMessage);
            }

            var message = await _storage.GetReceivedMessageAsync(insertedId);

            Assert.NotNull(message);
            Assert.Equal(StatusName.Scheduled, message.StatusName);
            Assert.Equal("SqlServerStorageConnectionTest", message.Name);
            Assert.Equal("mygroup", message.Group);
        }
        public async Task GetReceivedMessageAsync_Test()
        {
            var sql             = @"INSERT INTO [Cap].[Received]([Id],[Name],[Group],[Content],[Retries],[Added],[ExpiresAt],[StatusName]) VALUES(@Id,@Name,@Group,@Content,@Retries,@Added,@ExpiresAt,@StatusName);";
            var insertedId      = SnowflakeId.Default().NextId();
            var receivedMessage = new CapReceivedMessage
            {
                Id         = insertedId,
                Name       = "SqlServerStorageConnectionTest",
                Content    = "",
                Group      = "mygroup",
                StatusName = StatusName.Scheduled
            };

            using (var connection = ConnectionUtil.CreateConnection())
            {
                await connection.ExecuteAsync(sql, receivedMessage);
            }

            var message = await _storage.GetReceivedMessageAsync(insertedId);

            Assert.NotNull(message);
            Assert.Equal(StatusName.Scheduled, message.StatusName);
            Assert.Equal("SqlServerStorageConnectionTest", message.Name);
            Assert.Equal("mygroup", message.Group);
        }
예제 #3
0
 public void DatabaseTable_IsExists(string tableName)
 {
     using (var connection = ConnectionUtil.CreateConnection(_masterDbConnectionString))
     {
         var sql    = $"SELECT TABLE_SCHEMA+'.'+TABLE_NAME FROM {_dbName}.INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA+'.'+TABLE_NAME='{tableName}'";
         var result = connection.QueryFirstOrDefault <string>(sql);
         Assert.NotNull(result);
         Assert.True(tableName.Equals(result, System.StringComparison.CurrentCultureIgnoreCase));
     }
 }
예제 #4
0
 public void Database_IsExists()
 {
     using (var connection = ConnectionUtil.CreateConnection(_masterDbConnectionString))
     {
         var databaseName = ConnectionUtil.GetDatabaseName();
         var sql          = $@"select name From dbo.sysdatabases where name= '{databaseName}'";
         var result       = connection.QueryFirstOrDefault <string>(sql);
         Assert.NotNull(result);
         Assert.True(databaseName.Equals(result, System.StringComparison.CurrentCultureIgnoreCase));
     }
 }
예제 #5
0
        private void DeleteAllData()
        {
            var conn = ConnectionUtil.GetConnectionString();

            using (var connection = ConnectionUtil.CreateConnection(conn))
            {
                connection.Execute($@"
TRUNCATE TABLE cap.published;
TRUNCATE TABLE cap.received;");
            }
        }
예제 #6
0
        private void CreateDatabase()
        {
            var masterConn   = ConnectionUtil.GetMasterConnectionString();
            var databaseName = ConnectionUtil.GetDatabaseName();

            using (var connection = ConnectionUtil.CreateConnection(masterConn))
            {
                connection.Execute($@"
IF NOT EXISTS (SELECT * FROM sysdatabases WHERE name = N'{databaseName}')
CREATE DATABASE [{databaseName}];");
            }
        }
예제 #7
0
        private void CreateDatabase()
        {
            var masterConn   = ConnectionUtil.GetMasterConnectionString();
            var databaseName = ConnectionUtil.GetDatabaseName();

            using (var connection = ConnectionUtil.CreateConnection(masterConn))
            {
                connection.Execute($@"
DROP DATABASE IF EXISTS {databaseName};
CREATE DATABASE {databaseName};");
            }
        }
예제 #8
0
        public void DatabaseTable_Received_IsExists()
        {
            using (var connection = ConnectionUtil.CreateConnection())
            {
                var sql    = @"
IF OBJECT_ID(N'[Cap].[Received]',N'U') IS NOT NULL
SELECT 'True'
ELSE
SELECT 'False'";
                var result = connection.QueryFirst <bool>(sql);
                Assert.Equal(true, result);
            }
        }
예제 #9
0
        public void DatabaseTable_IsExists(string tableName)
        {
            using (var connection = ConnectionUtil.CreateConnection())
            {
                var sql    = $@"
IF OBJECT_ID(N'{tableName}',N'U') IS NOT NULL
SELECT 'True'
ELSE
SELECT 'False'";
                var result = connection.QueryFirst <bool>(sql);
                Assert.True(result);
            }
        }
예제 #10
0
        private void InitializeDatabase()
        {
            var masterConn   = ConnectionUtil.GetMasterConnectionString();
            var databaseName = ConnectionUtil.GetDatabaseName();

            using (var connection = ConnectionUtil.CreateConnection(masterConn))
            {
                connection.Execute($@"
IF NOT EXISTS (SELECT * FROM sysdatabases WHERE name = N'{databaseName}')
CREATE DATABASE [{databaseName}];");
            }

            new SqlServerStorage(Logger, CapOptions, SqlSeverOptions, DiagnosticProcessorObserver).InitializeAsync().GetAwaiter().GetResult();
            SqlObjectInstalled = true;
        }
예제 #11
0
        public void Database_IsExists()
        {
            var master = ConnectionUtil.GetMasterConnectionString();

            using (var connection = ConnectionUtil.CreateConnection(master))
            {
                var databaseName = ConnectionUtil.GetDatabaseName();
                var sql          = $@"
IF EXISTS (SELECT * FROM sysdatabases WHERE name = N'{databaseName}')  
SELECT 'True'
ELSE
SELECT 'False'";
                var result       = connection.QueryFirst <bool>(sql);
                Assert.Equal(true, result);
            }
        }
        public async Task FetchNextMessageAsync_Test()
        {
            var sql   = "INSERT INTO [Cap].[Queue]([MessageId],[MessageType]) VALUES(@MessageId,@MessageType);";
            var queue = new CapQueue
            {
                MessageId   = 3333,
                MessageType = MessageType.Publish
            };

            using (var connection = ConnectionUtil.CreateConnection())
            {
                connection.Execute(sql, queue);
            }
            var fetchedMessage = await _storage.FetchNextMessageAsync();

            fetchedMessage.Dispose();
            Assert.NotNull(fetchedMessage);
            Assert.Equal(MessageType.Publish, fetchedMessage.MessageType);
            Assert.Equal(3333, fetchedMessage.MessageId);
        }