11using System . Linq ;
22using EnvDTE ;
3- using NUnit . Framework ;
43using EnvDTE80 ;
4+ using NUnit . Framework ;
55
66//using Microsoft.Extensions.Options;
77//using Ploeh.AutoFixture;
@@ -118,5 +118,89 @@ public void _ShouldWorkProperly()
118118 Assert . AreEqual ( false , list [ 0 ] . Properties [ 4 ] . Type . IsOptional ) ;
119119 }
120120
121+ [ Test ]
122+ [ Explicit ( "Can't be run on build server, some problems on build server" ) ]
123+ public void _ShouldWorkProperly2 ( )
124+ {
125+ //Arrange
126+
127+ // get the DTE reference...
128+ DTE2 dte2 = ( DTE2 ) System . Runtime . InteropServices . Marshal . GetActiveObject ( "VisualStudio.DTE.15.0" ) ;
129+
130+
131+ var worker = new SolutionWorker ( ) ;
132+ worker . ExamineSolution ( dte2 . Solution ) ;
133+
134+ ProjectItem item = worker . GetProjectItem ( dte2 . Solution , "SomeClass.cs" ) ;
135+
136+ var expectedFile =
137+ "// ------------------------------------------------------------------------------\n " +
138+ "// <auto-generated>\n " +
139+ "// This file was generated by TypeScript Definition Generator v2.2.0.0\n " +
140+ "// </auto-generated>\n " +
141+ "// ------------------------------------------------------------------------------\n " +
142+ "export interface SomeClass {\n " +
143+ " inc1: number;\n " +
144+ " some: SomeEnum;\n " +
145+ "}\n " ;
146+
147+ //Act
148+ Options . SetOptionsOverrides ( new OptionsOverride ( )
149+ {
150+ CamelCaseEnumerationValues = false ,
151+ CamelCasePropertyNames = true ,
152+ CamelCaseTypeNames = false ,
153+
154+ WebEssentials2015 = false ,
155+
156+ ClassInsteadOfInterface = false ,
157+ DeclareModule = false ,
158+ DefaultModuleName = "Server.Dtos" ,
159+ EOLType = EOLType . LF ,
160+ IgnoreIntellisense = true ,
161+ IndentTab = false ,
162+ IndentTabSize = 2 ,
163+ UseNamespace = true ,
164+ } ) ;
165+ var list = IntellisenseParser . ProcessFile ( item ) . ToList ( ) ;
166+ var tsFile = IntellisenseWriter . WriteTypeScript ( list ) ;
167+
168+ //Assert
169+ Assert . IsNotNull ( list ) ;
170+ Assert . NotZero ( list . Count ) ;
171+ Assert . AreEqual ( "ClassLibrary1.SomeClass" , list [ 0 ] . FullName ) ;
172+ Assert . AreEqual ( "SomeClass" , list [ 0 ] . Name ) ;
173+ Assert . AreEqual ( 2 , list [ 0 ] . Properties . Count ) ;
174+
175+ Assert . AreEqual ( "Inc1" , list [ 0 ] . Properties [ 0 ] . Name ) ;
176+ Assert . AreEqual ( "Inc1" , list [ 0 ] . Properties [ 0 ] . NameWithOption ) ;
177+ Assert . AreEqual ( null , list [ 0 ] . Properties [ 0 ] . InitExpression ) ;
178+ Assert . AreEqual ( null , list [ 0 ] . Properties [ 0 ] . Summary ) ;
179+ Assert . AreEqual ( "int" , list [ 0 ] . Properties [ 0 ] . Type . CodeName ) ;
180+ Assert . AreEqual ( "number" , list [ 0 ] . Properties [ 0 ] . Type . TypeScriptName ) ;
181+ Assert . AreEqual ( "number" , list [ 0 ] . Properties [ 0 ] . Type . TypeScriptName ) ;
182+ Assert . AreEqual ( null , list [ 0 ] . Properties [ 0 ] . Type . ClientSideReferenceName ) ;
183+ Assert . AreEqual ( false , list [ 0 ] . Properties [ 0 ] . Type . IsArray ) ;
184+ Assert . AreEqual ( false , list [ 0 ] . Properties [ 0 ] . Type . IsDictionary ) ;
185+ Assert . AreEqual ( true , list [ 0 ] . Properties [ 0 ] . Type . IsKnownType ) ;
186+ Assert . AreEqual ( false , list [ 0 ] . Properties [ 0 ] . Type . IsOptional ) ;
187+
188+ Assert . AreEqual ( "Some" , list [ 0 ] . Properties [ 1 ] . Name ) ;
189+ Assert . AreEqual ( "Some" , list [ 0 ] . Properties [ 1 ] . NameWithOption ) ;
190+ Assert . AreEqual ( null , list [ 0 ] . Properties [ 1 ] . InitExpression ) ;
191+ Assert . AreEqual ( null , list [ 0 ] . Properties [ 1 ] . Summary ) ;
192+ Assert . AreEqual ( "ClassLibrary1.SomeEnum" , list [ 0 ] . Properties [ 1 ] . Type . CodeName ) ;
193+ Assert . AreEqual ( "SomeEnum" , list [ 0 ] . Properties [ 1 ] . Type . TypeScriptName ) ;
194+ Assert . AreEqual ( "SomeEnum" , list [ 0 ] . Properties [ 1 ] . Type . TypeScriptName ) ;
195+ Assert . AreEqual ( "SomeEnum" , list [ 0 ] . Properties [ 1 ] . Type . ClientSideReferenceName ) ;
196+ Assert . AreEqual ( false , list [ 0 ] . Properties [ 1 ] . Type . IsArray ) ;
197+ Assert . AreEqual ( false , list [ 0 ] . Properties [ 1 ] . Type . IsDictionary ) ;
198+ Assert . AreEqual ( true , list [ 0 ] . Properties [ 1 ] . Type . IsKnownType ) ;
199+ Assert . AreEqual ( false , list [ 0 ] . Properties [ 1 ] . Type . IsOptional ) ;
200+
201+ Assert . AreEqual ( expectedFile , tsFile ) ;
202+
203+ }
204+
121205 }
122206}
0 commit comments