@@ -416,123 +416,193 @@ public void ParseFile_Generics()
416
416
Assert . AreEqual ( "V" , arg . Type ) ;
417
417
}
418
418
}
419
- }
419
+ [ Ignore ( "Easy fix, to add" ) ]
420
+ public void ParseFile_GenericsWithObjectConstraints ( )
421
+ {
422
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.GenericsObjectConstraintTest.hx" ) )
423
+ {
424
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
425
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
426
+ var model = ASFileParser . ParseFile ( srcModel ) ;
427
+ Assert . AreEqual ( 2 , model . Classes . Count ) ;
420
428
421
- [ Ignore ( "Easy fix, to add" ) ]
422
- public void ParseFile_GenericsWithObjectConstraints ( )
423
- {
424
- using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.GenericsObjectConstraintTest.hx" ) )
429
+ var objectConstraintGeneric = model . Classes [ 0 ] ;
430
+ Assert . AreEqual ( 2 , objectConstraintGeneric . LineFrom ) ;
431
+ Assert . AreEqual ( 11 , objectConstraintGeneric . LineTo ) ;
432
+ Assert . AreEqual ( FlagType . Class , objectConstraintGeneric . Flags & FlagType . Class ) ;
433
+ Assert . AreEqual ( "TestObjectConstraint<T:({},Measurable)>" , objectConstraintGeneric . FullName ) ;
434
+ Assert . AreEqual ( "TestObjectConstraint" , objectConstraintGeneric . Name ) ;
435
+ Assert . AreEqual ( "<T:({},Measurable)>" , objectConstraintGeneric . Template ) ;
436
+ Assert . AreEqual ( 2 , objectConstraintGeneric . Members . Count ) ;
437
+ var member = objectConstraintGeneric . Members [ 0 ] ;
438
+ Assert . AreEqual ( "test1" , member . Name ) ;
439
+ Assert . AreEqual ( 4 , member . LineFrom ) ;
440
+ Assert . AreEqual ( 6 , member . LineTo ) ;
441
+ Assert . AreEqual ( "T" , member . Type ) ;
442
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
443
+ Assert . AreEqual ( 2 , member . Parameters . Count ) ;
444
+ var arg = member . Parameters [ 0 ] ;
445
+ Assert . AreEqual ( "expected" , arg . Name ) ;
446
+ Assert . AreEqual ( "T" , arg . Type ) ;
447
+ arg = member . Parameters [ 1 ] ;
448
+ Assert . AreEqual ( "actual" , arg . Name ) ;
449
+ Assert . AreEqual ( "T" , arg . Type ) ;
450
+ member = objectConstraintGeneric . Members [ 1 ] ;
451
+ Assert . AreEqual ( "test2<K:({},Measurable)>" , member . FullName ) ;
452
+ Assert . AreEqual ( "test2" , member . Name ) ;
453
+ Assert . AreEqual ( "<K:({},Measurable)>" , member . Template ) ;
454
+ Assert . AreEqual ( 8 , member . LineFrom ) ;
455
+ Assert . AreEqual ( 10 , member . LineTo ) ;
456
+ Assert . AreEqual ( "K" , member . Type ) ;
457
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
458
+ arg = member . Parameters [ 0 ] ;
459
+ Assert . AreEqual ( "expected" , arg . Name ) ;
460
+ Assert . AreEqual ( "K" , arg . Type ) ;
461
+ arg = member . Parameters [ 1 ] ;
462
+ Assert . AreEqual ( "actual" , arg . Name ) ;
463
+ Assert . AreEqual ( "K" , arg . Type ) ;
464
+ var simpleGeneric = model . Classes [ 0 ] ;
465
+ Assert . AreEqual ( 2 , simpleGeneric . LineFrom ) ;
466
+ Assert . AreEqual ( 11 , simpleGeneric . LineTo ) ;
467
+ Assert . AreEqual ( FlagType . Class , simpleGeneric . Flags & FlagType . Class ) ;
468
+ Assert . AreEqual ( "Test<T>" , simpleGeneric . FullName ) ;
469
+ Assert . AreEqual ( "Test" , simpleGeneric . Name ) ;
470
+ Assert . AreEqual ( "<T>" , simpleGeneric . Template ) ;
471
+ Assert . AreEqual ( 2 , simpleGeneric . Members . Count ) ;
472
+
473
+ var fullConstraintGeneric = model . Classes [ 1 ] ;
474
+ Assert . AreEqual ( 13 , fullConstraintGeneric . LineFrom ) ;
475
+ Assert . AreEqual ( 22 , fullConstraintGeneric . LineTo ) ;
476
+ Assert . AreEqual ( FlagType . Class , fullConstraintGeneric . Flags & FlagType . Class ) ;
477
+ Assert . AreEqual ( "TestFullConstraint<T:({},Measurable),Z:(Iterable<String>,Measurable)>" , fullConstraintGeneric . FullName ) ;
478
+ Assert . AreEqual ( "TestFullConstraint" , fullConstraintGeneric . Name ) ;
479
+ Assert . AreEqual ( "<T:({},Measurable),Z:(Iterable<String>,Measurable)>" , fullConstraintGeneric . Template ) ;
480
+ Assert . AreEqual ( 2 , fullConstraintGeneric . Members . Count ) ;
481
+ member = fullConstraintGeneric . Members [ 0 ] ;
482
+ Assert . AreEqual ( "test1" , member . Name ) ;
483
+ Assert . AreEqual ( 15 , member . LineFrom ) ;
484
+ Assert . AreEqual ( 17 , member . LineTo ) ;
485
+ Assert . AreEqual ( "T" , member . Type ) ;
486
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
487
+ Assert . AreEqual ( 2 , member . Parameters . Count ) ;
488
+ arg = member . Parameters [ 0 ] ;
489
+ Assert . AreEqual ( "expected" , arg . Name ) ;
490
+ Assert . AreEqual ( "T" , arg . Type ) ;
491
+ arg = member . Parameters [ 1 ] ;
492
+ Assert . AreEqual ( "actual" , arg . Name ) ;
493
+ Assert . AreEqual ( "Z" , arg . Type ) ;
494
+ member = fullConstraintGeneric . Members [ 1 ] ;
495
+ Assert . AreEqual ( "test2<K:({},Measurable),V:(Iterable<String>,Measurable)>" , member . FullName ) ;
496
+ Assert . AreEqual ( "test2" , member . Name ) ;
497
+ Assert . AreEqual ( "<K:({},Measurable),V:(Iterable<String>,Measurable)>" , member . Template ) ;
498
+ Assert . AreEqual ( 19 , member . LineFrom ) ;
499
+ Assert . AreEqual ( 21 , member . LineTo ) ;
500
+ Assert . AreEqual ( "K" , member . Type ) ;
501
+ Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
502
+ arg = member . Parameters [ 0 ] ;
503
+ Assert . AreEqual ( "expected" , arg . Name ) ;
504
+ Assert . AreEqual ( "K" , arg . Type ) ;
505
+ arg = member . Parameters [ 1 ] ;
506
+ Assert . AreEqual ( "actual" , arg . Name ) ;
507
+ Assert . AreEqual ( "V" , arg . Type ) ;
508
+ }
509
+ }
510
+
511
+ [ Test ( Description = "PR 680" ) ]
512
+ public void ParseFile_RegExLiterals ( )
425
513
{
426
- var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
427
- srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
428
- var model = ASFileParser . ParseFile ( srcModel ) ;
429
- Assert . AreEqual ( 2 , model . Classes . Count ) ;
430
-
431
- var objectConstraintGeneric = model . Classes [ 0 ] ;
432
- Assert . AreEqual ( 2 , objectConstraintGeneric . LineFrom ) ;
433
- Assert . AreEqual ( 11 , objectConstraintGeneric . LineTo ) ;
434
- Assert . AreEqual ( FlagType . Class , objectConstraintGeneric . Flags & FlagType . Class ) ;
435
- Assert . AreEqual ( "TestObjectConstraint<T:({},Measurable)>" , objectConstraintGeneric . FullName ) ;
436
- Assert . AreEqual ( "TestObjectConstraint" , objectConstraintGeneric . Name ) ;
437
- Assert . AreEqual ( "<T:({},Measurable)>" , objectConstraintGeneric . Template ) ;
438
- Assert . AreEqual ( 2 , objectConstraintGeneric . Members . Count ) ;
439
- var member = objectConstraintGeneric . Members [ 0 ] ;
440
- Assert . AreEqual ( "test1" , member . Name ) ;
441
- Assert . AreEqual ( 4 , member . LineFrom ) ;
442
- Assert . AreEqual ( 6 , member . LineTo ) ;
443
- Assert . AreEqual ( "T" , member . Type ) ;
444
- Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
445
- Assert . AreEqual ( 2 , member . Parameters . Count ) ;
446
- var arg = member . Parameters [ 0 ] ;
447
- Assert . AreEqual ( "expected" , arg . Name ) ;
448
- Assert . AreEqual ( "T" , arg . Type ) ;
449
- arg = member . Parameters [ 1 ] ;
450
- Assert . AreEqual ( "actual" , arg . Name ) ;
451
- Assert . AreEqual ( "T" , arg . Type ) ;
452
- member = objectConstraintGeneric . Members [ 1 ] ;
453
- Assert . AreEqual ( "test2<K:({},Measurable)>" , member . FullName ) ;
454
- Assert . AreEqual ( "test2" , member . Name ) ;
455
- Assert . AreEqual ( "<K:({},Measurable)>" , member . Template ) ;
456
- Assert . AreEqual ( 8 , member . LineFrom ) ;
457
- Assert . AreEqual ( 10 , member . LineTo ) ;
458
- Assert . AreEqual ( "K" , member . Type ) ;
459
- Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
460
- arg = member . Parameters [ 0 ] ;
461
- Assert . AreEqual ( "expected" , arg . Name ) ;
462
- Assert . AreEqual ( "K" , arg . Type ) ;
463
- arg = member . Parameters [ 1 ] ;
464
- Assert . AreEqual ( "actual" , arg . Name ) ;
465
- Assert . AreEqual ( "K" , arg . Type ) ;
466
- var simpleGeneric = model . Classes [ 0 ] ;
467
- Assert . AreEqual ( 2 , simpleGeneric . LineFrom ) ;
468
- Assert . AreEqual ( 11 , simpleGeneric . LineTo ) ;
469
- Assert . AreEqual ( FlagType . Class , simpleGeneric . Flags & FlagType . Class ) ;
470
- Assert . AreEqual ( "Test<T>" , simpleGeneric . FullName ) ;
471
- Assert . AreEqual ( "Test" , simpleGeneric . Name ) ;
472
- Assert . AreEqual ( "<T>" , simpleGeneric . Template ) ;
473
- Assert . AreEqual ( 2 , simpleGeneric . Members . Count ) ;
474
-
475
- var fullConstraintGeneric = model . Classes [ 1 ] ;
476
- Assert . AreEqual ( 13 , fullConstraintGeneric . LineFrom ) ;
477
- Assert . AreEqual ( 22 , fullConstraintGeneric . LineTo ) ;
478
- Assert . AreEqual ( FlagType . Class , fullConstraintGeneric . Flags & FlagType . Class ) ;
479
- Assert . AreEqual ( "TestFullConstraint<T:({},Measurable),Z:(Iterable<String>,Measurable)>" , fullConstraintGeneric . FullName ) ;
480
- Assert . AreEqual ( "TestFullConstraint" , fullConstraintGeneric . Name ) ;
481
- Assert . AreEqual ( "<T:({},Measurable),Z:(Iterable<String>,Measurable)>" , fullConstraintGeneric . Template ) ;
482
- Assert . AreEqual ( 2 , fullConstraintGeneric . Members . Count ) ;
483
- member = fullConstraintGeneric . Members [ 0 ] ;
484
- Assert . AreEqual ( "test1" , member . Name ) ;
485
- Assert . AreEqual ( 15 , member . LineFrom ) ;
486
- Assert . AreEqual ( 17 , member . LineTo ) ;
487
- Assert . AreEqual ( "T" , member . Type ) ;
488
- Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
489
- Assert . AreEqual ( 2 , member . Parameters . Count ) ;
490
- arg = member . Parameters [ 0 ] ;
491
- Assert . AreEqual ( "expected" , arg . Name ) ;
492
- Assert . AreEqual ( "T" , arg . Type ) ;
493
- arg = member . Parameters [ 1 ] ;
494
- Assert . AreEqual ( "actual" , arg . Name ) ;
495
- Assert . AreEqual ( "Z" , arg . Type ) ;
496
- member = fullConstraintGeneric . Members [ 1 ] ;
497
- Assert . AreEqual ( "test2<K:({},Measurable),V:(Iterable<String>,Measurable)>" , member . FullName ) ;
498
- Assert . AreEqual ( "test2" , member . Name ) ;
499
- Assert . AreEqual ( "<K:({},Measurable),V:(Iterable<String>,Measurable)>" , member . Template ) ;
500
- Assert . AreEqual ( 19 , member . LineFrom ) ;
501
- Assert . AreEqual ( 21 , member . LineTo ) ;
502
- Assert . AreEqual ( "K" , member . Type ) ;
503
- Assert . AreEqual ( FlagType . Function , member . Flags & FlagType . Function ) ;
504
- arg = member . Parameters [ 0 ] ;
505
- Assert . AreEqual ( "expected" , arg . Name ) ;
506
- Assert . AreEqual ( "K" , arg . Type ) ;
507
- arg = member . Parameters [ 1 ] ;
508
- Assert . AreEqual ( "actual" , arg . Name ) ;
509
- Assert . AreEqual ( "V" , arg . Type ) ;
514
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.RegExTest.hx" ) )
515
+ {
516
+ var plugin = Substitute . For < PluginMain > ( ) ;
517
+ plugin . MenuItems . Returns ( new List < ToolStripItem > ( ) ) ;
518
+ var context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
519
+ Context . ASContext . GlobalInit ( plugin ) ;
520
+ Context . ASContext . Context = context ;
521
+ var model = context . GetCodeModel ( File . ReadAllText ( resourceFile . DestinationFile ) ) ;
522
+
523
+ Assert . AreEqual ( 4 , model . Members . Count ) ; // First member = function itself
524
+
525
+ var regExMember = model . Members [ 1 ] ;
526
+ Assert . AreEqual ( "regExInArray" , regExMember . Name ) ;
527
+ Assert . AreEqual ( "Array<EReg>" , regExMember . Type ) ;
528
+ regExMember = model . Members [ 2 ] ;
529
+ Assert . AreEqual ( "regExInObject" , regExMember . Name ) ;
530
+ regExMember = model . Members [ 3 ] ;
531
+ Assert . AreEqual ( "regEx" , regExMember . Name ) ;
532
+ Assert . AreEqual ( "EReg" , regExMember . Type ) ;
533
+ }
510
534
}
511
- }
512
535
513
- [ Test ( Description = "PR 680" ) ]
514
- public void ParseFile_RegExLiterals ( )
515
- {
516
- using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.RegExTest.hx" ) )
536
+ [ Test ]
537
+ public void ParseFile_Imports ( )
538
+ {
539
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.ImportTest.hx" ) )
540
+ {
541
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
542
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
543
+ var model = ASFileParser . ParseFile ( srcModel ) ;
544
+
545
+ Assert . AreEqual ( 4 , model . Imports . Count ) ; // import * ignored
546
+
547
+ var import = model . Imports [ 0 ] ;
548
+ Assert . AreEqual ( FlagType . Class , import . Flags & FlagType . Class ) ;
549
+ Assert . AreEqual ( "Test" , import . Name ) ;
550
+ Assert . AreEqual ( "package1.Test" , import . Type ) ;
551
+
552
+ import = model . Imports [ 1 ] ;
553
+ Assert . AreEqual ( FlagType . Package , import . Flags & FlagType . Package ) ;
554
+ Assert . AreEqual ( "*" , import . Name ) ;
555
+ Assert . AreEqual ( "package1.subpackage1.*" , import . Type ) ;
556
+
557
+ import = model . Imports [ 2 ] ;
558
+ Assert . AreEqual ( FlagType . Package , import . Flags & FlagType . Package ) ;
559
+ Assert . AreEqual ( "*" , import . Name ) ;
560
+ Assert . AreEqual ( "package2.*" , import . Type ) ;
561
+
562
+ import = model . Imports [ 3 ] ;
563
+ Assert . AreEqual ( FlagType . Class , import . Flags & FlagType . Class ) ;
564
+ Assert . AreEqual ( "Test" , import . Name ) ;
565
+ Assert . AreEqual ( "package2.subpackage1.Test" , import . Type ) ;
566
+ }
567
+ }
568
+
569
+ [ Ignore ( "Not supported" ) ]
570
+ public void ParseFile_ImportAliases ( )
571
+ {
572
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.ImportAliasTest.hx" ) )
573
+ {
574
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
575
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
576
+ var model = ASFileParser . ParseFile ( srcModel ) ;
577
+
578
+ Assert . AreEqual ( 2 , model . Imports . Count ) ;
579
+ }
580
+ }
581
+
582
+ [ Test ]
583
+ public void ParseFile_ComplexClass ( )
517
584
{
518
- var plugin = Substitute . For < PluginMain > ( ) ;
519
- plugin . MenuItems . Returns ( new List < ToolStripItem > ( ) ) ;
520
- var context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
521
- Context . ASContext . GlobalInit ( plugin ) ;
522
- Context . ASContext . Context = context ;
523
- var model = context . GetCodeModel ( File . ReadAllText ( resourceFile . DestinationFile ) ) ;
524
-
525
- Assert . AreEqual ( 4 , model . Members . Count ) ; // First member = function itself
526
-
527
- var regExMember = model . Members [ 1 ] ;
528
- Assert . AreEqual ( "regExInArray" , regExMember . Name ) ;
529
- Assert . AreEqual ( "Array<EReg>" , regExMember . Type ) ;
530
- regExMember = model . Members [ 2 ] ;
531
- Assert . AreEqual ( "regExInObject" , regExMember . Name ) ;
532
- regExMember = model . Members [ 3 ] ;
533
- Assert . AreEqual ( "regEx" , regExMember . Name ) ;
534
- Assert . AreEqual ( "EReg" , regExMember . Type ) ;
585
+ using ( var resourceFile = new TestFile ( "ASCompletion.Test_Files.haxe.ComplexClassTest.hx" ) )
586
+ {
587
+ var srcModel = new FileModel ( resourceFile . DestinationFile ) ;
588
+ srcModel . Context = new HaXeContext . Context ( new HaXeContext . HaXeSettings ( ) ) ;
589
+ var model = ASFileParser . ParseFile ( srcModel ) ;
590
+ var classModel = model . Classes [ 0 ] ;
591
+ Assert . AreEqual ( "Test" , classModel . Name ) ;
592
+ Assert . AreEqual ( FlagType . Class , classModel . Flags & FlagType . Class ) ;
593
+ Assert . AreEqual ( 2 , classModel . LineFrom ) ;
594
+ Assert . AreEqual ( 32 , classModel . LineTo ) ;
595
+ Assert . AreEqual ( 13 , classModel . Members . Count ) ;
596
+ var memberModel = classModel . Members [ 0 ] ;
597
+ Assert . AreEqual ( "Test" , memberModel . Name ) ;
598
+ Assert . AreEqual ( FlagType . Function , memberModel . Flags & FlagType . Function ) ;
599
+ Assert . AreEqual ( FlagType . Constructor , memberModel . Flags & FlagType . Constructor ) ;
600
+ Assert . AreEqual ( Visibility . Public , memberModel . Access & Visibility . Public ) ;
601
+ Assert . AreEqual ( 4 , memberModel . LineFrom ) ;
602
+ Assert . AreEqual ( 6 , memberModel . LineTo ) ;
603
+ }
535
604
}
536
605
}
606
+
537
607
}
538
608
}
0 commit comments