66 lines
No EOL
2.1 KiB
C#
66 lines
No EOL
2.1 KiB
C#
using Bloomberg.Client.Components.Settings;
|
|
using NUnit.Framework;
|
|
using System;
|
|
using System.Reflection;
|
|
|
|
namespace Plume.Bloomberg.Tests
|
|
{
|
|
[TestFixture]
|
|
public class BloombergConfigurationTests
|
|
{
|
|
const string ApplicationName = "MyApplication";
|
|
const string ExeName = ApplicationName + ".exe";
|
|
const string ExePath = "C:/here/there/over_here/" + ExeName;
|
|
|
|
[Test]
|
|
public void Constructor_ValidExePath_ValidInstance()
|
|
{
|
|
var settings = new TrackedApplication(ExePath);
|
|
|
|
Assert.AreEqual(ApplicationName, settings.ApplicationName);
|
|
Assert.AreEqual(ExeName, settings.ProcessFileName);
|
|
}
|
|
|
|
[Test]
|
|
public void Constructor_InvalidExePath_ThrowsException()
|
|
{
|
|
Assert.Throws<ArgumentException>(() => new TrackedApplication(string.Empty));
|
|
}
|
|
|
|
[Test]
|
|
public void GetGameSettings_ValidInstanceReference_ReferencedInstanceHasNotChanged()
|
|
{
|
|
var settings = new TrackedApplication(ExePath);
|
|
|
|
var gameSettings = CreateInstanceFromPrivateConstructor<GameSettings>();
|
|
var oldRef = gameSettings;
|
|
|
|
settings.GetGameSettings(ref gameSettings);
|
|
|
|
Assert.IsTrue(ReferenceEquals(oldRef, gameSettings));
|
|
}
|
|
|
|
[Test]
|
|
public void GetBloombergSettings_ValidInstanceReference_ReferencedInstanceHasNotChanged()
|
|
{
|
|
var settings = new TrackedApplication(ExePath);
|
|
|
|
var bloombergSettings = CreateInstanceFromPrivateConstructor<BloombergSettings>();
|
|
|
|
var oldRef = bloombergSettings;
|
|
|
|
settings.GetBloombergSettings(ref bloombergSettings);
|
|
|
|
Assert.IsTrue(ReferenceEquals(oldRef, bloombergSettings));
|
|
}
|
|
|
|
private T CreateInstanceFromPrivateConstructor<T>()
|
|
{
|
|
var constructor = typeof(T).GetConstructor(BindingFlags.NonPublic | BindingFlags.Instance, null, new Type[0], null);
|
|
var instance = (T)constructor?.Invoke(null);
|
|
|
|
Assert.IsNotNull(instance);
|
|
return instance;
|
|
}
|
|
}
|
|
} |