Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view

This file was deleted.

55 changes: 0 additions & 55 deletions src/PipeForge.Tests.NetCoreApp/PipelineRunner/DescribeTests.cs

This file was deleted.

174 changes: 0 additions & 174 deletions src/PipeForge.Tests.NetCoreApp/PipelineRunner/DiagnosticTests.cs

This file was deleted.

6 changes: 0 additions & 6 deletions src/PipeForge.Tests.NetCoreApp/TestUtils/TestContext.cs

This file was deleted.

2 changes: 0 additions & 2 deletions src/PipeForge.Tests.Steps/AssemblyInfo.cs

This file was deleted.

4 changes: 4 additions & 0 deletions src/PipeForge.Tests.Steps/ISampleContextStep.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
namespace PipeForge.Tests.Steps;

public interface ISampleContextStep : IPipelineStep<SampleContext> { }

7 changes: 6 additions & 1 deletion src/PipeForge.Tests.Steps/PipeForge.Tests.Steps.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,17 @@

<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<LangVersion>latest</LangVersion>
<LangVersion>12.0</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>

<ItemGroup>
<ProjectReference Include="..\PipeForge\PipeForge.csproj" />
</ItemGroup>

<ItemGroup>
<AssemblyAttribute Include="System.Diagnostics.CodeAnalysis.ExcludeFromCodeCoverageAttribute" />
</ItemGroup>

</Project>
33 changes: 33 additions & 0 deletions src/PipeForge.Tests.Steps/SampleContext.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
namespace PipeForge.Tests.Steps;

/// <summary>
/// Sample context for testing pipeline steps.
/// This context allows you to:
/// <list type="bullet">
/// <item>Track pipeline progress via AddStep()</item>
/// <item>Print step execution history using ToString()</item>
/// <item>Assert how many steps ran using StepCount</item>
/// <item>Simulate errors by passing null or empty step names</item>
/// </list>
/// </summary>
public class SampleContext
{
public readonly List<string> Steps = [];

public void AddStep(string stepName)
{
if (string.IsNullOrWhiteSpace(stepName))
{
throw new ArgumentException("Step name cannot be null or whitespace.", nameof(stepName));
}

Steps.Add(stepName);
}

public int StepCount => Steps.Count;

public override string ToString()
{
return string.Join(",", Steps);
}
}
19 changes: 19 additions & 0 deletions src/PipeForge.Tests.Steps/SampleContextStep.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@

namespace PipeForge.Tests.Steps;

public abstract class SampleContextStep : ISampleContextStep
{
public string? Description { get; protected set; } = "Sample Description";

public bool MayShortCircuit { get; protected set; } = false;

public string Name { get; protected set; } = "Sample Name";

public string? ShortCircuitCondition { get; protected set; } = null;

public virtual Task InvokeAsync(SampleContext context, PipelineDelegate<SampleContext> next, CancellationToken cancellationToken = default)
{
context.AddStep(Name);
return next(context, cancellationToken);
}
}
12 changes: 12 additions & 0 deletions src/PipeForge.Tests.Steps/SampleContextStepA.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
namespace PipeForge.Tests.Steps;

[PipelineStep(1)]
public class SampleContextStepA : SampleContextStep
{
public static readonly string StepName = "A";

public SampleContextStepA()
{
Name = StepName;
}
}
19 changes: 0 additions & 19 deletions src/PipeForge.Tests.Steps/StepA1.cs

This file was deleted.

Loading