From 2790cf679d05283bf441935b1e771a78bc70e9a2 Mon Sep 17 00:00:00 2001 From: yangxiaodong Date: Wed, 19 Jul 2017 18:39:24 +0800 Subject: [PATCH] update --- .../DatabaseTestHost.cs | 5 +- .../SqlServerStorageConnectionTest.cs | 244 +++++++++--------- 2 files changed, 126 insertions(+), 123 deletions(-) diff --git a/test/DotNetCore.CAP.SqlServer.Test/DatabaseTestHost.cs b/test/DotNetCore.CAP.SqlServer.Test/DatabaseTestHost.cs index b32fd74..afb7c96 100644 --- a/test/DotNetCore.CAP.SqlServer.Test/DatabaseTestHost.cs +++ b/test/DotNetCore.CAP.SqlServer.Test/DatabaseTestHost.cs @@ -17,7 +17,10 @@ namespace DotNetCore.CAP.SqlServer.Test { if (!_sqlObjectInstalled) { - InitializeDatabase(); + lock (this) + { + InitializeDatabase(); + } } } } diff --git a/test/DotNetCore.CAP.SqlServer.Test/SqlServerStorageConnectionTest.cs b/test/DotNetCore.CAP.SqlServer.Test/SqlServerStorageConnectionTest.cs index 2ed752f..167f66e 100644 --- a/test/DotNetCore.CAP.SqlServer.Test/SqlServerStorageConnectionTest.cs +++ b/test/DotNetCore.CAP.SqlServer.Test/SqlServerStorageConnectionTest.cs @@ -1,135 +1,135 @@ -//using System; -//using System.Collections.Generic; -//using System.Text; -//using System.Threading.Tasks; -//using Dapper; -//using DotNetCore.CAP.Infrastructure; -//using DotNetCore.CAP.Models; -//using Xunit; +using System; +using System.Collections.Generic; +using System.Text; +using System.Threading.Tasks; +using Dapper; +using DotNetCore.CAP.Infrastructure; +using DotNetCore.CAP.Models; +using Xunit; -//namespace DotNetCore.CAP.SqlServer.Test -//{ -// public class SqlServerStorageConnectionTest : DatabaseTestHost -// { -// private SqlServerStorageConnection _storage; +namespace DotNetCore.CAP.SqlServer.Test +{ + public class SqlServerStorageConnectionTest : DatabaseTestHost + { + private SqlServerStorageConnection _storage; + + public SqlServerStorageConnectionTest() + { + var options = GetService(); + _storage = new SqlServerStorageConnection(options); + } -// public SqlServerStorageConnectionTest() -// { -// var options = GetService(); -// _storage = new SqlServerStorageConnection(options); -// } + [Fact] + public async Task GetPublishedMessageAsync_Test() + { + var sql = "INSERT INTO [Cap].[Published]([Name],[Content],[Retries],[Added],[ExpiresAt],[StatusName]) OUTPUT INSERTED.Id VALUES(@Name,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; + var publishMessage = new CapPublishedMessage + { + Name = "SqlServerStorageConnectionTest", + Content = "", + StatusName = StatusName.Scheduled + }; + var insertedId = default(int); + using (var connection = ConnectionUtil.CreateConnection()) + { + insertedId = connection.QueryFirst(sql, publishMessage); + } + var message = await _storage.GetPublishedMessageAsync(insertedId); + Assert.NotNull(message); + Assert.Equal("SqlServerStorageConnectionTest", message.Name); + Assert.Equal(StatusName.Scheduled, message.StatusName); + } -// [Fact] -// public async Task GetPublishedMessageAsync_Test() -// { -// var sql = "INSERT INTO [Cap].[Published]([Name],[Content],[Retries],[Added],[ExpiresAt],[StatusName]) OUTPUT INSERTED.Id VALUES(@Name,@Content,@Retries,@Added,@ExpiresAt,@StatusName);"; -// var publishMessage = new CapPublishedMessage -// { -// Name = "SqlServerStorageConnectionTest", -// Content = "", -// StatusName = StatusName.Scheduled -// }; -// var insertedId = default(int); -// using (var connection = ConnectionUtil.CreateConnection()) -// { -// insertedId = connection.QueryFirst(sql, publishMessage); -// } -// var message = await _storage.GetPublishedMessageAsync(insertedId); -// Assert.NotNull(message); -// Assert.Equal("SqlServerStorageConnectionTest", message.Name); -// Assert.Equal(StatusName.Scheduled, message.StatusName); -// } + [Fact] + 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); + } -// [Fact] -// 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); -// } + [Fact] + public async Task StoreReceivedMessageAsync_Test() + { + var receivedMessage = new CapReceivedMessage + { + Name = "SqlServerStorageConnectionTest", + Content = "", + Group = "mygroup", + StatusName = StatusName.Scheduled + }; -// [Fact] -// public async Task StoreReceivedMessageAsync_Test() -// { -// var receivedMessage = new CapReceivedMessage -// { -// Name = "SqlServerStorageConnectionTest", -// Content = "", -// Group = "mygroup", -// StatusName = StatusName.Scheduled -// }; + Exception exception = null; + try + { + await _storage.StoreReceivedMessageAsync(receivedMessage); + } + catch (Exception ex) + { + exception = ex; + } + Assert.Null(exception); + } -// Exception exception = null; -// try -// { -// await _storage.StoreReceivedMessageAsync(receivedMessage); -// } -// catch (Exception ex) -// { -// exception = ex; -// } -// Assert.Null(exception); -// } + [Fact] + public async Task GetReceivedMessageAsync_Test() + { -// [Fact] -// 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(sql, receivedMessage); + } -// 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(sql, receivedMessage); -// } + var message = await _storage.GetReceivedMessageAsync(insertedId); -// 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); + } -// Assert.NotNull(message); -// Assert.Equal(StatusName.Scheduled, message.StatusName); -// Assert.Equal("SqlServerStorageConnectionTest", message.Name); -// Assert.Equal("mygroup", message.Group); -// } + [Fact] + public async Task GetNextReceviedMessageToBeEnqueuedAsync_Test() + { + var receivedMessage = new CapReceivedMessage + { + Name = "SqlServerStorageConnectionTest", + Content = "", + Group = "mygroup", + StatusName = StatusName.Scheduled + }; + await _storage.StoreReceivedMessageAsync(receivedMessage); -// [Fact] -// public async Task GetNextReceviedMessageToBeEnqueuedAsync_Test() -// { -// var receivedMessage = new CapReceivedMessage -// { -// Name = "SqlServerStorageConnectionTest", -// Content = "", -// Group = "mygroup", -// StatusName = StatusName.Scheduled -// }; -// await _storage.StoreReceivedMessageAsync(receivedMessage); + var message = await _storage.GetNextReceviedMessageToBeEnqueuedAsync(); -// var message = await _storage.GetNextReceviedMessageToBeEnqueuedAsync(); + Assert.NotNull(message); + Assert.Equal(StatusName.Scheduled, message.StatusName); + Assert.Equal("SqlServerStorageConnectionTest", message.Name); + Assert.Equal("mygroup", message.Group); + } -// Assert.NotNull(message); -// Assert.Equal(StatusName.Scheduled, message.StatusName); -// Assert.Equal("SqlServerStorageConnectionTest", message.Name); -// Assert.Equal("mygroup", message.Group); -// } - -// } -//} + } +}