OSDN Git Service

GitHub Actionsで使用するactionをアップデート
[opentween/open-tween.git] / OpenTween.Tests / CommandLineArgsTest.cs
1 // OpenTween - Client of Twitter
2 // Copyright (c) 2022 kim_upsilon (@kim_upsilon) <https://upsilo.net/~upsilon/>
3 // All rights reserved.
4 //
5 // This file is part of OpenTween.
6 //
7 // This program is free software; you can redistribute it and/or modify it
8 // under the terms of the GNU General public License as published by the Free
9 // Software Foundation; either version 3 of the License, or (at your option)
10 // any later version.
11 //
12 // This program is distributed in the hope that it will be useful, but
13 // WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14 // or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General public License
15 // for more details.
16 //
17 // You should have received a copy of the GNU General public License along
18 // with this program. If not, see <http://www.gnu.org/licenses/>, or write to
19 // the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
20 // Boston, MA 02110-1301, USA.
21
22 using Xunit;
23
24 namespace OpenTween
25 {
26     public class CommandLineArgsTest
27     {
28         [Fact]
29         public void ParseArguments_NoOptionsTest()
30         {
31             var args = new string[] { };
32             var parsedArgs = new CommandLineArgs(args);
33
34             Assert.Empty(parsedArgs);
35         }
36
37         [Fact]
38         public void ParseArguments_SingleOptionTest()
39         {
40             var args = new[] { "/foo" };
41             var parsedArgs = new CommandLineArgs(args);
42
43             Assert.Single(parsedArgs);
44             Assert.Equal("", parsedArgs["foo"]);
45         }
46
47         [Fact]
48         public void ParseArguments_MultipleOptionsTest()
49         {
50             var args = new[] { "/foo", "/bar" };
51             var parsedArgs = new CommandLineArgs(args);
52
53             Assert.Equal(2, parsedArgs.Count);
54             Assert.Equal("", parsedArgs["foo"]);
55             Assert.Equal("", parsedArgs["bar"]);
56         }
57
58         [Fact]
59         public void ParseArguments_OptionWithArgumentTest()
60         {
61             var args = new[] { "/foo:hogehoge" };
62             var parsedArgs = new CommandLineArgs(args);
63
64             Assert.Single(parsedArgs);
65             Assert.Equal("hogehoge", parsedArgs["foo"]);
66         }
67
68         [Fact]
69         public void ParseArguments_OptionWithEmptyArgumentTest()
70         {
71             var args = new[] { "/foo:" };
72             var parsedArgs = new CommandLineArgs(args);
73
74             Assert.Single(parsedArgs);
75             Assert.Equal("", parsedArgs["foo"]);
76         }
77
78         [Fact]
79         public void ParseArguments_IgroreInvalidOptionsTest()
80         {
81             var args = new string[] { "--foo", "/" };
82             var parsedArgs = new CommandLineArgs(args);
83
84             Assert.Empty(parsedArgs);
85         }
86
87         [Fact]
88         public void ParseArguments_DuplicateOptionsTest()
89         {
90             var args = new[] { "/foo:abc", "/foo:123" };
91             var parsedArgs = new CommandLineArgs(args);
92
93             Assert.Single(parsedArgs);
94             Assert.Equal("123", parsedArgs["foo"]);
95         }
96     }
97 }