using AutoMapper; using DevHive.Services.Interfaces; using DevHive.Services.Models.Technology; using DevHive.Web.Controllers; using DevHive.Web.Models.Technology; using Microsoft.AspNetCore.Mvc; using Moq; using NUnit.Framework; using System.Threading.Tasks; namespace DevHive.Web.Tests { [TestFixture] public class TechnologyControllerTests { private Mock TechnologyServiceMock { get; set; } private Mock MapperMock { get; set; } private TechnologyController TechnologyController { get; set; } [SetUp] public void SetUp() { this.TechnologyServiceMock = new Mock(); this.MapperMock = new Mock(); this.TechnologyController = new TechnologyController(this.TechnologyServiceMock.Object, this.MapperMock.Object); } #region Create [Test] public void Create_ReturnsOkObjectResult_WhenTechnologyIsSuccessfullyCreated() { string name = "Gosho Trapov"; CreateTechnologyWebModel createTechnologyWebModel = new CreateTechnologyWebModel { Name = name }; CreateTechnologyServiceModel createTechnologyServiceModel = new CreateTechnologyServiceModel { Name = name }; this.MapperMock.Setup(p => p.Map(It.IsAny())).Returns(createTechnologyServiceModel); this.TechnologyServiceMock.Setup(p => p.Create(It.IsAny())).Returns(Task.FromResult(true)); IActionResult result = this.TechnologyController.Create(createTechnologyWebModel).Result; Assert.IsInstanceOf(result); } #endregion } }