@@ -314,6 +314,80 @@ func TestClassNameAndExt(t *testing.T) {
314
314
}
315
315
}
316
316
317
+ func TestFileClassType (t * testing.T ) {
318
+ type testData struct {
319
+ isClass bool
320
+ isNormalGox bool
321
+ isProj bool
322
+ fileName string
323
+ classType string
324
+ isTest bool
325
+ found bool
326
+ }
327
+ tests := []* testData {
328
+ {false , false , false , "abc.gop" , "" , false , false },
329
+ {false , false , false , "abc_test.gop" , "" , true , false },
330
+
331
+ {true , true , false , "abc.gox" , "abc" , false , true },
332
+ {true , true , false , "Abc.gox" , "Abc" , false , true },
333
+ {true , true , false , "abc_demo.gox" , "abc" , false , true },
334
+ {true , true , false , "Abc_demo.gox" , "Abc" , false , true },
335
+
336
+ {true , true , false , "main.gox" , "_main" , false , true },
337
+ {true , true , false , "main_demo.gox" , "_main" , false , true },
338
+ {true , true , false , "abc_xtest.gox" , "abc" , false , true },
339
+ {true , true , false , "main_xtest.gox" , "_main" , false , true },
340
+
341
+ {true , true , false , "abc_test.gox" , "case_abc" , true , true },
342
+ {true , true , false , "Abc_test.gox" , "caseAbc" , true , true },
343
+ {true , true , false , "main_test.gox" , "case_main" , true , true },
344
+
345
+ {true , false , false , "get.yap" , "get" , false , true },
346
+ {true , false , false , "get_p_#id.yap" , "get_p_id" , false , true },
347
+ {true , false , true , "main.yap" , "AppV2" , false , true },
348
+
349
+ {true , false , false , "abc_yap.gox" , "abc" , false , true },
350
+ {true , false , false , "Abc_yap.gox" , "Abc" , false , true },
351
+ {true , false , true , "main_yap.gox" , "App" , false , true },
352
+
353
+ {true , false , false , "abc_ytest.gox" , "case_abc" , true , true },
354
+ {true , false , false , "Abc_ytest.gox" , "caseAbc" , true , true },
355
+ {true , false , true , "main_ytest.gox" , "App" , true , true },
356
+ }
357
+ lookupClass := func (ext string ) (c * Project , ok bool ) {
358
+ switch ext {
359
+ case ".yap" :
360
+ return & modfile.Project {
361
+ Ext : ".yap" , Class : "AppV2" ,
362
+ Works : []* modfile.Class {{Ext : ".yap" , Class : "Handler" }},
363
+ PkgPaths : []string {"github.com/goplus/yap" }}, true
364
+ case "_yap.gox" :
365
+ return & modfile.Project {
366
+ Ext : "_yap.gox" , Class : "App" ,
367
+ PkgPaths : []string {"github.com/goplus/yap" }}, true
368
+ case "_ytest.gox" :
369
+ return & modfile.Project {
370
+ Ext : "_ytest.gox" , Class : "App" ,
371
+ Works : []* modfile.Class {{Ext : "_ytest.gox" , Class : "Case" }},
372
+ PkgPaths : []string {"github.com/goplus/yap/ytest" , "testing" }}, true
373
+ }
374
+ return
375
+ }
376
+ for _ , test := range tests {
377
+ f := & ast.File {IsClass : test .isClass , IsNormalGox : test .isNormalGox , IsProj : test .isProj }
378
+ classType , isTest , found := GetFileClassType (f , test .fileName , lookupClass )
379
+ if found != test .found {
380
+ t .Fatalf ("%v found classType want %v, got %v." , test .fileName , test .found , found )
381
+ }
382
+ if isTest != test .isTest {
383
+ t .Fatalf ("%v check classType isTest want %v, got %v." , test .fileName , test .isTest , isTest )
384
+ }
385
+ if classType != test .classType {
386
+ t .Fatalf ("%v getClassType want %v, got %v." , test .fileName , test .classType , classType )
387
+ }
388
+ }
389
+ }
390
+
317
391
func TestErrMultiStarRecv (t * testing.T ) {
318
392
defer func () {
319
393
if e := recover (); e == nil {
0 commit comments