mirror of
https://github.com/actions/runner.git
synced 2025-12-15 06:26:46 +00:00
GitHub Actions Runner
This commit is contained in:
62
src/Test/L0/ExtensionManagerL0.cs
Normal file
62
src/Test/L0/ExtensionManagerL0.cs
Normal file
@@ -0,0 +1,62 @@
|
||||
using GitHub.Runner.Common.Capabilities;
|
||||
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<ICapabilitiesProvider> extensions = manager.GetExtensions<ICapabilitiesProvider>();
|
||||
|
||||
// Assert.
|
||||
Assert.True(
|
||||
extensions.Any(x => x is RunnerCapabilitiesProvider),
|
||||
$"Expected {nameof(RunnerCapabilitiesProvider)} 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.Common.Capabilities.ICapabilitiesProvider>(
|
||||
manager,
|
||||
concreteType: typeof(GitHub.Runner.Common.Capabilities.RunnerCapabilitiesProvider));
|
||||
}
|
||||
}
|
||||
|
||||
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}'.");
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user