This repository has been archived on 2022-11-03. You can view files and clone it, but cannot push or open issues or pull requests.
DevOpsOpenHack/apis/poi/tests/UnitTests/Utility/POIConfigurationTests.cs
2022-11-03 16:41:13 -04:00

92 lines
3.1 KiB
C#

using Xunit;
using poi.Utility;
using System.Threading;
using Microsoft.Extensions.Diagnostics.HealthChecks;
using Microsoft.Extensions.Configuration;
using System.Collections.Generic;
using Microsoft.Extensions.Primitives;
using System;
using System.ComponentModel.DataAnnotations;
namespace UnitTests.Utility
{
public class POIConfigurationTests
{
private Dictionary<string, string> GetTestSettings()
{
string connectionStringTemplate = "Server=tcp:[SQL_SERVER],1433;Initial Catalog=[SQL_DBNAME];Persist Security Info=False;User ID=[SQL_USER];Password=[SQL_PASSWORD];MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;";
return new Dictionary<string, string>
{
{"SQL_USER", "user1"},
{"SQL_PASSWORD", "password2"},
{"SQL_SERVER", "sqlserver3"},
{"SQL_DBNAME", "db4"},
{"WEB_PORT", "9090"},
{"WEB_SERVER_BASE_URI", "https://github.com"},
{"ConnectionStrings:myDrivingDB",connectionStringTemplate}
};
}
private IConfiguration GetTestConfiguration()
{
var inMemorySettings = GetTestSettings();
IConfiguration configuration = new ConfigurationBuilder()
.AddInMemoryCollection(inMemorySettings)
.Build();
return configuration;
}
[Fact]
public void GetConnectionString_ReturnsCS_WithCorrectValuesReplaced()
{
//arrange
IConfiguration configuration = GetTestConfiguration();
//act
var connectionString = POIConfiguration.GetConnectionString(configuration);
//assert
var expectedConnectionString = "Server=tcp:sqlserver3,1433;Initial Catalog=db4;Persist Security Info=False;User ID=user1;Password=password2;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;";
Assert.Equal(expectedConnectionString, connectionString);
}
[Fact]
public void GetUri_Returns_DefaultUriAndPort_WhenNotInSettings()
{
//arrange
IConfiguration configuration = GetTestConfiguration();
//act
var uri = POIConfiguration.GetUri(configuration);
//assert
var expectedUri = "https://github.com:9090";
Assert.Equal(expectedUri, uri);
}
[Fact]
public void GetUri_Returns_BaseUrlAndPortFromSettings()
{
//arrange
var inMemorySettings = GetTestSettings();
inMemorySettings.Remove("WEB_SERVER_BASE_URI");
inMemorySettings.Remove("WEB_PORT");
IConfiguration configuration = new ConfigurationBuilder()
.AddInMemoryCollection(inMemorySettings)
.Build();
//act
var uri = POIConfiguration.GetUri(configuration);
//assert
var expectedUri = "http://localhost:8080";
Assert.Equal(expectedUri, uri);
}
}
}