You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

RoomTests.cs 3.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using Diligent.WebAPI.Business.Interfaces;
  2. using Diligent.WebAPI.Data.Entities;
  3. using Diligent.WebAPI.Data.HelperModels;
  4. using Diligent.WebAPI.Host.Exceptions;
  5. using Diligent.WebAPI.Host.Mediator.Chat.Handlers;
  6. using Diligent.WebAPI.Host.Mediator.Rooms.Commands;
  7. using Microsoft.AspNetCore.Http;
  8. using Moq;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Threading.Tasks;
  14. namespace Tests
  15. {
  16. [TestFixture]
  17. public class RoomTests
  18. {
  19. private Mock<IRoomRepository> _roomRepositoryMock;
  20. [SetUp]
  21. public void SetUp()
  22. {
  23. _roomRepositoryMock = new Mock<IRoomRepository>();
  24. }
  25. [Test]
  26. public async Task RemoveUserFromGroup_ObjectIsNull_ThrowsNotFoundException()
  27. {
  28. var command = new RemoveUserFromGroupCommand(null, null);
  29. var handler = new RemoveUserFromGroupHandler(_roomRepositoryMock.Object);
  30. Assert.That(async () => await handler.Handle(command, new CancellationToken()), Throws.Exception.TypeOf<NotFoundException>());
  31. }
  32. [Test]
  33. public async Task RemoveUserFromGroup_UserConnectionIsNull_ThrowsNotFoundException()
  34. {
  35. _roomRepositoryMock.Setup(x => x.GetByIdAsync(It.IsAny<string>()))
  36. .ReturnsAsync(new Room
  37. {
  38. Name = "Room1",
  39. Customers = new List<CustomerDTO>
  40. {
  41. new CustomerDTO { CustomerId = "user", DateOfEnteringRoom = DateTime.Now}
  42. },
  43. CreatedBy = "User1"
  44. });
  45. var command = new RemoveUserFromGroupCommand("room1", "user1");
  46. var handler = new RemoveUserFromGroupHandler(_roomRepositoryMock.Object);
  47. Assert.That(async () => await handler.Handle(command, new CancellationToken()), Throws.Exception.TypeOf<NotFoundException>());
  48. }
  49. [Test]
  50. public async Task RemoveUserFromGroup_UserConnectionIsNotNull_ObjectIsNotNull()
  51. {
  52. var userConnection = new CustomerDTO { CustomerId = "user1", DateOfEnteringRoom = DateTime.Now };
  53. var room = new Room
  54. {
  55. Name = "Room1",
  56. Customers = new List<CustomerDTO>
  57. {
  58. userConnection
  59. },
  60. CreatedBy = "User1"
  61. };
  62. _roomRepositoryMock.Setup(x => x.GetByIdAsync(It.IsAny<string>()))
  63. .ReturnsAsync(room);
  64. _roomRepositoryMock.Setup(x => x.LeaveChatRoom(It.IsAny<Room>(), It.IsAny<CustomerDTO>()));
  65. var command = new RemoveUserFromGroupCommand("room1", "user1");
  66. var handler = new RemoveUserFromGroupHandler(_roomRepositoryMock.Object);
  67. var result = await handler.Handle(command, new CancellationToken());
  68. _roomRepositoryMock.Verify(mock => mock.LeaveChatRoom(room, userConnection));
  69. }
  70. }
  71. }