forked from ReClassNET/ReClass.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCommandLineArgsTest.cs
More file actions
112 lines (95 loc) · 2.99 KB
/
CommandLineArgsTest.cs
File metadata and controls
112 lines (95 loc) · 2.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
using System.Collections.Generic;
using System.Linq;
using NFluent;
using ReClassNET.Util;
using Xunit;
namespace ReClass.NET_Tests.Util
{
public class CommandLineArgsTest
{
[Fact]
public void TestNullArgs()
{
var sut = new CommandLineArgs(null);
Check.That(sut.FileNames).IsEmpty();
Check.That(sut.Parameters).IsEmpty();
}
[Fact]
public void TestEmptyArgs()
{
var sut = new CommandLineArgs(new string[0]);
Check.That(sut.FileNames).IsEmpty();
Check.That(sut.Parameters).IsEmpty();
}
[Fact]
public void TestEmptyStringArgs()
{
var sut = new CommandLineArgs(new[] { string.Empty, string.Empty });
Check.That(sut.FileNames).IsEmpty();
Check.That(sut.Parameters).IsEmpty();
}
[Theory]
[InlineData("test.test")]
[InlineData("test.test", "test2.test")]
[InlineData("C:/test.test", "test2.test")]
[InlineData("test.test", "C:/test2.test")]
[InlineData("C:/test.test", "C:/test2.test")]
[InlineData(@"C:\test.test", "test2.test")]
[InlineData(@"test.test", @"C:\test2.test")]
[InlineData(@"C:\test.test", @"C:\test2.test")]
public void TestFilenames(params string[] args)
{
var sut = new CommandLineArgs(args);
Check.That(sut.FileName).IsEqualTo(args[0]);
Check.That(sut.FileNames).HasSize(args.Length);
Check.That(sut.FileNames).IsEquivalentTo(args);
Check.That(sut.Parameters).IsEmpty();
}
[Theory]
[InlineData("-p")]
[InlineData("-p=")]
[InlineData("-p:")]
[InlineData("-p=123")]
[InlineData("-p:123")]
[InlineData("--p")]
[InlineData("--p=")]
[InlineData("--p:")]
[InlineData("--p=123")]
[InlineData("--p:123")]
public void TestParameterFormats(string arg)
{
var sut = new CommandLineArgs(new [] { arg });
Check.That(sut.Parameters).HasSize(1);
Check.That(sut.Parameters.First().Key).IsEqualTo("p");
Check.That(sut.FileNames).IsEmpty();
}
[Theory]
[InlineData("-p", "")]
[InlineData("-p=", "")]
[InlineData("-p:", "")]
[InlineData("-p=123", "123")]
[InlineData("-p:123", "123")]
public void TestParameterValues(string arg, string expectedValue)
{
var sut = new CommandLineArgs(new[] { arg });
Check.That(sut.Parameters.First().Value).IsEqualTo(expectedValue);
}
public static IEnumerable<object[]> GetTestFilenamesAndParametersData() => new List<object[]>
{
new object[] { new[] { "test.test" }, 1, 0 },
new object[] { new[] { "-p" }, 0, 1 },
new object[] { new[] { "test.test", "-p" }, 1, 1 },
new object[] { new[] { "test.test", "-p", "test2.test" }, 2, 1 },
new object[] { new[] { "test.test", "-p", "-p2=123", "test2.test" }, 2, 2 },
new object[] { new[] { "-p3:4", "test.test", "-p", "-p2=123", "test2.test" }, 2, 3 }
};
[Theory]
[MemberData(nameof(GetTestFilenamesAndParametersData))]
public void TestFilenamesAndParameters(string[] args, int expectedFilenames, int expectedParameters)
{
var sut = new CommandLineArgs(args);
Check.That(sut.FileNames).HasSize(expectedFilenames);
Check.That(sut.Parameters).HasSize(expectedParameters);
}
}
}