Template
67 lines
2.1 KiB
C#
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>();
|
|
}
|
|
}
|
|
}
|