Class TestContext
Holds information like settings and test files for unit tests.
Namespace: Neon.Xunit
Assembly: Neon.Xunit.dll
Syntax
public sealed class TestContext
Remarks
This class is pretty easy to use. Simply construct an instance, perform any desired initialization such as reading files (potentionally encypted) and configuring variables/settings. Then your tests can reference this via the static Current property.
You'll generally construct one of these instances at the beginning of your test method or within a test fixture. Only one TestContext may be active at any given time, so remember to call Dispose() when your test run is commplete.
Constructors
TestContext()
Constructor.
Declaration
public TestContext()
Remarks
note
Only one TestContext instance may exist at any time.
Exceptions
Type | Condition |
---|---|
InvalidOperationException | Thrown if another TestContext already exists. |
Properties
Current
Returns the cuurent TestContext or null
.
Declaration
public static TestContext Current { get; }
Property Value
Type | Description |
---|---|
TestContext |
Files
Returns a case sensitive dictionary mapping file names to byte arrays with the file contents. You can use this to pass file data to tests.
Declaration
public Dictionary<string, byte[]> Files { get; }
Property Value
Type | Description |
---|---|
Dictionary<string, byte[]> |
Settings
Returns a case senstive dictionary mapping setting names to object values. You can use this to pass settings and other information to tests.
Declaration
public Dictionary<string, object> Settings { get; }
Property Value
Type | Description |
---|---|
Dictionary<string, object> |
Methods
Dispose()
Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
Declaration
public void Dispose()
GetFileBytes(string)
Returns the raw bytes for the named file from the Files dictionary.
Declaration
public byte[] GetFileBytes(string filename)
Parameters
Type | Name | Description |
---|---|---|
string | filename | The file name. |
Returns
Type | Description |
---|---|
byte[] | The file bytes. |
Exceptions
Type | Condition |
---|---|
KeyNotFoundException | Thrown if the file doesn't exist. |
GetFileText(string, Encoding)
Returns the text for the named file from the Files. dictionary.
Declaration
public string GetFileText(string filename, Encoding encoding = null)
Parameters
Type | Name | Description |
---|---|---|
string | filename | The file name. |
Encoding | encoding | The encoding to be used (defaults to UTF8). |
Returns
Type | Description |
---|---|
string | The file text. |
Exceptions
Type | Condition |
---|---|
KeyNotFoundException | Thrown if the file doesn't exist. |
LoadEnvironment(string, Func<string, string>)
Loads environment variables formatted as NAME=VALUE
from a text file into environment
variables. The file will be decrypted using NeonVault if necessary.
note
Blank lines and lines beginning with '#' will be ignored.
Declaration
public void LoadEnvironment(string path, Func<string, string> passwordProvider = null)
Parameters
Type | Name | Description |
---|---|---|
string | path | The input file path. |
Func<string, string> | passwordProvider | Optionally specifies the password provider function to be used to locate the
password required to decrypt the source file when necessary. This defaults
to looking for the password inb ~/.neonkube/passwords when
|
Exceptions
Type | Condition |
---|---|
FileNotFoundException | Thrown if the file doesn't exist. |
FormatException | Thrown for file formatting problems. |
LoadFile(string, Func<string, string>)
Loads a file into the Files dictionary, using the file name (without the directory path) as the key. The file will be decrypted via NeonVault as necessary.
Declaration
public void LoadFile(string path, Func<string, string> passwordProvider = null)
Parameters
Type | Name | Description |
---|---|---|
string | path | The file path. |
Func<string, string> | passwordProvider | Optionally specifies the password provider function to be used to locate the
password required to decrypt the source file when necessary. This defaults
to looking for the password inb ~/.neonkube/passwords when
|
Exceptions
Type | Condition |
---|---|
FileNotFoundException | Thrown if the file doesn't exist. |
FormatException | Thrown for file formatting problems. |
LoadSettings(string, Func<string, string>)
Loads settings formatted as NAME=VALUE
from a text file into the
Settings dictionary. The file will be decrypted using
NeonVault if necessary.
note
Blank lines and lines beginning with '#' will be ignored.
Declaration
public void LoadSettings(string path, Func<string, string> passwordProvider = null)
Parameters
Type | Name | Description |
---|---|---|
string | path | The input file path. |
Func<string, string> | passwordProvider | Optionally specifies the password provider function to be used to locate the
password required to decrypt the source file when necessary. This defaults
to looking for the password inb ~/.neonkube/passwords when
|
Exceptions
Type | Condition |
---|---|
FileNotFoundException | Thrown if the file doesn't exist. |
FormatException | Thrown for file formatting problems. |