OSDN Git Service

media_idsの連結をstring.Join()を使った処理に書き換え
[opentween/open-tween.git] / OpenTween.Tests / MyApplicationTest.cs
1 // OpenTween - Client of Twitter
2 // Copyright (c) 2013 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 System;
23 using System.Collections.Generic;
24 using System.Linq;
25 using System.Text;
26 using Xunit;
27 using Xunit.Extensions;
28
29 namespace OpenTween
30 {
31     public class ParseArgumentsTest
32     {
33         [Fact]
34         public void NoOptionsTest()
35         {
36             var args = new string[] { };
37
38             Assert.Empty(MyApplication.ParseArguments(args));
39         }
40
41         [Fact]
42         public void SingleOptionTest()
43         {
44             var args = new[] { "/foo" };
45
46             Assert.Equal(new Dictionary<string, string>
47             {
48                 {"foo", ""},
49             },
50             MyApplication.ParseArguments(args));
51         }
52
53         [Fact]
54         public void MultipleOptionsTest()
55         {
56             var args = new[] { "/foo", "/bar" };
57
58             Assert.Equal(new Dictionary<string, string>
59             {
60                 {"foo", ""},
61                 {"bar", ""},
62             },
63             MyApplication.ParseArguments(args));
64         }
65
66         [Fact]
67         public void OptionWithArgumentTest()
68         {
69             var args = new[] { "/foo:hogehoge" };
70
71             Assert.Equal(new Dictionary<string, string>
72             {
73                 {"foo", "hogehoge"},
74             },
75             MyApplication.ParseArguments(args));
76         }
77
78         [Fact]
79         public void OptionWithEmptyArgumentTest()
80         {
81             var args = new[] { "/foo:" };
82
83             Assert.Equal(new Dictionary<string, string>
84             {
85                 {"foo", ""},
86             },
87             MyApplication.ParseArguments(args));
88         }
89
90         [Fact]
91         public void IgroreInvalidOptionsTest()
92         {
93             var args = new string[] { "--foo", "/" };
94
95             Assert.Empty(MyApplication.ParseArguments(args));
96         }
97
98         [Fact]
99         public void DuplicateOptionsTest()
100         {
101             var args = new[] { "/foo:abc", "/foo:123" };
102
103             Assert.Equal(new Dictionary<string, string>
104             {
105                 {"foo", "123"},
106             },
107             MyApplication.ParseArguments(args));
108         }
109     }
110 }