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