mirror of
https://github.com/Govor-team/Govor.git
synced 2026-07-21 19:54:55 +00:00
MessageRepositoryTests
+ Given_ValidSenderId_When_FindBySenderIdAsync_Then_ReturnMessages + Given_InvalidSenderId_When_FindBySenderId_Should_Throw_NotFoundByKeyException
This commit is contained in:
@@ -58,6 +58,7 @@ public class MessagesRepositoryTests
|
|||||||
[Test]
|
[Test]
|
||||||
public void Given_EmptySetDb_When_GetAllMessages_Should_Throw_NotFoundException()
|
public void Given_EmptySetDb_When_GetAllMessages_Should_Throw_NotFoundException()
|
||||||
{
|
{
|
||||||
|
// Arrange
|
||||||
using var context = new GovorDbContext(_options);
|
using var context = new GovorDbContext(_options);
|
||||||
var messagesRepository = new MessagesRepository(context, _messageValidator);
|
var messagesRepository = new MessagesRepository(context, _messageValidator);
|
||||||
// Act & Assert
|
// Act & Assert
|
||||||
@@ -67,6 +68,7 @@ public class MessagesRepositoryTests
|
|||||||
[Test]
|
[Test]
|
||||||
public async Task Given_ValidMessageId_When_FindMessageById_Then_ReturnMessage()
|
public async Task Given_ValidMessageId_When_FindMessageById_Then_ReturnMessage()
|
||||||
{
|
{
|
||||||
|
// Arrange
|
||||||
var messages = _fixture.CreateMany<Message>(10);
|
var messages = _fixture.CreateMany<Message>(10);
|
||||||
var id = messages.First().Id;
|
var id = messages.First().Id;
|
||||||
|
|
||||||
@@ -76,8 +78,10 @@ public class MessagesRepositoryTests
|
|||||||
context.Messages.AddRange(messages);
|
context.Messages.AddRange(messages);
|
||||||
await context.SaveChangesAsync();
|
await context.SaveChangesAsync();
|
||||||
|
|
||||||
|
// Act
|
||||||
var result = await messagesRepository.FindByIdAsync(id);
|
var result = await messagesRepository.FindByIdAsync(id);
|
||||||
|
|
||||||
|
// Assert
|
||||||
Assert.That(result, Is.Not.Null);
|
Assert.That(result, Is.Not.Null);
|
||||||
Assert.That(result, Is.EqualTo(messages.First()));
|
Assert.That(result, Is.EqualTo(messages.First()));
|
||||||
}
|
}
|
||||||
@@ -85,9 +89,54 @@ public class MessagesRepositoryTests
|
|||||||
[Test]
|
[Test]
|
||||||
public async Task Given_InvalidMessageId_When_FindById_Should_Throw_NotFoundByKeyException()
|
public async Task Given_InvalidMessageId_When_FindById_Should_Throw_NotFoundByKeyException()
|
||||||
{
|
{
|
||||||
|
// Arrange
|
||||||
await using var context = new GovorDbContext(_options);
|
await using var context = new GovorDbContext(_options);
|
||||||
var messagesRepository = new MessagesRepository(context, _messageValidator);
|
var messagesRepository = new MessagesRepository(context, _messageValidator);
|
||||||
|
|
||||||
|
// Act & Assert
|
||||||
Assert.ThrowsAsync<NotFoundByKeyException<Guid>>(async () => await messagesRepository.FindByIdAsync(_fixture.Create<Guid>()));
|
Assert.ThrowsAsync<NotFoundByKeyException<Guid>>(async () => await messagesRepository.FindByIdAsync(_fixture.Create<Guid>()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public async Task Given_ValidSenderId_When_FindBySenderIdAsync_Then_ReturnMessages()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
var messages = _fixture.CreateMany<Message>(10).ToList();
|
||||||
|
var senderId =_fixture.Create<Guid>();
|
||||||
|
|
||||||
|
foreach (var message in messages)
|
||||||
|
{
|
||||||
|
message.SenderId = senderId;
|
||||||
|
}
|
||||||
|
|
||||||
|
await using var context = new GovorDbContext(_options);
|
||||||
|
var messagesRepository = new MessagesRepository(context, _messageValidator);
|
||||||
|
|
||||||
|
context.Messages.AddRange(messages);
|
||||||
|
await context.SaveChangesAsync();
|
||||||
|
|
||||||
|
// Act
|
||||||
|
var results = await messagesRepository.FindBySenderIdAsync(senderId);
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
Assert.That(results, Is.Not.Null);
|
||||||
|
Assert.That(results, Is.EquivalentTo(messages));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public void Given_InvalidSenderId_When_FindBySenderId_Should_Throw_NotFoundByKeyException()
|
||||||
|
{
|
||||||
|
// Arrange
|
||||||
|
using var context = new GovorDbContext(_options);
|
||||||
|
var messagesRepository = new MessagesRepository(context, _messageValidator);
|
||||||
|
|
||||||
|
// Act & Assert
|
||||||
|
Assert.ThrowsAsync<NotFoundByKeyException<Guid>>(async () => await messagesRepository.FindBySenderIdAsync(_fixture.Create<Guid>()));
|
||||||
|
}
|
||||||
|
|
||||||
|
[Test]
|
||||||
|
public async Task Given_ValidReceiverId_When_FindByReceiverIdAsync_Then_ReturnMessages()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -35,9 +35,13 @@ public class MessagesRepository : IMessagesRepository
|
|||||||
?? throw new NotFoundByKeyException<Guid>(messageId, "Message with given id does not exist");
|
?? throw new NotFoundByKeyException<Guid>(messageId, "Message with given id does not exist");
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<List<Message>> FindBySenderIdAsync(Guid senderId)
|
public async Task<List<Message>> FindBySenderIdAsync(Guid senderId)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
return await _context.Messages
|
||||||
|
.AsNoTracking()
|
||||||
|
.Include(m => m.ReplyToMessage)
|
||||||
|
.Where(m => m.SenderId == senderId)
|
||||||
|
.ToListOrThrowIfEmpty(new NotFoundByKeyException<Guid>(senderId, "Messages with given sender id do not exist"));
|
||||||
}
|
}
|
||||||
|
|
||||||
public Task<List<Message>> FindByReceiverIdAsync(Guid receiverId)
|
public Task<List<Message>> FindByReceiverIdAsync(Guid receiverId)
|
||||||
|
|||||||
Reference in New Issue
Block a user