1
+ using System . Linq ;
2
+ using Microsoft . VisualStudio . TestTools . UnitTesting ;
3
+ using Rubberduck . Settings ;
4
+ using Rubberduck . UI . Settings ;
5
+
6
+ namespace RubberduckTests . Settings
7
+ {
8
+ [ TestClass ]
9
+ public class TodoSettingsTests
10
+ {
11
+ private Configuration GetDefaultConfig ( )
12
+ {
13
+ var todoSettings = new ToDoListSettings
14
+ {
15
+ ToDoMarkers = new [ ]
16
+ {
17
+ new ToDoMarker ( "NOTE " ) ,
18
+ new ToDoMarker ( "TODO " ) ,
19
+ new ToDoMarker ( "BUG " )
20
+ }
21
+ } ;
22
+
23
+ var userSettings = new UserSettings ( null , todoSettings , null , null , null ) ;
24
+ return new Configuration ( userSettings ) ;
25
+ }
26
+
27
+ private Configuration GetNondefaultConfig ( )
28
+ {
29
+ var todoSettings = new ToDoListSettings
30
+ {
31
+ ToDoMarkers = new [ ]
32
+ {
33
+ new ToDoMarker ( "PLACEHOLDER " )
34
+ }
35
+ } ;
36
+
37
+ var userSettings = new UserSettings ( null , todoSettings , null , null , null ) ;
38
+ return new Configuration ( userSettings ) ;
39
+ }
40
+
41
+ [ TestMethod ]
42
+ public void SaveConfigWorks ( )
43
+ {
44
+ var customConfig = GetNondefaultConfig ( ) ;
45
+ var viewModel = new TodoSettingsViewModel ( GetNondefaultConfig ( ) ) ;
46
+
47
+ var config = GetDefaultConfig ( ) ;
48
+ viewModel . UpdateConfig ( config ) ;
49
+
50
+ Assert . IsTrue ( customConfig . UserSettings . ToDoListSettings . ToDoMarkers . SequenceEqual ( viewModel . TodoSettings ) ) ;
51
+ }
52
+
53
+ [ TestMethod ]
54
+ public void SetDefaultsWorks ( )
55
+ {
56
+ var viewModel = new TodoSettingsViewModel ( GetNondefaultConfig ( ) ) ;
57
+
58
+ var defaultConfig = GetDefaultConfig ( ) ;
59
+ viewModel . SetToDefaults ( defaultConfig ) ;
60
+
61
+ Assert . IsTrue ( defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers . SequenceEqual ( viewModel . TodoSettings ) ) ;
62
+ }
63
+
64
+ [ TestMethod ]
65
+ public void TodoMarkersAreSetInCtor ( )
66
+ {
67
+ var defaultConfig = GetDefaultConfig ( ) ;
68
+ var viewModel = new TodoSettingsViewModel ( defaultConfig ) ;
69
+
70
+ Assert . IsTrue ( defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers . SequenceEqual ( viewModel . TodoSettings ) ) ;
71
+ }
72
+
73
+ [ TestMethod ]
74
+ public void AddTodoMarker ( )
75
+ {
76
+ var defaultConfig = GetDefaultConfig ( ) ;
77
+ var viewModel = new TodoSettingsViewModel ( defaultConfig ) ;
78
+
79
+ viewModel . AddTodoCommand . Execute ( null ) ;
80
+ var todoMarkersList = defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers . ToList ( ) ;
81
+ todoMarkersList . Add ( new ToDoMarker ( "PLACEHOLDER " ) ) ;
82
+
83
+ Assert . IsTrue ( todoMarkersList . SequenceEqual ( viewModel . TodoSettings ) ) ;
84
+ }
85
+
86
+ [ TestMethod ]
87
+ public void DeleteTodoMarker ( )
88
+ {
89
+ var defaultConfig = GetDefaultConfig ( ) ;
90
+ var viewModel = new TodoSettingsViewModel ( defaultConfig ) ;
91
+
92
+ viewModel . DeleteTodoCommand . Execute ( defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers [ 0 ] ) ;
93
+ var todoMarkersList = defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers . ToList ( ) ;
94
+ todoMarkersList . Remove ( defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers [ 0 ] ) ;
95
+
96
+ Assert . IsTrue ( todoMarkersList . SequenceEqual ( viewModel . TodoSettings ) ) ;
97
+ }
98
+
99
+ [ TestMethod ]
100
+ public void AddTodoMarker_ReusesAction ( )
101
+ {
102
+ var defaultConfig = GetDefaultConfig ( ) ;
103
+ var viewModel = new TodoSettingsViewModel ( defaultConfig ) ;
104
+
105
+ viewModel . AddTodoCommand . Execute ( null ) ;
106
+ viewModel . AddTodoCommand . Execute ( null ) ;
107
+ var todoMarkersList = defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers . ToList ( ) ;
108
+ todoMarkersList . Add ( new ToDoMarker ( "PLACEHOLDER " ) ) ;
109
+ todoMarkersList . Add ( new ToDoMarker ( "PLACEHOLDER " ) ) ;
110
+
111
+ Assert . IsTrue ( todoMarkersList . SequenceEqual ( viewModel . TodoSettings ) ) ;
112
+ }
113
+
114
+ [ TestMethod ]
115
+ public void DeleteTodoMarker_ReusesAction ( )
116
+ {
117
+ var defaultConfig = GetDefaultConfig ( ) ;
118
+ var viewModel = new TodoSettingsViewModel ( defaultConfig ) ;
119
+
120
+ viewModel . DeleteTodoCommand . Execute ( defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers [ 0 ] ) ;
121
+ viewModel . DeleteTodoCommand . Execute ( defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers [ 1 ] ) ;
122
+ var todoMarkersList = defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers . ToList ( ) ;
123
+ todoMarkersList . Remove ( defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers [ 0 ] ) ;
124
+ todoMarkersList . Remove ( defaultConfig . UserSettings . ToDoListSettings . ToDoMarkers [ 1 ] ) ;
125
+
126
+ Assert . IsTrue ( todoMarkersList . SequenceEqual ( viewModel . TodoSettings ) ) ;
127
+ }
128
+ }
129
+ }
0 commit comments