Skip to content

Commit 33db80d

Browse files
committed
More complete complex class test case.
1 parent cc4b7a3 commit 33db80d

File tree

3 files changed

+180
-12
lines changed

3 files changed

+180
-12
lines changed

Tests/External/Plugins/ASCompletion.Tests/ASCompletion.Tests.csproj

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,6 +178,9 @@
178178
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
179179
</EmbeddedResource>
180180
</ItemGroup>
181+
<ItemGroup>
182+
<Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
183+
</ItemGroup>
181184
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
182185
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
183186
Other similar extension points exist, see Microsoft.Common.targets.

Tests/External/Plugins/ASCompletion.Tests/Model/ASFileParserTests.cs

Lines changed: 158 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -566,7 +566,7 @@ public void ParseFile_Imports()
566566
}
567567
}
568568

569-
[Ignore("Not supported")]
569+
[Ignore("Not supported, for now we hope!")]
570570
public void ParseFile_ImportAliases()
571571
{
572572
using (var resourceFile = new TestFile("ASCompletion.Test_Files.haxe.ImportAliasTest.hx"))
@@ -591,15 +591,167 @@ public void ParseFile_ComplexClass()
591591
Assert.AreEqual("Test", classModel.Name);
592592
Assert.AreEqual(FlagType.Class, classModel.Flags & FlagType.Class);
593593
Assert.AreEqual(2, classModel.LineFrom);
594-
Assert.AreEqual(32, classModel.LineTo);
595-
Assert.AreEqual(13, classModel.Members.Count);
594+
Assert.AreEqual(45, classModel.LineTo);
595+
Assert.AreEqual(14, classModel.Members.Count);
596+
596597
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);
598+
Assert.AreEqual("CONSTANT", memberModel.Name);
599+
var flags = FlagType.Static | FlagType.Variable;
600+
Assert.AreEqual(flags, memberModel.Flags & flags);
600601
Assert.AreEqual(Visibility.Public, memberModel.Access & Visibility.Public);
601602
Assert.AreEqual(4, memberModel.LineFrom);
603+
Assert.AreEqual(4, memberModel.LineTo);
604+
605+
memberModel = classModel.Members[1];
606+
Assert.AreEqual("id", memberModel.Name);
607+
Assert.AreEqual("Int", memberModel.Type);
608+
flags = FlagType.Variable;
609+
Assert.AreEqual(flags, memberModel.Flags & flags);
610+
Assert.AreEqual(Visibility.Public, memberModel.Access & Visibility.Public);
611+
Assert.AreEqual(6, memberModel.LineFrom);
602612
Assert.AreEqual(6, memberModel.LineTo);
613+
614+
memberModel = classModel.Members[2];
615+
Assert.AreEqual("_name", memberModel.Name);
616+
Assert.AreEqual("String", memberModel.Type);
617+
flags = FlagType.Variable;
618+
Assert.AreEqual(flags, memberModel.Flags & flags);
619+
Assert.AreEqual(Visibility.Private, memberModel.Access & Visibility.Private);
620+
Assert.AreEqual(8, memberModel.LineFrom);
621+
Assert.AreEqual(8, memberModel.LineTo);
622+
623+
memberModel = classModel.Members[3];
624+
Assert.AreEqual("ro", memberModel.Name);
625+
Assert.AreEqual("Int", memberModel.Type);
626+
flags = FlagType.Getter;
627+
Assert.AreEqual(flags, memberModel.Flags & flags);
628+
Assert.AreEqual(Visibility.Public, memberModel.Access & Visibility.Public);
629+
Assert.AreEqual(10, memberModel.LineFrom);
630+
Assert.AreEqual(10, memberModel.LineTo);
631+
Assert.AreEqual(2, memberModel.Parameters.Count);
632+
Assert.AreEqual("default", memberModel.Parameters[0].Name);
633+
Assert.AreEqual("null", memberModel.Parameters[1].Name);
634+
635+
memberModel = classModel.Members[4];
636+
Assert.AreEqual("wo", memberModel.Name);
637+
Assert.AreEqual("Int", memberModel.Type);
638+
flags = FlagType.Getter;
639+
Assert.AreEqual(flags, memberModel.Flags & flags);
640+
Assert.AreEqual(Visibility.Public, memberModel.Access & Visibility.Public);
641+
Assert.AreEqual(12, memberModel.LineFrom);
642+
Assert.AreEqual(12, memberModel.LineTo);
643+
Assert.AreEqual(2, memberModel.Parameters.Count);
644+
Assert.AreEqual("null", memberModel.Parameters[0].Name);
645+
Assert.AreEqual("default", memberModel.Parameters[1].Name);
646+
647+
memberModel = classModel.Members[5];
648+
Assert.AreEqual("x", memberModel.Name);
649+
Assert.AreEqual("Int", memberModel.Type);
650+
flags = FlagType.Getter;
651+
Assert.AreEqual(flags, memberModel.Flags & flags);
652+
Assert.AreEqual(Visibility.Public, memberModel.Access & Visibility.Public);
653+
Assert.AreEqual(14, memberModel.LineFrom);
654+
Assert.AreEqual(14, memberModel.LineTo);
655+
Assert.AreEqual(2, memberModel.Parameters.Count);
656+
Assert.AreEqual("get", memberModel.Parameters[0].Name);
657+
Assert.AreEqual("set", memberModel.Parameters[1].Name);
658+
659+
memberModel = classModel.Members[6];
660+
Assert.AreEqual("get_x", memberModel.Name);
661+
Assert.AreEqual(null, memberModel.Type);
662+
flags = FlagType.Function;
663+
Assert.AreEqual(flags, memberModel.Flags & flags);
664+
Assert.AreEqual(Visibility.Private, memberModel.Access & Visibility.Private);
665+
Assert.AreEqual(15, memberModel.LineFrom);
666+
Assert.AreEqual(18, memberModel.LineTo);
667+
Assert.IsNull(memberModel.Parameters);
668+
669+
memberModel = classModel.Members[7];
670+
Assert.AreEqual("set_x", memberModel.Name);
671+
Assert.AreEqual(null, memberModel.Type);
672+
flags = FlagType.Function;
673+
Assert.AreEqual(flags, memberModel.Flags & flags);
674+
Assert.AreEqual(Visibility.Private, memberModel.Access & Visibility.Private);
675+
Assert.AreEqual(19, memberModel.LineFrom);
676+
Assert.AreEqual(22, memberModel.LineTo);
677+
Assert.AreEqual(1, memberModel.Parameters.Count);
678+
Assert.AreEqual("val", memberModel.Parameters[0].Name);
679+
flags = FlagType.ParameterVar;
680+
Assert.AreEqual(flags, memberModel.Parameters[0].Flags & flags);
681+
682+
memberModel = classModel.Members[8];
683+
Assert.AreEqual("y", memberModel.Name);
684+
Assert.AreEqual("Int", memberModel.Type);
685+
flags = FlagType.Getter;
686+
Assert.AreEqual(flags, memberModel.Flags & flags);
687+
Assert.AreEqual(Visibility.Public, memberModel.Access & Visibility.Public);
688+
Assert.AreEqual(24, memberModel.LineFrom);
689+
Assert.AreEqual(24, memberModel.LineTo);
690+
Assert.AreEqual(2, memberModel.Parameters.Count);
691+
Assert.AreEqual("get", memberModel.Parameters[0].Name);
692+
Assert.AreEqual("never", memberModel.Parameters[1].Name);
693+
694+
memberModel = classModel.Members[9];
695+
Assert.AreEqual("get_y", memberModel.Name);
696+
Assert.AreEqual("Int", memberModel.Type);
697+
flags = FlagType.Function;
698+
Assert.AreEqual(flags, memberModel.Flags & flags);
699+
Assert.AreEqual(Visibility.Private, memberModel.Access & Visibility.Private);
700+
Assert.AreEqual(25, memberModel.LineFrom);
701+
Assert.AreEqual(25, memberModel.LineTo);
702+
Assert.IsNull(memberModel.Parameters);
703+
704+
memberModel = classModel.Members[10];
705+
Assert.AreEqual("Test", memberModel.Name);
706+
flags = FlagType.Function | FlagType.Constructor;
707+
Assert.AreEqual(flags, memberModel.Flags & flags);
708+
Assert.AreEqual(Visibility.Public, memberModel.Access & Visibility.Public);
709+
Assert.AreEqual(27, memberModel.LineFrom);
710+
Assert.AreEqual(29, memberModel.LineTo);
711+
Assert.AreEqual(1, memberModel.Parameters.Count);
712+
var param = memberModel.Parameters[0];
713+
Assert.AreEqual("?ds", param.Name);
714+
Assert.AreEqual("Iterable<String>", param.Type);
715+
Assert.AreEqual(FlagType.ParameterVar, param.Flags & FlagType.ParameterVar);
716+
717+
memberModel = classModel.Members[11];
718+
Assert.AreEqual("bar", memberModel.Name);
719+
flags = FlagType.Static | FlagType.Function;
720+
Assert.AreEqual(flags, memberModel.Flags & flags);
721+
Assert.AreEqual(Visibility.Private, memberModel.Access & Visibility.Private);
722+
Assert.AreEqual(31, memberModel.LineFrom);
723+
Assert.AreEqual(33, memberModel.LineTo);
724+
Assert.AreEqual(2, memberModel.Parameters.Count);
725+
param = memberModel.Parameters[0];
726+
Assert.AreEqual("s", param.Name);
727+
Assert.AreEqual("String", param.Type);
728+
Assert.AreEqual(FlagType.ParameterVar, param.Flags & FlagType.ParameterVar);
729+
730+
memberModel = classModel.Members[12];
731+
Assert.AreEqual("foo", memberModel.Name);
732+
flags = FlagType.Function;
733+
Assert.AreEqual(flags, memberModel.Flags & flags);
734+
Assert.AreEqual(Visibility.Public, memberModel.Access & Visibility.Public);
735+
Assert.AreEqual(35, memberModel.LineFrom);
736+
Assert.AreEqual(38, memberModel.LineTo);
737+
Assert.AreEqual(2, memberModel.Parameters.Count);
738+
param = memberModel.Parameters[0];
739+
Assert.AreEqual("?s", param.Name);
740+
Assert.AreEqual("String", param.Type);
741+
Assert.AreEqual(FlagType.ParameterVar, param.Flags & FlagType.ParameterVar);
742+
743+
memberModel = classModel.Members[13];
744+
Assert.AreEqual("boz", memberModel.Name);
745+
flags = FlagType.Function;
746+
Assert.AreEqual(flags, memberModel.Flags & flags);
747+
Assert.AreEqual(Visibility.Public, memberModel.Access & Visibility.Public);
748+
Assert.AreEqual(40, memberModel.LineFrom);
749+
Assert.AreEqual(44, memberModel.LineTo);
750+
Assert.AreEqual(2, memberModel.Parameters.Count);
751+
param = memberModel.Parameters[0];
752+
Assert.AreEqual("?s", param.Name);
753+
Assert.AreEqual("String", param.Type);
754+
Assert.AreEqual(FlagType.ParameterVar, param.Flags & FlagType.ParameterVar);
603755
}
604756
}
605757
}

Tests/External/Plugins/ASCompletion.Tests/Test Files/haxe/ComplexClassTest.hx

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,22 +12,35 @@ class Test
1212

1313
public var wo(null, default):Int;
1414

15-
public var x(get, set):Int;
16-
function get_x() return 1;
17-
function set_x(x) return x;
15+
@:isVar public var x(get, set):Int;
16+
function get_x()
17+
{
18+
return 1;
19+
}
20+
function set_x(val)
21+
{
22+
return x = val;
23+
}
1824

1925
public var y(get, never):Int;
20-
function get_y() return 1;
26+
function get_y():Int return 1;
2127

22-
public function new()
28+
public function new(?ds:Iterable<String>)
2329
{
2430
}
2531

2632
static function bar(s:String, v:Bool):Void
2733
{
2834
}
2935

30-
public function foo(?s:String, ?v:Bool = true):Void
36+
public function foo(?s:String, ?v:Bool = true):Bool
37+
{
38+
return true;
39+
}
40+
41+
public function boz(?s:String,
42+
?v:Bool = true)
3143
{
44+
return true;
3245
}
3346
}

0 commit comments

Comments
 (0)