/src/EditorFeatures/VisualBasicTest/Recommendations/Declarations/EndBlockKeywordRecommenderTests.vb

https://gitlab.com/sharadag/TestProject2 · Visual Basic · 279 lines · 242 code · 36 blank · 1 comment · 0 complexity · 9b5b5fecdefdb7d26767e241e6ab0746 MD5 · raw file

  1. ' Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
  2. Imports Microsoft.CodeAnalysis.Text
  3. Imports Microsoft.CodeAnalysis.VisualBasic
  4. Imports Microsoft.CodeAnalysis.VisualBasic.Symbols
  5. Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
  6. Imports Roslyn.Test.Utilities
  7. Imports Xunit
  8. Namespace Microsoft.CodeAnalysis.Editor.VisualBasic.UnitTests.Recommendations.Declarations
  9. Public Class EndBlockKeywordRecommenderTests
  10. <Fact>
  11. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  12. Public Sub EndSubInBrokenMethodBody()
  13. VerifyRecommendationsContain(<ClassDeclaration>Sub Foo()
  14. |</ClassDeclaration>, "End Sub")
  15. End Sub
  16. <Fact>
  17. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  18. Public Sub NotAfterCompletedMethodBody()
  19. VerifyRecommendationsMissing(<ClassDeclaration>
  20. Sub Foo()
  21. End Sub
  22. |</ClassDeclaration>, "End")
  23. End Sub
  24. <Fact>
  25. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  26. Public Sub NotAfterMustOverrideMethodDeclaration1()
  27. VerifyRecommendationsMissing(<ClassDeclaration>
  28. MustOverride Sub Foo()
  29. |</ClassDeclaration>, "End")
  30. End Sub
  31. <Fact>
  32. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  33. Public Sub NotAfterMustOverrideMethodDeclaration2()
  34. VerifyRecommendationsMissing(<ClassDeclaration>
  35. MustOverride Sub Foo()
  36. |</ClassDeclaration>, "End Sub")
  37. End Sub
  38. <Fact>
  39. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  40. Public Sub EndPropertyAfterIncompleteProperty1()
  41. VerifyRecommendationsContain(<ClassDeclaration>Property foo As Integer
  42. Get
  43. End Get
  44. Set(value As Integer)
  45. End Set
  46. |</ClassDeclaration>, "End Property")
  47. End Sub
  48. <Fact>
  49. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  50. Public Sub EndPropertyAfterIncompleteProperty2()
  51. VerifyRecommendationsContain(<ClassDeclaration>Property foo As Integer
  52. Get
  53. End Get
  54. Set(value As Integer)
  55. End Set
  56. End |</ClassDeclaration>, "Property")
  57. End Sub
  58. <Fact>
  59. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  60. Public Sub EndSubInLambda()
  61. VerifyRecommendationsContain(<MethodBody>Dim foo = Sub()
  62. |</MethodBody>, "End Sub")
  63. End Sub
  64. <Fact>
  65. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  66. Public Sub EndIfInMethodBody1()
  67. VerifyRecommendationsContain(<MethodBody>If True Then
  68. |</MethodBody>, "End", "End If")
  69. End Sub
  70. <Fact>
  71. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  72. Public Sub EndIfInMethodBody2()
  73. VerifyRecommendationsContain(<MethodBody>If True Then
  74. End |</MethodBody>, "If")
  75. End Sub
  76. <Fact>
  77. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  78. Public Sub EndWithInMethodBody()
  79. VerifyRecommendationsContain(<MethodBody>With foo
  80. |</MethodBody>, "End With")
  81. End Sub
  82. <Fact>
  83. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  84. Public Sub EndWhileInMethodBody()
  85. VerifyRecommendationsContain(<MethodBody>While foo
  86. |</MethodBody>, "End While")
  87. End Sub
  88. <Fact>
  89. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  90. Public Sub EndSelectInMethodBody1()
  91. VerifyRecommendationsContain(<MethodBody>Select foo
  92. |</MethodBody>, "End Select")
  93. End Sub
  94. <Fact>
  95. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  96. Public Sub EndSelectInMethodBody2()
  97. VerifyRecommendationsContain(<MethodBody>Select foo
  98. Case 1
  99. |</MethodBody>, "End Select")
  100. End Sub
  101. <Fact>
  102. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  103. Public Sub EndSelectInMethodBody3()
  104. VerifyRecommendationsContain(<MethodBody>Select foo
  105. Case 1
  106. Case Else
  107. |</MethodBody>, "End Select")
  108. End Sub
  109. <Fact>
  110. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  111. Public Sub EndSyncLockInMethodBody()
  112. VerifyRecommendationsContain(<MethodBody>SyncLock foo
  113. |</MethodBody>, "End SyncLock")
  114. End Sub
  115. <Fact>
  116. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  117. Public Sub EndModuleInFile1()
  118. VerifyRecommendationsContain(<File>Module Foo
  119. |</File>, {"End Module"})
  120. End Sub
  121. <Fact>
  122. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  123. Public Sub EndModuleInFile2()
  124. VerifyRecommendationsContain(<File>
  125. Module Foo
  126. End |</File>, "Module")
  127. End Sub
  128. <Fact>
  129. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  130. Public Sub EndInterfaceInFile1()
  131. VerifyRecommendationsContain(<File>Interface IFoo
  132. |</File>, {"End Interface"})
  133. End Sub
  134. <Fact>
  135. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  136. Public Sub EndInterfaceInFile2()
  137. VerifyRecommendationsContain(<File>
  138. Interface IFoo
  139. End |</File>, "Interface")
  140. End Sub
  141. <Fact>
  142. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  143. Public Sub EndClassInFile1()
  144. VerifyRecommendationsContain(<File>Class Foo
  145. |</File>, {"End Class"})
  146. End Sub
  147. <Fact>
  148. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  149. Public Sub EndClassInFile2()
  150. VerifyRecommendationsContain(<File>
  151. Class Foo
  152. End |</File>, "Class")
  153. End Sub
  154. <Fact>
  155. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  156. Public Sub EndStructureInFile1()
  157. VerifyRecommendationsContain(<File>Structure Foo
  158. |</File>, {"End Structure"})
  159. End Sub
  160. <Fact>
  161. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  162. Public Sub EndStructureInFile2()
  163. VerifyRecommendationsContain(<File>
  164. Structure Foo
  165. End |</File>, "Structure")
  166. End Sub
  167. <Fact>
  168. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  169. Public Sub EndEnumInFile1()
  170. VerifyRecommendationsContain(<File>Enum Foo
  171. |</File>, {"End Enum"})
  172. End Sub
  173. <Fact>
  174. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  175. Public Sub EndEnumInFile2()
  176. VerifyRecommendationsContain(<File>
  177. Enum Foo
  178. End |</File>, "Enum")
  179. End Sub
  180. <WorkItem(539311)>
  181. <Fact>
  182. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  183. Public Sub EndBlockMissingInPreprocessor()
  184. VerifyRecommendationsMissing(
  185. <ClassDeclaration>
  186. Module M
  187. Sub Foo()
  188. #If t|
  189. End Sub
  190. End Module
  191. </ClassDeclaration>, {"End Module", "End Sub"})
  192. End Sub
  193. <WorkItem(540069)>
  194. <Fact>
  195. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  196. Public Sub EndSubSuggestFunction()
  197. VerifyRecommendationsContain(<ClassDeclaration>Sub Foo()
  198. End |</ClassDeclaration>, "Function", "Sub")
  199. End Sub
  200. <WorkItem(540069)>
  201. <WorkItem(530599)>
  202. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  203. Public Sub EndFunctionDoesNotSuggestEndSub()
  204. VerifyRecommendationsMissing(<ClassDeclaration>Function Foo()
  205. |</ClassDeclaration>, "End Sub")
  206. End Sub
  207. <WorkItem(540069)>
  208. <Fact>
  209. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  210. Public Sub EndFunctionSuggestSub()
  211. VerifyRecommendationsContain(<ClassDeclaration>Function Foo()
  212. End |</ClassDeclaration>, "Function", "Sub")
  213. End Sub
  214. <WorkItem(540069)>
  215. <Fact>
  216. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  217. Public Sub EndSubNotClassSuggested()
  218. VerifyRecommendationsMissing(<ClassDeclaration>Sub Foo()
  219. |</ClassDeclaration>, "End Class", "End Module", "End Structure", "End Interface")
  220. End Sub
  221. <WorkItem(969097)>
  222. <Fact>
  223. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  224. Public Sub EndClassPairings()
  225. VerifyRecommendationsMissing(<File>Class Foo()
  226. End |</File>, "Module", "Interface", "Structure")
  227. End Sub
  228. <WorkItem(969097)>
  229. <Fact>
  230. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  231. Public Sub EndModulePairings()
  232. VerifyRecommendationsMissing(<File>Module Foo()
  233. End |</File>, "Class", "Interface", "Structure")
  234. End Sub
  235. <WorkItem(540069)>
  236. <Fact>
  237. <Trait(Traits.Feature, Traits.Features.KeywordRecommending)>
  238. Public Sub EndModuleNotSubSuggested()
  239. VerifyRecommendationsMissing(<File>Module Foo()
  240. |</File>, "End Sub", "End Function")
  241. End Sub
  242. End Class
  243. End Namespace