using System; 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.LcuModels; using LCU.Library.Internal.CoreApiWrapperModel.LcuModels.Individuals; namespace LCU.Api.Internal.CoreApiWrapperTest.Controllers { public class IndividualControllerTest { private IndividualController _individualController; private Mock _mockIndividualService; [SetUp] public void SetUp() { _mockIndividualService = new Mock(); _individualController = new IndividualController(_mockIndividualService.Object); } [Test] public void GetIndividual_OK() { var testIndividual = new Individual() { IndividualId = 1 }; _mockIndividualService.Setup(x => x.GetIndividualByUserId(It.IsAny())).ReturnsAsync(testIndividual); var result = _individualController.GetIndividual("1"); Assert.NotNull(result); var okResult = result as OkObjectResult; Assert.NotNull(okResult); Assert.AreEqual(200, okResult.StatusCode); } [Test] public void GetIndividual_EmptyString_BadRequest() { var testIndividual = new Individual() { IndividualId = 1 }; _mockIndividualService.Setup(x => x.GetIndividualByUserId(It.IsAny())).ReturnsAsync(testIndividual); var result = _individualController.GetIndividual(""); Assert.NotNull(result); var badRes = result as BadRequestObjectResult; Assert.AreEqual(400, badRes.StatusCode); Assert.AreEqual("User Id must not be null or empty", badRes.Value); } [Test] public void GetIndividual_StringWithSpaces_BadRequest() { var testIndividual = new Individual() { IndividualId = 1 }; _mockIndividualService.Setup(x => x.GetIndividualByUserId(It.IsAny())).ReturnsAsync(testIndividual); var result = _individualController.GetIndividual(" "); Assert.NotNull(result); var badRes = result as BadRequestObjectResult; Assert.AreEqual(400, badRes.StatusCode); Assert.AreEqual("User Id must not be null or empty", badRes.Value); } [Test] public void GetIndividual_Exception() { _mockIndividualService.Setup(x => x.GetIndividualByUserId(It.IsAny())) .Throws(new Exception("Err")); var result = _individualController.GetIndividual("1"); Assert.NotNull(result); var badRes = result as BadRequestObjectResult; Assert.NotNull(badRes); Assert.AreEqual(400, badRes.StatusCode); Assert.AreEqual("Err", badRes.Value); } } }