OSDN Git Service

Assert.Equalの引数順の誤りを修正 (xUnit2000)
[opentween/open-tween.git] / OpenTween.Tests / OTBaseFormTest.cs
1 // OpenTween - Client of Twitter
2 // Copyright (c) 2015 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.Drawing;
25 using System.Linq;
26 using System.Text;
27 using System.Threading.Tasks;
28 using System.Windows.Forms;
29 using Xunit;
30
31 namespace OpenTween
32 {
33     public class OTBaseFormTest
34     {
35         private class TestForm : OTBaseForm { }
36
37         public OTBaseFormTest()
38         {
39             this.SetupSynchronizationContext();
40         }
41
42         protected void SetupSynchronizationContext()
43         {
44             WindowsFormsSynchronizationContext.AutoInstall = false;
45         }
46
47         [Fact]
48         public async Task InvokeAsync_Test()
49         {
50             using (var form = new TestForm())
51             {
52                 await Task.Run(async () =>
53                 {
54                     await form.InvokeAsync(() => { form.Text = "hoge"; });
55                 });
56
57                 Assert.Equal("hoge", form.Text);
58             }
59         }
60
61         [Fact]
62         public async Task InvokeAsync_ReturnValueTest()
63         {
64             using (var form = new TestForm())
65             {
66                 form.Text = "hoge";
67
68                 await Task.Run(async () =>
69                 {
70                     var ret = await form.InvokeAsync(() => form.Text);
71                     Assert.Equal("hoge", ret);
72                 });
73             }
74         }
75
76         [Fact]
77         public async Task InvokeAsync_TaskTest()
78         {
79             using (var form = new TestForm())
80             {
81                 await Task.Run(async () =>
82                 {
83                     await form.InvokeAsync(async () =>
84                     {
85                         await Task.Delay(1);
86                         form.Text = "hoge";
87                     });
88                 });
89
90                 Assert.Equal("hoge", form.Text);
91             }
92         }
93
94         [Fact]
95         public async Task InvokeAsync_TaskWithValueTest()
96         {
97             using (var form = new TestForm())
98             {
99                 form.Text = "hoge";
100
101                 await Task.Run(async () =>
102                 {
103                     var ret = await form.InvokeAsync(async () =>
104                     {
105                         await Task.Delay(1);
106                         return form.Text;
107                     });
108
109                     Assert.Equal("hoge", ret);
110                 });
111             }
112         }
113
114         [Fact]
115         public void ScaleChildControl_ListViewTest()
116         {
117             using (var listview = new ListView { Width = 200, Height = 200 })
118             {
119                 listview.Columns.AddRange(new[]
120                 {
121                     new ColumnHeader { Width = 60 },
122                     new ColumnHeader { Width = 140 },
123                 });
124
125                 OTBaseForm.ScaleChildControl(listview, new SizeF(1.25f, 1.25f));
126
127                 Assert.Equal(75, listview.Columns[0].Width);
128                 Assert.Equal(175, listview.Columns[1].Width);
129             }
130         }
131
132         [Fact]
133         public void ScaleChildControl_VScrollBarTest()
134         {
135             using (var scrollBar = new VScrollBar { Width = 20, Height = 200 })
136             {
137                 OTBaseForm.ScaleChildControl(scrollBar, new SizeF(2.0f, 2.0f));
138
139                 Assert.Equal(40, scrollBar.Width);
140             }
141         }
142     }
143 }