Files
mRemoteNG/mRemoteNGTests/IntegrationTests/ConnectionInheritanceIntegrationTests.cs
2025-10-07 19:49:21 +00:00

96 lines
3.5 KiB
C#

using mRemoteNG.Connection;
using mRemoteNG.Connection.Protocol;
using mRemoteNG.Container;
using mRemoteNG.Tree.Root;
using NUnit.Framework;
namespace mRemoteNGTests.IntegrationTests
{
public class ConnectionInheritanceIntegrationTests
{
private RootNodeInfo _rootNode;
[SetUp]
public void Setup()
{
_rootNode = new RootNodeInfo(RootNodeType.Connection);
}
[TearDown]
public void Teardown()
{
_rootNode = null;
}
[Test]
public void ConnectionsInheritFromCorrectFolder()
{
/**
* Root
* --Folder1
* ----Connection1
* ----Folder2
* ------Connection2
* ----Connection3 (inherits username)
*/
var folder1 = new ContainerInfo { Icon = "someicon1" };
var folder2 = new ContainerInfo { Icon = "someicon2" };
var connection1 = new ConnectionInfo();
var connection2 = new ConnectionInfo();
var connection3 = new ConnectionInfo {Inheritance = {Icon = true}};
_rootNode.AddChild(folder1);
folder1.AddChildRange(new []{connection1, folder2, connection3});
folder2.AddChild(connection2);
Assert.That(connection3.Icon, Is.EqualTo(folder1.Icon));
}
[Test]
public void ConnectionWillInheritAllFromFolder()
{
var folder = new ContainerInfo {Protocol = ProtocolType.SSH2, Icon = "someicon", CacheBitmaps = true};
var connection = new ConnectionInfo {Inheritance = {EverythingInherited = true}};
_rootNode.AddChild(folder);
folder.AddChild(connection);
Assert.That(new object[] { connection.Protocol, connection.Icon, connection.CacheBitmaps }, Is.EquivalentTo(new object[] {folder.Protocol, folder.Icon, folder.CacheBitmaps }));
}
[Test]
public void CanInheritThroughMultipleFolderLevels()
{
var folder1 = new ContainerInfo { Icon = "someicon"};
var folder2 = new ContainerInfo {Inheritance = { Icon = true}};
var folder3 = new ContainerInfo {Inheritance = { Icon = true}};
var connection = new ConnectionInfo {Inheritance = { Icon = true}};
_rootNode.AddChild(folder1);
folder1.AddChild(folder2);
folder2.AddChild(folder3);
folder3.AddChild(connection);
Assert.That(connection.Icon, Is.EqualTo(folder1.Icon));
}
[Test]
public void ConnectionInheritsColorFromFolder()
{
var folder = new ContainerInfo { Color = "Red" };
var connection = new ConnectionInfo { Inheritance = { Color = true } };
_rootNode.AddChild(folder);
folder.AddChild(connection);
Assert.That(connection.Color, Is.EqualTo(folder.Color));
}
[Test]
public void CanInheritColorThroughMultipleFolderLevels()
{
var folder1 = new ContainerInfo { Color = "Blue" };
var folder2 = new ContainerInfo { Inheritance = { Color = true } };
var folder3 = new ContainerInfo { Inheritance = { Color = true } };
var connection = new ConnectionInfo { Inheritance = { Color = true } };
_rootNode.AddChild(folder1);
folder1.AddChild(folder2);
folder2.AddChild(folder3);
folder3.AddChild(connection);
Assert.That(connection.Color, Is.EqualTo(folder1.Color));
}
}
}