mirror of
https://github.com/actions/runner.git
synced 2025-12-11 12:57:05 +00:00
* Runners will add os and architecture labels during registration * support github.localhost for dev.
62 lines
1.9 KiB
C#
62 lines
1.9 KiB
C#
using GitHub.Runner.Worker;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using Xunit;
|
|
|
|
namespace GitHub.Runner.Common.Tests
|
|
{
|
|
public sealed class ExtensionManagerL0
|
|
{
|
|
[Fact]
|
|
[Trait("Level", "L0")]
|
|
[Trait("Category", "Common")]
|
|
public void LoadsTypeFromString()
|
|
{
|
|
using (TestHostContext tc = new TestHostContext(this))
|
|
{
|
|
// Arrange.
|
|
var manager = new ExtensionManager();
|
|
manager.Initialize(tc);
|
|
|
|
// Act.
|
|
List<IActionCommandExtension> extensions = manager.GetExtensions<IActionCommandExtension>();
|
|
|
|
// Assert.
|
|
Assert.True(
|
|
extensions.Any(x => x is SetEnvCommandExtension),
|
|
$"Expected {nameof(SetEnvCommandExtension)} extension to be returned as a job extension.");
|
|
}
|
|
}
|
|
|
|
[Fact]
|
|
[Trait("Level", "L0")]
|
|
[Trait("Category", "Common")]
|
|
public void LoadsTypes()
|
|
{
|
|
using (TestHostContext tc = new TestHostContext(this))
|
|
{
|
|
// Arrange.
|
|
var manager = new ExtensionManager();
|
|
manager.Initialize(tc);
|
|
|
|
// Act/Assert.
|
|
AssertContains<GitHub.Runner.Worker.IActionCommandExtension>(
|
|
manager,
|
|
concreteType: typeof(GitHub.Runner.Worker.SetEnvCommandExtension));
|
|
}
|
|
}
|
|
|
|
private static void AssertContains<T>(ExtensionManager manager, Type concreteType) where T : class, IExtension
|
|
{
|
|
// Act.
|
|
List<T> extensions = manager.GetExtensions<T>();
|
|
|
|
// Assert.
|
|
Assert.True(
|
|
extensions.Any(x => x.GetType() == concreteType),
|
|
$"Expected '{typeof(T).FullName}' extensions to contain concrete type '{concreteType.FullName}'.");
|
|
}
|
|
}
|
|
}
|