Files

67 lines
2.1 KiB
C#

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<IDatabaseService> _mockDatabaseService;
public DatabaseControllerTests()
{
_mockDatabaseService = new Mock<IDatabaseService>();
_databaseController = new DatabasesController(_mockDatabaseService.Object);
}
[Test]
public async Task Get_ReturnsAllDatabases()
{
// Arrange
var databases = new List<Database>
{
new Database { DatabaseGuid = Guid.NewGuid() },
new Database { DatabaseGuid = Guid.NewGuid() }
};
_mockDatabaseService
.Setup(x => x.GetDatabasesAsync(It.IsAny<CancellationToken>()))
.ReturnsAsync(databases);
// Act
var result = await _databaseController.Get(CancellationToken.None);
// Assert
var okResult = result.Result.Should().BeOfType<OkObjectResult>().Subject;
okResult.Value.Should().BeEquivalentTo(databases);
}
[Test]
public async Task Get_ReturnsNoContent_IfNoneExists()
{
// Arrange
var databases = new List<Database>();
_mockDatabaseService
.Setup(x => x.GetDatabasesAsync(It.IsAny<CancellationToken>()))
.ReturnsAsync(databases);
// Act
var result = await _databaseController.Get(CancellationToken.None);
// Assert
var okResult = result.Result.Should().BeOfType<NoContentResult>();
}
}
}