using Website.Data; using Xunit; using FluentAssertions; using MySql.Data.MySqlClient; using NSubstitute; using Microsoft.Extensions.Configuration; namespace Website.Tests.Data { public class MySQLDatabaseProviderTests { const string ConnectionString = "Server=host;User ID=username;Password=password;Database=database"; [Fact] public void NewConnection_WithStringConstructor_ReturnsMySQLConnection() { var provider = new MySQLDatabaseProvider(ConnectionString); var connection = provider.NewConnection(); connection.Should().BeOfType(); (connection as MySqlConnection).ConnectionString.Should().Be(ConnectionString); } [Fact] public void NewConnection_WithConfigConstructor_ReturnsMySQLConnection() { var config = Substitute.For(); config.GetConnectionString("database").Returns(ConnectionString); var provider = new MySQLDatabaseProvider(ConnectionString); var connection = provider.NewConnection(); connection.Should().BeOfType(); (connection as MySqlConnection).ConnectionString.Should().Be(ConnectionString); } } }