OSDN Git Service

ブロックの括弧を独立した行に書く (SA1500, SA1501, SA1502)
[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         }
38
39         public OTBaseFormTest()
40             => this.SetupSynchronizationContext();
41
42         protected void SetupSynchronizationContext()
43             => WindowsFormsSynchronizationContext.AutoInstall = false;
44
45         [Fact]
46         public async Task InvokeAsync_Test()
47         {
48             using (var form = new TestForm())
49             {
50                 await Task.Run(async () =>
51                 {
52                     await form.InvokeAsync(() => form.Text = "hoge");
53                 });
54
55                 Assert.Equal("hoge", form.Text);
56             }
57         }
58
59         [Fact]
60         public async Task InvokeAsync_ReturnValueTest()
61         {
62             using (var form = new TestForm())
63             {
64                 form.Text = "hoge";
65
66                 await Task.Run(async () =>
67                 {
68                     var ret = await form.InvokeAsync(() => form.Text);
69                     Assert.Equal("hoge", ret);
70                 });
71             }
72         }
73
74         [Fact]
75         public async Task InvokeAsync_TaskTest()
76         {
77             using (var form = new TestForm())
78             {
79                 await Task.Run(async () =>
80                 {
81                     await form.InvokeAsync(async () =>
82                     {
83                         await Task.Delay(1);
84                         form.Text = "hoge";
85                     });
86                 });
87
88                 Assert.Equal("hoge", form.Text);
89             }
90         }
91
92         [Fact]
93         public async Task InvokeAsync_TaskWithValueTest()
94         {
95             using (var form = new TestForm())
96             {
97                 form.Text = "hoge";
98
99                 await Task.Run(async () =>
100                 {
101                     var ret = await form.InvokeAsync(async () =>
102                     {
103                         await Task.Delay(1);
104                         return form.Text;
105                     });
106
107                     Assert.Equal("hoge", ret);
108                 });
109             }
110         }
111
112         [Fact]
113         public void ScaleChildControl_ListViewTest()
114         {
115             using (var listview = new ListView { Width = 200, Height = 200 })
116             {
117                 listview.Columns.AddRange(new[]
118                 {
119                     new ColumnHeader { Width = 60 },
120                     new ColumnHeader { Width = 140 },
121                 });
122
123                 OTBaseForm.ScaleChildControl(listview, new SizeF(1.25f, 1.25f));
124
125                 Assert.Equal(75, listview.Columns[0].Width);
126                 Assert.Equal(175, listview.Columns[1].Width);
127             }
128         }
129
130         [Fact]
131         public void ScaleChildControl_VScrollBarTest()
132         {
133             using (var scrollBar = new VScrollBar { Width = 20, Height = 200 })
134             {
135                 OTBaseForm.ScaleChildControl(scrollBar, new SizeF(2.0f, 2.0f));
136
137                 Assert.Equal(40, scrollBar.Width);
138             }
139         }
140     }
141 }