1
0
mirror of https://github.com/bitwarden/server.git synced 2024-12-04 14:13:28 +01:00
bitwarden-server/test/Common/AutoFixture/Attributes/RequiredEnvironmentTheoryAttribute.cs

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

38 lines
1.1 KiB
C#
Raw Normal View History

using Xunit;
namespace Bit.Test.Common.AutoFixture.Attributes;
2022-08-29 22:06:55 +02:00
/// <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;
2022-08-29 22:06:55 +02:00
public RequiredEnvironmentTheoryAttribute(params string[] environmentVariableNames)
{
_environmentVariableNames = environmentVariableNames;
if (!HasRequiredEnvironmentVariables())
{
Skip = $"Missing one or more required environment variables. ({string.Join(", ", _environmentVariableNames)})";
}
2022-08-29 22:06:55 +02:00
}
private bool HasRequiredEnvironmentVariables()
2022-08-29 22:06:55 +02:00
{
foreach (var env in _environmentVariableNames)
{
var value = Environment.GetEnvironmentVariable(env);
if (value == null)
{
return false;
}
}
2022-08-29 22:06:55 +02:00
return true;
}
}