using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Moq; using NUnit.Framework; using LCU.Api.Internal.CoreApiWrapper.Controllers; using LCU.Api.Internal.CoreApiWrapper.Services; using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.CoreRequests; using LCU.Library.Internal.CoreApiWrapperModel.CoreModels.AccessChannelPersons; using LCU.Library.Internal.CoreApiWrapperModel.CoreModels; namespace LCU.Api.Internal.CoreApiWrapperTest.Controllers { public class AccessChannelPersonsControllerTest { private AccessChannelPersonsController _accessChannelPersonsController; private Mock _mockAccessChannelPersonsService; [SetUp] public void SetUp() { _mockAccessChannelPersonsService = new Mock(); _accessChannelPersonsController = new AccessChannelPersonsController(_mockAccessChannelPersonsService.Object); } [Test] public async Task GetAccessChannelPersons_OK() { var response = new List() { new AccessChannelPerson() { ChannelNumber = 1, PersonNumber = 2, UserId = "3" }, new AccessChannelPerson() { ChannelNumber = 4, PersonNumber = 25, UserId = "6" } }; var coreMessageHeader = new CoreMessageHeader(323000000000); var coreApiMessage = new CoreApiMessage>(coreMessageHeader, response); _mockAccessChannelPersonsService.Setup(x => x.GetAccessChannelPersonCoreApiResponseAsync(It.IsAny())) .ReturnsAsync(coreApiMessage); var request = new AccessChannelPersonsByPersonRequest() { PersonNumber = 2 }; var results = await _accessChannelPersonsController.Get(request); Assert.NotNull(results); var okResult = results as OkObjectResult; Assert.NotNull(okResult); Assert.AreEqual(200, okResult.StatusCode); } [Test] public async Task GetAccessChannelPersons_Exception() { _mockAccessChannelPersonsService.Setup(x => x.GetAccessChannelPersonCoreApiResponseAsync(It.IsAny())) .Throws(new Exception("Oops")); var request = new AccessChannelPersonsByPersonRequest() { PersonNumber = 2 }; var results = await _accessChannelPersonsController.Get(request); Assert.NotNull(results); var badRes = results as BadRequestObjectResult; Assert.NotNull(badRes); Assert.AreEqual(400, badRes.StatusCode); } [Test] public async Task PutAccessChannelPerson_OK() { var response = new AccessChannelPerson() { ChannelNumber = 1, PersonNumber = 2, UserId = "3" }; _mockAccessChannelPersonsService.Setup(x => x.UpdateAccessChannelPersonAsync(It.IsAny(), It.IsAny())) .ReturnsAsync(response); var request = new AccessChannelPerson() { ChannelNumber = 1, PersonNumber = 2, UserId = "3" }; var results = await _accessChannelPersonsController.Put(request, 343432432400000000); Assert.NotNull(results); var okResult = results as OkObjectResult; Assert.NotNull(okResult); Assert.AreEqual(200, okResult.StatusCode); } [Test] public async Task PutAccessChannelPerson_Exception() { _mockAccessChannelPersonsService.Setup(x => x.UpdateAccessChannelPersonAsync(It.IsAny(), It.IsAny())) .Throws(new Exception("Oops")); var request = new AccessChannelPerson() { ChannelNumber = 1, PersonNumber = 2, UserId = "3" }; var results = await _accessChannelPersonsController.Put(request, 343432432400000000); Assert.NotNull(results); var badRes = results as BadRequestObjectResult; Assert.NotNull(badRes); Assert.AreEqual(400, badRes.StatusCode); } } }