40 lines
1.6 KiB
C#
40 lines
1.6 KiB
C#
|
using System;
|
|||
|
using System.Collections.Generic;
|
|||
|
using System.IO;
|
|||
|
using System.Linq;
|
|||
|
using System.Text;
|
|||
|
using System.Threading.Tasks;
|
|||
|
using Xunit;
|
|||
|
|
|||
|
namespace IPA.Tests
|
|||
|
{
|
|||
|
public class ProgramTest
|
|||
|
{
|
|||
|
[Theory]
|
|||
|
// Unrelated path
|
|||
|
[InlineData("test/from.dll", "test/to.dll", "native", false, new string[] { "test/to.dll" })]
|
|||
|
|
|||
|
// Flat -> Not-Flat
|
|||
|
[InlineData("native/from.dll", "native/to.dll", "native", false, new string[] { "native/x86/to.dll", "native/x86_64/to.dll" })]
|
|||
|
|
|||
|
// Flat -> Flat
|
|||
|
[InlineData("native/from.dll", "native/to.dll", "native", true, new string[] { "native/to.dll" })]
|
|||
|
|
|||
|
// Not-Flat -> Flat
|
|||
|
[InlineData("native/x86/from.dll", "native/x86/to.dll", "native", true, new string[] { })]
|
|||
|
[InlineData("native/x86_64/from.dll", "native/x86_64/to.dll", "native", true, new string[] { "native/to.dll" })]
|
|||
|
|
|||
|
// Not-flat -> Not-Flat
|
|||
|
[InlineData("native/x86/from.dll", "native/x86/to.dll", "native", false, new string[] { "native/x86/to.dll" })]
|
|||
|
[InlineData("native/x86_64/from.dll", "native/x86_64/to.dll", "native", false, new string[] { "native/x86_64/to.dll" })]
|
|||
|
|
|||
|
public void CopiesCorrectly(string from, string to, string nativeFolder, bool isFlat, string[] expected)
|
|||
|
{
|
|||
|
var outcome = Program.NativePluginInterceptor(new FileInfo(from), new FileInfo(to), new DirectoryInfo(nativeFolder), isFlat).Select(f => f.FullName).ToList();
|
|||
|
|
|||
|
var expectedPaths = expected.Select(e => new FileInfo(e)).Select(f => f.FullName).ToList();
|
|||
|
Assert.Equal(expectedPaths, outcome);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|