@@ -1038,13 +1038,192 @@ public void CompareByType_ReturnsZeroForErrorNodes()
1038
1038
}
1039
1039
1040
1040
[ TestMethod ]
1041
- public void CompareByType_ReturnsFieldBelowSub ( )
1041
+ public void CompareByType_ReturnsEventAboveConst ( )
1042
1042
{
1043
1043
var inputCode =
1044
- @"Public Foo As Boolean
1044
+ @"Public Event Foo(ByVal arg1 As Integer, ByVal arg2 As String)
1045
+ Public Const Bar = 0" ;
1045
1046
1046
- Sub Bar()
1047
- End Sub" ;
1047
+ var builder = new MockVbeBuilder ( ) ;
1048
+ VBComponent component ;
1049
+ var vbe = builder . BuildFromSingleStandardModule ( inputCode , out component ) ;
1050
+ var mockHost = new Mock < IHostApplication > ( ) ;
1051
+ mockHost . SetupAllProperties ( ) ;
1052
+
1053
+ var state = new RubberduckParserState ( ) ;
1054
+ var commands = new List < ICommand > ( ) ;
1055
+
1056
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state , GetDelimiterConfigLoader ( ) ) , state , commands ) ;
1057
+
1058
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1059
+ parser . Parse ( ) ;
1060
+
1061
+ var eventNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Foo" ) ;
1062
+ var constNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Bar = 0" ) ;
1063
+
1064
+ Assert . AreEqual ( - 1 , new CompareByType ( ) . Compare ( eventNode , constNode ) ) ;
1065
+ }
1066
+
1067
+ [ TestMethod ]
1068
+ public void CompareByType_ReturnsConstAboveField ( )
1069
+ {
1070
+ var inputCode =
1071
+ @"Public Const Foo = 0
1072
+ Public Bar As Boolean" ;
1073
+
1074
+ var builder = new MockVbeBuilder ( ) ;
1075
+ VBComponent component ;
1076
+ var vbe = builder . BuildFromSingleStandardModule ( inputCode , out component ) ;
1077
+ var mockHost = new Mock < IHostApplication > ( ) ;
1078
+ mockHost . SetupAllProperties ( ) ;
1079
+
1080
+ var state = new RubberduckParserState ( ) ;
1081
+ var commands = new List < ICommand > ( ) ;
1082
+
1083
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state , GetDelimiterConfigLoader ( ) ) , state , commands ) ;
1084
+
1085
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1086
+ parser . Parse ( ) ;
1087
+
1088
+ var constNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Foo = 0" ) ;
1089
+ var fieldNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Bar" ) ;
1090
+
1091
+ Assert . AreEqual ( - 1 , new CompareByType ( ) . Compare ( constNode , fieldNode ) ) ;
1092
+ }
1093
+
1094
+ [ TestMethod ]
1095
+ public void CompareByType_ReturnsFieldAbovePropertyGet ( )
1096
+ {
1097
+ var inputCode =
1098
+ @"Private Bar As Boolean
1099
+
1100
+ Public Property Get Foo() As Variant
1101
+ End Property
1102
+ " ;
1103
+
1104
+ var builder = new MockVbeBuilder ( ) ;
1105
+ VBComponent component ;
1106
+ var vbe = builder . BuildFromSingleStandardModule ( inputCode , out component ) ;
1107
+ var mockHost = new Mock < IHostApplication > ( ) ;
1108
+ mockHost . SetupAllProperties ( ) ;
1109
+
1110
+ var state = new RubberduckParserState ( ) ;
1111
+ var commands = new List < ICommand > ( ) ;
1112
+
1113
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state , GetDelimiterConfigLoader ( ) ) , state , commands ) ;
1114
+
1115
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1116
+ parser . Parse ( ) ;
1117
+
1118
+ var fieldNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Bar" ) ;
1119
+ var propertyGetNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Foo (Get)" ) ;
1120
+
1121
+ Assert . AreEqual ( - 1 , new CompareByType ( ) . Compare ( fieldNode , propertyGetNode ) ) ;
1122
+ }
1123
+
1124
+ [ TestMethod ]
1125
+ public void CompareByType_ReturnsPropertyGetAbovePropertyLet ( )
1126
+ {
1127
+ var inputCode =
1128
+ @"Public Property Get Foo() As Variant
1129
+ End Property
1130
+
1131
+ Public Property Let Foo(ByVal Value As Variant)
1132
+ End Property
1133
+ " ;
1134
+
1135
+ var builder = new MockVbeBuilder ( ) ;
1136
+ VBComponent component ;
1137
+ var vbe = builder . BuildFromSingleStandardModule ( inputCode , out component ) ;
1138
+ var mockHost = new Mock < IHostApplication > ( ) ;
1139
+ mockHost . SetupAllProperties ( ) ;
1140
+
1141
+ var state = new RubberduckParserState ( ) ;
1142
+ var commands = new List < ICommand > ( ) ;
1143
+
1144
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state , GetDelimiterConfigLoader ( ) ) , state , commands ) ;
1145
+
1146
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1147
+ parser . Parse ( ) ;
1148
+
1149
+ var propertyGetNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Foo (Get)" ) ;
1150
+ var propertyLetNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Foo (Let)" ) ;
1151
+
1152
+ Assert . AreEqual ( - 1 , new CompareByType ( ) . Compare ( propertyGetNode , propertyLetNode ) ) ;
1153
+ }
1154
+
1155
+ [ TestMethod ]
1156
+ public void CompareByType_ReturnsPropertyLetAbovePropertySet ( )
1157
+ {
1158
+ var inputCode =
1159
+ @"Public Property Let Foo(ByVal Value As Variant)
1160
+ End Property
1161
+
1162
+ Public Property Set Foo(ByVal Value As Variant)
1163
+ End Property
1164
+ " ;
1165
+
1166
+ var builder = new MockVbeBuilder ( ) ;
1167
+ VBComponent component ;
1168
+ var vbe = builder . BuildFromSingleStandardModule ( inputCode , out component ) ;
1169
+ var mockHost = new Mock < IHostApplication > ( ) ;
1170
+ mockHost . SetupAllProperties ( ) ;
1171
+
1172
+ var state = new RubberduckParserState ( ) ;
1173
+ var commands = new List < ICommand > ( ) ;
1174
+
1175
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state , GetDelimiterConfigLoader ( ) ) , state , commands ) ;
1176
+
1177
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1178
+ parser . Parse ( ) ;
1179
+
1180
+ var propertyLetNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Foo (Let)" ) ;
1181
+ var propertySetNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Foo (Set)" ) ;
1182
+
1183
+ Assert . AreEqual ( - 1 , new CompareByType ( ) . Compare ( propertyLetNode , propertySetNode ) ) ;
1184
+ }
1185
+
1186
+ [ TestMethod ]
1187
+ public void CompareByType_ReturnsPropertySetAboveFunction ( )
1188
+ {
1189
+ var inputCode =
1190
+ @"Public Property Set Foo(ByVal Value As Variant)
1191
+ End Property
1192
+
1193
+ Public Function Bar() As Boolean
1194
+ End Function
1195
+ " ;
1196
+
1197
+ var builder = new MockVbeBuilder ( ) ;
1198
+ VBComponent component ;
1199
+ var vbe = builder . BuildFromSingleStandardModule ( inputCode , out component ) ;
1200
+ var mockHost = new Mock < IHostApplication > ( ) ;
1201
+ mockHost . SetupAllProperties ( ) ;
1202
+
1203
+ var state = new RubberduckParserState ( ) ;
1204
+ var commands = new List < ICommand > ( ) ;
1205
+
1206
+ var vm = new CodeExplorerViewModel ( new FolderHelper ( state , GetDelimiterConfigLoader ( ) ) , state , commands ) ;
1207
+
1208
+ var parser = MockParser . Create ( vbe . Object , state ) ;
1209
+ parser . Parse ( ) ;
1210
+
1211
+ var propertySetNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Foo (Set)" ) ;
1212
+ var functionNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Bar" ) ;
1213
+
1214
+ Assert . AreEqual ( - 1 , new CompareByType ( ) . Compare ( propertySetNode , functionNode ) ) ;
1215
+ }
1216
+
1217
+ [ TestMethod ]
1218
+ public void CompareByType_ReturnsFunctionAboveSub ( )
1219
+ {
1220
+ var inputCode =
1221
+ @"Public Function Foo() As Boolean
1222
+ End Function
1223
+
1224
+ Public Sub Bar()
1225
+ End Sub
1226
+ " ;
1048
1227
1049
1228
var builder = new MockVbeBuilder ( ) ;
1050
1229
VBComponent component ;
@@ -1060,10 +1239,10 @@ Sub Bar()
1060
1239
var parser = MockParser . Create ( vbe . Object , state ) ;
1061
1240
parser . Parse ( ) ;
1062
1241
1242
+ var functionNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Foo" ) ;
1063
1243
var subNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Bar" ) ;
1064
- var fieldNode = vm . Projects . First ( ) . Items . First ( ) . Items . First ( ) . Items . Single ( s => s . Name == "Foo" ) ;
1065
1244
1066
- Assert . AreEqual ( - 1 , new CompareByType ( ) . Compare ( subNode , fieldNode ) ) ;
1245
+ Assert . AreEqual ( - 1 , new CompareByType ( ) . Compare ( functionNode , subNode ) ) ;
1067
1246
}
1068
1247
1069
1248
[ TestMethod ]
0 commit comments