BililiveRecorder/test/BililiveRecorder.Flv.RuleTests/SampleFileTestDataAttribute.cs
2021-11-02 21:46:44 +08:00

30 lines
928 B
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using Xunit.Sdk;
namespace BililiveRecorder.Flv.RuleTests
{
public class SampleFileTestDataAttribute : DataAttribute
{
public SampleFileTestDataAttribute(string basePath)
{
this.BasePath = basePath;
}
public string BasePath { get; }
public override IEnumerable<object[]> GetData(MethodInfo testMethod)
{
var fullPath = Path.IsPathRooted(this.BasePath) ? this.BasePath : Path.GetRelativePath(Directory.GetCurrentDirectory(), this.BasePath);
if (!Directory.Exists(fullPath))
throw new ArgumentException($"Could not find directory at path: {fullPath}");
return new[] { "*.xml" }.SelectMany(x => Directory.GetFiles(fullPath, x)).Select(x => new object[] { Path.GetFileName(x) });
}
}
}