using FluentAssertions; using Microsoft.AspNetCore.Mvc; using Moq; using NUnit.Framework; using Strata.ContinuousImprovement.Api.Controllers; using Strata.ContinuousImprovement.Biz.Databases; using Strata.ContinuousImprovement.Biz.Replication; using System; using System.Collections.Generic; using System.Threading; using System.Threading.Tasks; namespace Strata.ContinuousImprovement.Api.Test.Unit.Controllers { [TestFixture, Category("Unit"), Category("Controller")] public class DatabaseControllerTests { private readonly DatabasesController _databaseController; private readonly Mock _mockDatabaseService; public DatabaseControllerTests() { _mockDatabaseService = new Mock(); _databaseController = new DatabasesController(_mockDatabaseService.Object); } [Test] public async Task Get_ReturnsAllDatabases() { // Arrange var databases = new List { new Database { DatabaseGuid = Guid.NewGuid() }, new Database { DatabaseGuid = Guid.NewGuid() } }; _mockDatabaseService .Setup(x => x.GetDatabasesAsync(It.IsAny())) .ReturnsAsync(databases); // Act var result = await _databaseController.Get(CancellationToken.None); // Assert var okResult = result.Result.Should().BeOfType().Subject; okResult.Value.Should().BeEquivalentTo(databases); } [Test] public async Task Get_ReturnsNoContent_IfNoneExists() { // Arrange var databases = new List(); _mockDatabaseService .Setup(x => x.GetDatabasesAsync(It.IsAny())) .ReturnsAsync(databases); // Act var result = await _databaseController.Get(CancellationToken.None); // Assert var okResult = result.Result.Should().BeOfType(); } } }