|
@@ -1,175 +1,168 @@ |
|
|
using System; |
|
|
|
|
|
using System.Linq; |
|
|
|
|
|
using DotNetCore.CAP.Infrastructure; |
|
|
|
|
|
using DotNetCore.CAP.Models; |
|
|
|
|
|
using Microsoft.Extensions.DependencyInjection; |
|
|
|
|
|
using Xunit; |
|
|
|
|
|
|
|
|
|
|
|
namespace DotNetCore.CAP.EntityFrameworkCore.Test |
|
|
|
|
|
|
|
|
namespace DotNetCore.CAP.EntityFrameworkCore.Test |
|
|
{ |
|
|
{ |
|
|
public class EFMessageStoreTest : DatabaseTestHost |
|
|
|
|
|
{ |
|
|
|
|
|
[Fact] |
|
|
|
|
|
public void CanCreateSentMessageUsingEF() |
|
|
|
|
|
{ |
|
|
|
|
|
using (var db = CreateContext()) |
|
|
|
|
|
{ |
|
|
|
|
|
var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
var message = new CapSentMessage |
|
|
|
|
|
{ |
|
|
|
|
|
Id = guid, |
|
|
|
|
|
Content = "this is message body", |
|
|
|
|
|
StatusName = StatusName.Enqueued |
|
|
|
|
|
}; |
|
|
|
|
|
db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
Assert.True(db.CapSentMessages.Any(u => u.Id == guid)); |
|
|
|
|
|
Assert.NotNull(db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Fact] |
|
|
|
|
|
public void CanUpdateSentMessageUsingEF() |
|
|
|
|
|
{ |
|
|
|
|
|
using (var db = CreateContext()) |
|
|
|
|
|
{ |
|
|
|
|
|
var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
var message = new CapSentMessage |
|
|
|
|
|
{ |
|
|
|
|
|
Id = guid, |
|
|
|
|
|
Content = "this is message body", |
|
|
|
|
|
StatusName = StatusName.Enqueued |
|
|
|
|
|
}; |
|
|
|
|
|
db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
var selectedMessage = db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
Assert.NotNull(selectedMessage); |
|
|
|
|
|
|
|
|
|
|
|
selectedMessage.StatusName = StatusName.Succeeded; |
|
|
|
|
|
selectedMessage.Content = "Test"; |
|
|
|
|
|
db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
selectedMessage = db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Succeeded); |
|
|
|
|
|
Assert.NotNull(selectedMessage); |
|
|
|
|
|
Assert.True(selectedMessage.Content == "Test"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Fact] |
|
|
|
|
|
public void CanRemoveSentMessageUsingEF() |
|
|
|
|
|
{ |
|
|
|
|
|
using (var db = CreateContext()) |
|
|
|
|
|
{ |
|
|
|
|
|
var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
var message = new CapSentMessage |
|
|
|
|
|
{ |
|
|
|
|
|
Id = guid, |
|
|
|
|
|
Content = "this is message body", |
|
|
|
|
|
StatusName = StatusName.Enqueued |
|
|
|
|
|
}; |
|
|
|
|
|
db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
var selectedMessage = db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
Assert.NotNull(selectedMessage); |
|
|
|
|
|
|
|
|
|
|
|
db.CapSentMessages.Remove(selectedMessage); |
|
|
|
|
|
db.SaveChanges(); |
|
|
|
|
|
selectedMessage = db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
Assert.Null(selectedMessage); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Fact] |
|
|
|
|
|
public void CanCreateReceivedMessageUsingEF() |
|
|
|
|
|
{ |
|
|
|
|
|
using (var db = CreateContext()) |
|
|
|
|
|
{ |
|
|
|
|
|
var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
var message = new CapReceivedMessage |
|
|
|
|
|
{ |
|
|
|
|
|
Id = guid, |
|
|
|
|
|
Content = "this is message body", |
|
|
|
|
|
StatusName = StatusName.Enqueued |
|
|
|
|
|
}; |
|
|
|
|
|
db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
Assert.True(db.CapReceivedMessages.Any(u => u.Id == guid)); |
|
|
|
|
|
Assert.NotNull(db.CapReceivedMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued)); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Fact] |
|
|
|
|
|
public void CanUpdateReceivedMessageUsingEF() |
|
|
|
|
|
{ |
|
|
|
|
|
using (var db = CreateContext()) |
|
|
|
|
|
{ |
|
|
|
|
|
var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
var message = new CapReceivedMessage |
|
|
|
|
|
{ |
|
|
|
|
|
Id = guid, |
|
|
|
|
|
Content = "this is message body", |
|
|
|
|
|
StatusName = StatusName.Enqueued |
|
|
|
|
|
}; |
|
|
|
|
|
db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
var selectedMessage = db.CapReceivedMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
Assert.NotNull(selectedMessage); |
|
|
|
|
|
|
|
|
|
|
|
selectedMessage.StatusName = StatusName.Succeeded; |
|
|
|
|
|
selectedMessage.Content = "Test"; |
|
|
|
|
|
db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
selectedMessage = db.CapReceivedMessages.FirstOrDefault(u => u.StatusName == StatusName.Succeeded); |
|
|
|
|
|
Assert.NotNull(selectedMessage); |
|
|
|
|
|
Assert.True(selectedMessage.Content == "Test"); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
[Fact] |
|
|
|
|
|
public void CanRemoveReceivedMessageUsingEF() |
|
|
|
|
|
{ |
|
|
|
|
|
using (var db = CreateContext()) |
|
|
|
|
|
{ |
|
|
|
|
|
var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
var message = new CapReceivedMessage |
|
|
|
|
|
{ |
|
|
|
|
|
Id = guid, |
|
|
|
|
|
Content = "this is message body", |
|
|
|
|
|
StatusName = StatusName.Enqueued |
|
|
|
|
|
}; |
|
|
|
|
|
db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
var selectedMessage = db.CapReceivedMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
Assert.NotNull(selectedMessage); |
|
|
|
|
|
|
|
|
|
|
|
db.CapReceivedMessages.Remove(selectedMessage); |
|
|
|
|
|
db.SaveChanges(); |
|
|
|
|
|
selectedMessage = db.CapReceivedMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
Assert.Null(selectedMessage); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public TestDbContext CreateContext(bool delete = false) |
|
|
|
|
|
{ |
|
|
|
|
|
var db = Provider.GetRequiredService<TestDbContext>(); |
|
|
|
|
|
if (delete) |
|
|
|
|
|
{ |
|
|
|
|
|
db.Database.EnsureDeleted(); |
|
|
|
|
|
} |
|
|
|
|
|
db.Database.EnsureCreated(); |
|
|
|
|
|
return db; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//public class EFMessageStoreTest : DatabaseTestHost |
|
|
|
|
|
//{ |
|
|
|
|
|
// [Fact] |
|
|
|
|
|
// public void CanCreateSentMessageUsingEF() |
|
|
|
|
|
// { |
|
|
|
|
|
// using (var db = CreateContext()) |
|
|
|
|
|
// { |
|
|
|
|
|
// var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
// var message = new CapPublishedMessage |
|
|
|
|
|
// { |
|
|
|
|
|
// Id = guid, |
|
|
|
|
|
// Content = "this is message body", |
|
|
|
|
|
// StatusName = StatusName.Enqueued |
|
|
|
|
|
// }; |
|
|
|
|
|
// db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
// db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
// Assert.True(db.CapSentMessages.Any(u => u.Id == guid)); |
|
|
|
|
|
// Assert.NotNull(db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued)); |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
// [Fact] |
|
|
|
|
|
// public void CanUpdateSentMessageUsingEF() |
|
|
|
|
|
// { |
|
|
|
|
|
// using (var db = CreateContext()) |
|
|
|
|
|
// { |
|
|
|
|
|
// var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
// var message = new CapPublishedMessage |
|
|
|
|
|
// { |
|
|
|
|
|
// Id = guid, |
|
|
|
|
|
// Content = "this is message body", |
|
|
|
|
|
// StatusName = StatusName.Enqueued |
|
|
|
|
|
// }; |
|
|
|
|
|
// db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
// db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
// var selectedMessage = db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
// Assert.NotNull(selectedMessage); |
|
|
|
|
|
|
|
|
|
|
|
// selectedMessage.StatusName = StatusName.Succeeded; |
|
|
|
|
|
// selectedMessage.Content = "Test"; |
|
|
|
|
|
// db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
// selectedMessage = db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Succeeded); |
|
|
|
|
|
// Assert.NotNull(selectedMessage); |
|
|
|
|
|
// Assert.True(selectedMessage.Content == "Test"); |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
// [Fact] |
|
|
|
|
|
// public void CanRemoveSentMessageUsingEF() |
|
|
|
|
|
// { |
|
|
|
|
|
// using (var db = CreateContext()) |
|
|
|
|
|
// { |
|
|
|
|
|
// var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
// var message = new CapPublishedMessage |
|
|
|
|
|
// { |
|
|
|
|
|
// Id = guid, |
|
|
|
|
|
// Content = "this is message body", |
|
|
|
|
|
// StatusName = StatusName.Enqueued |
|
|
|
|
|
// }; |
|
|
|
|
|
// db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
// db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
// var selectedMessage = db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
// Assert.NotNull(selectedMessage); |
|
|
|
|
|
|
|
|
|
|
|
// db.CapSentMessages.Remove(selectedMessage); |
|
|
|
|
|
// db.SaveChanges(); |
|
|
|
|
|
// selectedMessage = db.CapSentMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
// Assert.Null(selectedMessage); |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
// [Fact] |
|
|
|
|
|
// public void CanCreateReceivedMessageUsingEF() |
|
|
|
|
|
// { |
|
|
|
|
|
// using (var db = CreateContext()) |
|
|
|
|
|
// { |
|
|
|
|
|
// var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
// var message = new CapReceivedMessage |
|
|
|
|
|
// { |
|
|
|
|
|
// Id = guid, |
|
|
|
|
|
// Content = "this is message body", |
|
|
|
|
|
// StatusName = StatusName.Enqueued |
|
|
|
|
|
// }; |
|
|
|
|
|
// db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
// db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
// Assert.True(db.CapReceivedMessages.Any(u => u.Id == guid)); |
|
|
|
|
|
// Assert.NotNull(db.CapReceivedMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued)); |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
// [Fact] |
|
|
|
|
|
// public void CanUpdateReceivedMessageUsingEF() |
|
|
|
|
|
// { |
|
|
|
|
|
// using (var db = CreateContext()) |
|
|
|
|
|
// { |
|
|
|
|
|
// var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
// var message = new CapReceivedMessage |
|
|
|
|
|
// { |
|
|
|
|
|
// Id = guid, |
|
|
|
|
|
// Content = "this is message body", |
|
|
|
|
|
// StatusName = StatusName.Enqueued |
|
|
|
|
|
// }; |
|
|
|
|
|
// db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
// db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
// var selectedMessage = db.CapReceivedMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
// Assert.NotNull(selectedMessage); |
|
|
|
|
|
|
|
|
|
|
|
// selectedMessage.StatusName = StatusName.Succeeded; |
|
|
|
|
|
// selectedMessage.Content = "Test"; |
|
|
|
|
|
// db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
// selectedMessage = db.CapReceivedMessages.FirstOrDefault(u => u.StatusName == StatusName.Succeeded); |
|
|
|
|
|
// Assert.NotNull(selectedMessage); |
|
|
|
|
|
// Assert.True(selectedMessage.Content == "Test"); |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
// [Fact] |
|
|
|
|
|
// public void CanRemoveReceivedMessageUsingEF() |
|
|
|
|
|
// { |
|
|
|
|
|
// using (var db = CreateContext()) |
|
|
|
|
|
// { |
|
|
|
|
|
// var guid = Guid.NewGuid().ToString(); |
|
|
|
|
|
// var message = new CapReceivedMessage |
|
|
|
|
|
// { |
|
|
|
|
|
// Id = guid, |
|
|
|
|
|
// Content = "this is message body", |
|
|
|
|
|
// StatusName = StatusName.Enqueued |
|
|
|
|
|
// }; |
|
|
|
|
|
// db.Attach(message).State = Microsoft.EntityFrameworkCore.EntityState.Added; |
|
|
|
|
|
|
|
|
|
|
|
// db.SaveChanges(); |
|
|
|
|
|
|
|
|
|
|
|
// var selectedMessage = db.CapReceivedMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
// Assert.NotNull(selectedMessage); |
|
|
|
|
|
|
|
|
|
|
|
// db.CapReceivedMessages.Remove(selectedMessage); |
|
|
|
|
|
// db.SaveChanges(); |
|
|
|
|
|
// selectedMessage = db.CapReceivedMessages.FirstOrDefault(u => u.StatusName == StatusName.Enqueued); |
|
|
|
|
|
// Assert.Null(selectedMessage); |
|
|
|
|
|
// } |
|
|
|
|
|
// } |
|
|
|
|
|
|
|
|
|
|
|
// public TestDbContext CreateContext(bool delete = false) |
|
|
|
|
|
// { |
|
|
|
|
|
// var db = Provider.GetRequiredService<TestDbContext>(); |
|
|
|
|
|
// if (delete) |
|
|
|
|
|
// { |
|
|
|
|
|
// db.Database.EnsureDeleted(); |
|
|
|
|
|
// } |
|
|
|
|
|
// db.Database.EnsureCreated(); |
|
|
|
|
|
// return db; |
|
|
|
|
|
// } |
|
|
|
|
|
//} |
|
|
} |
|
|
} |