| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- using Diligent.WebAPI.Business.Interfaces;
- using Diligent.WebAPI.Data.Entities;
- using Diligent.WebAPI.Data.HelperModels;
- using Diligent.WebAPI.Host.Exceptions;
- using Diligent.WebAPI.Host.Mediator.Chat.Handlers;
- using Diligent.WebAPI.Host.Mediator.Rooms.Commands;
- using Diligent.WebAPI.Host.Mediator.Rooms.Queries;
- using Microsoft.AspNetCore.Http;
- using Moq;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
-
- namespace Tests
- {
- [TestFixture]
- public class RoomTests
- {
- private Mock<IRoomRepository> _roomRepositoryMock;
- private readonly List<Room> _rooms = new()
- {
- new Room
- {
- Id = "123",
- CreatedBy = "123",
- Customers = new List<CustomerDTO>
- {
- new CustomerDTO
- {
- CustomerId = "1",
- DateOfEnteringRoom = new DateTime(2021, 2, 3)
- },
- new CustomerDTO
- {
- CustomerId = "2",
- DateOfEnteringRoom = DateTime.UtcNow
- }
- },
- CreatedAtUtc = DateTime.UtcNow,
- IsOneToOne = true,
- Messages = new List<Message>
- {
- new Message
- {
- Id = "1",
- Content = "AA",
- SenderId = "1",
- Username = "username1",
- CreatedAtUtc = DateTime.Now,
- },
- new Message
- {
- Id = "2",
- Content = "BB",
- SenderId = "2",
- Username = "username2",
- CreatedAtUtc = DateTime.Now,
- }
- },
- Name = "room1"
- },
- new Room
- {
- Id = "1234",
- CreatedBy = "1234",
- Customers = new List<CustomerDTO>()
- {
- new CustomerDTO
- {
- CustomerId = "3",
- DateOfEnteringRoom = DateTime.Now
- },
- new CustomerDTO
- {
- CustomerId = "4",
- DateOfEnteringRoom = DateTime.Now
- }
- },
- CreatedAtUtc = DateTime.Now,
- IsOneToOne = true,
- Messages = new List<Message>
- {
- new Message
- {
- Id = "3",
- Content = "CC",
- SenderId = "3",
- Username = "username1",
- CreatedAtUtc = new DateTime(2021, 2, 3)
- },
- new Message
- {
- Id = "4",
- Content = "DD",
- SenderId = "4",
- Username = "username2",
- CreatedAtUtc = new DateTime(2021, 2, 3)
- }
- },
- Name = "room2"
- },
- };
-
- [SetUp]
-
- public void SetUp()
- {
- _roomRepositoryMock = new Mock<IRoomRepository>();
- }
-
- [Test]
- public async Task RemoveUserFromGroup_ObjectIsNull_ThrowsNotFoundException()
- {
- var command = new RemoveUserFromGroupCommand(null, null);
- var handler = new RemoveUserFromGroupHandler(_roomRepositoryMock.Object);
-
- Assert.That(async () => await handler.Handle(command, new CancellationToken()), Throws.Exception.TypeOf<NotFoundException>());
- }
-
- [Test]
- public async Task RemoveUserFromGroup_UserConnectionIsNull_ThrowsNotFoundException()
- {
- _roomRepositoryMock.Setup(x => x.GetByIdAsync(It.IsAny<string>()))
- .ReturnsAsync(new Room
- {
- Name = "Room1",
- Customers = new List<CustomerDTO>
- {
- new CustomerDTO { CustomerId = "user", DateOfEnteringRoom = DateTime.Now}
- },
- CreatedBy = "User1"
- });
- var command = new RemoveUserFromGroupCommand("room1", "user1");
- var handler = new RemoveUserFromGroupHandler(_roomRepositoryMock.Object);
-
- Assert.That(async () => await handler.Handle(command, new CancellationToken()), Throws.Exception.TypeOf<NotFoundException>());
-
- }
-
-
- [Test]
- public async Task RemoveUserFromGroup_UserConnectionIsNotNull_ObjectIsNotNull()
- {
- var userConnection = new CustomerDTO { CustomerId = "user1", DateOfEnteringRoom = DateTime.Now };
-
- var room = new Room
- {
- Name = "Room1",
- Customers = new List<CustomerDTO>
- {
- userConnection
- },
- CreatedBy = "User1"
- };
-
- _roomRepositoryMock.Setup(x => x.GetByIdAsync(It.IsAny<string>()))
- .ReturnsAsync(room);
-
- _roomRepositoryMock.Setup(x => x.LeaveChatRoom(It.IsAny<Room>(), It.IsAny<CustomerDTO>()));
-
- var command = new RemoveUserFromGroupCommand("room1", "user1");
- var handler = new RemoveUserFromGroupHandler(_roomRepositoryMock.Object);
-
- var result = await handler.Handle(command, new CancellationToken());
-
- _roomRepositoryMock.Verify(mock => mock.LeaveChatRoom(room, userConnection));
-
- }
-
- [Test]
- public async Task GetAllRoomsWithFilteredMessages_CustomerIsNull_ReturnsEmptyList()
- {
- _roomRepositoryMock.Setup(x => x.GetAsync()).Returns(Task.FromResult(_rooms));
- var query = new GetAllRoomsWithFilteredMessagesQuery("5");
- var handler = new GetAllRoomsWithFilteredMessagesHandler(_roomRepositoryMock.Object);
-
- var result = await handler.Handle(query, new CancellationToken());
-
- Assert.That(result[0].Messages.Count(), Is.EqualTo(0));
- }
-
- [Test]
- public async Task GetAllRoomsWithFilteredMessages_CustomerIsNotNull_ReturnsEmptyListWithMessage()
- {
- _roomRepositoryMock.Setup(x => x.GetAsync()).Returns(Task.FromResult(_rooms));
- var query = new GetAllRoomsWithFilteredMessagesQuery("3");
- var handler = new GetAllRoomsWithFilteredMessagesHandler(_roomRepositoryMock.Object);
-
- var result = await handler.Handle(query, new CancellationToken());
-
- Assert.That(result[0].Messages.Count(), Is.EqualTo(0));
- }
-
- [Test]
- public async Task GetAllRoomsWithFilteredMessages_CustomerIsNotNull_Messages()
- {
- _roomRepositoryMock.Setup(x => x.GetAsync()).Returns(Task.FromResult(_rooms));
- var query = new GetAllRoomsWithFilteredMessagesQuery("1");
- var handler = new GetAllRoomsWithFilteredMessagesHandler(_roomRepositoryMock.Object);
-
- var result = await handler.Handle(query, new CancellationToken());
-
- Assert.That(result[0].Messages.Count(), Is.EqualTo(2));
- }
- }
- }
|