PrivateChatsRepositoryTests

This commit is contained in:
Artemy
2025-07-07 19:33:47 +07:00
parent b027b20fc3
commit baeafad007
6 changed files with 323 additions and 14 deletions
@@ -0,0 +1,7 @@
namespace Govor.API.Tests.UnitTests.Infrastructure.Validators;
[TestFixture]
public class ChatGroupValidatorTests
{
}
@@ -1,7 +1,77 @@
using AutoFixture;
using Govor.Core.Infrastructure.Validators;
using Govor.Core.Models;
namespace Govor.API.Tests.UnitTests.Infrastructure.Validators;
[TestFixture]
public class PrivateChatValidatorTests
{
private IObjectValidator<PrivateChat> _validator = new PrivateChatValidator();
private Fixture _fixture;
[SetUp]
public void SetUp()
{
_fixture = new Fixture();
_fixture.Behaviors
.OfType<ThrowingRecursionBehavior>()
.ToList()
.ForEach(b => _fixture.Behaviors.Remove(b));
_fixture.Behaviors.Add(new OmitOnRecursionBehavior());
}
[Test]
public void Validate_PrivateChat_Valid()
{
// Arrange
var privateChat = _fixture.Create<PrivateChat>();
// Act & Assert
Assert.DoesNotThrow(() => _validator.Validate(privateChat));
Assert.That(_validator.TryValidate(privateChat), Is.True);
}
[Test]
public void Validate_When_PrivateChatIsNull_Invalid()
{
// Act & Assert
Assert.Throws<InvalidObjectException<PrivateChat>>(() => _validator.Validate(default));
Assert.That(_validator.TryValidate(default), Is.False);
}
[Test]
public void Validate_When_PrivateChatIdIsEmpty_Invalid()
{
// Arrange
var privateChat = _fixture.Create<PrivateChat>();
privateChat.Id = Guid.Empty;
// Act & Assert
Assert.Throws<InvalidObjectException<PrivateChat>>(() => _validator.Validate(privateChat));
Assert.That(_validator.TryValidate(privateChat), Is.False);
}
[Test]
public void Validate_When_UserAIdIsEmpty_Invalid()
{
// Arrange
var privateChat = _fixture.Create<PrivateChat>();
privateChat.UserAId = Guid.Empty;
// Act & Assert
Assert.Throws<InvalidObjectException<PrivateChat>>(() => _validator.Validate(privateChat));
Assert.That(_validator.TryValidate(privateChat), Is.False);
}
[Test]
public void Validate_When_UserBIdIsEmpty_Invalid()
{
// Arrange
var privateChat = _fixture.Create<PrivateChat>();
privateChat.UserBId = Guid.Empty;
// Act & Assert
Assert.Throws<InvalidObjectException<PrivateChat>>(() => _validator.Validate(privateChat));
Assert.That(_validator.TryValidate(privateChat), Is.False);
}
}
@@ -69,7 +69,7 @@ public class MessageServiceTests
var result = await _messageService.SendMessageAsync(sendMessageParams);
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.IsSuccess, Is.EqualTo(true));
Assert.That(result.IsSuccess, Is.True);
Assert.That(result.Exception, Is.Null);
_mockMessagesRepo.Verify(r => r.AddAsync(It.Is<Message>(m =>
@@ -103,7 +103,7 @@ public class MessageServiceTests
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.IsSuccess, Is.EqualTo(true));
Assert.That(result.IsSuccess, Is.True);
Assert.That(result.Exception, Is.Null);
_mockMessagesRepo.Verify(r => r.AddAsync(It.Is<Message>(m =>
m.RecipientId == groupId &&
@@ -132,7 +132,7 @@ public class MessageServiceTests
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.IsSuccess, Is.EqualTo(false));
Assert.That(result.IsSuccess, Is.False);
Assert.That(result.Exception, Is.Not.Null);
Assert.That(result.Exception,Is.TypeOf<KeyNotFoundException>());
Assert.That(result.Message, Is.Null);
@@ -162,7 +162,7 @@ public class MessageServiceTests
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.IsSuccess, Is.EqualTo(false));
Assert.That(result.IsSuccess, Is.False);
Assert.That(result.Exception, Is.Not.Null);
Assert.That(result.Exception,Is.TypeOf<FriendshipException>());
Assert.That(result.Message, Is.Null);
@@ -197,7 +197,7 @@ public class MessageServiceTests
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.IsSuccess, Is.EqualTo(true));
Assert.That(result.IsSuccess, Is.True);
Assert.That(result.OriginalMessage, Is.Not.Null);
Assert.That(messageId, Is.EqualTo(result.OriginalMessage!.Id));
@@ -225,7 +225,7 @@ public class MessageServiceTests
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.IsSuccess, Is.EqualTo(false));
Assert.That(result.IsSuccess, Is.False);
Assert.That(result.Exception, Is.Not.Null);
Assert.That(result.Exception,Is.TypeOf<NotFoundByKeyException<Guid>>());
Assert.That(result.OriginalMessage, Is.Null);
@@ -248,7 +248,7 @@ public class MessageServiceTests
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.IsSuccess, Is.EqualTo(false));
Assert.That(result.IsSuccess, Is.False);
Assert.That(result.Exception, Is.Not.Null);
Assert.That(result.Exception,Is.TypeOf<UnauthorizedAccessException>());
Assert.That(result.OriginalMessage, Is.Null);
@@ -272,7 +272,7 @@ public class MessageServiceTests
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.IsSuccess, Is.EqualTo(true));
Assert.That(result.IsSuccess, Is.True);
Assert.That(result.OriginalMessage, Is.Not.Null);
Assert.That(messageId, Is.EqualTo(result.OriginalMessage!.Id));
_mockMessagesRepo.Verify(r => r.RemoveAsync(messageId), Times.Once);
@@ -294,7 +294,7 @@ public class MessageServiceTests
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.IsSuccess, Is.EqualTo(false));
Assert.That(result.IsSuccess, Is.False);
Assert.That(result.Exception, Is.Not.Null);
Assert.That(result.Exception,Is.TypeOf<NotFoundByKeyException<Guid>>());
Assert.That(result.OriginalMessage, Is.Null);
@@ -317,7 +317,7 @@ public class MessageServiceTests
// Assert
Assert.That(result, Is.Not.Null);
Assert.That(result.IsSuccess, Is.EqualTo(false));
Assert.That(result.IsSuccess, Is.False);
Assert.That(result.Exception, Is.Not.Null);
Assert.That(result.Exception,Is.TypeOf<UnauthorizedAccessException>());
Assert.That(result.OriginalMessage, Is.Null);