mirror of
https://github.com/bitwarden/server.git
synced 2024-11-25 12:45:18 +01:00
38 lines
1.1 KiB
C#
38 lines
1.1 KiB
C#
using Xunit;
|
|
|
|
namespace Bit.Test.Common.AutoFixture.Attributes;
|
|
|
|
/// <summary>
|
|
/// Used for requiring certain environment variables exist at the time. Mostly used for more edge unit tests that shouldn't
|
|
/// be run during CI builds or should only be ran in CI builds when pieces of information are available.
|
|
/// </summary>
|
|
public class RequiredEnvironmentTheoryAttribute : TheoryAttribute
|
|
{
|
|
private readonly string[] _environmentVariableNames;
|
|
|
|
public RequiredEnvironmentTheoryAttribute(params string[] environmentVariableNames)
|
|
{
|
|
_environmentVariableNames = environmentVariableNames;
|
|
|
|
if (!HasRequiredEnvironmentVariables())
|
|
{
|
|
Skip = $"Missing one or more required environment variables. ({string.Join(", ", _environmentVariableNames)})";
|
|
}
|
|
}
|
|
|
|
private bool HasRequiredEnvironmentVariables()
|
|
{
|
|
foreach (var env in _environmentVariableNames)
|
|
{
|
|
var value = Environment.GetEnvironmentVariable(env);
|
|
|
|
if (value == null)
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
}
|