@@ -9,15 +9,32 @@ open Xunit
99open Naggum.Assembler
1010open Naggum.Assembler .Representation
1111
12- let prepare ( source : string ) =
12+ let checkPreparationResult ( source : string ) ( expected : Assembly list ) =
1313 use stream = new MemoryStream( Encoding.UTF8.GetBytes source)
14- Assembler.prepare " file.ngi" stream
14+ let actual = Assembler.prepare " file.ngi" stream |> Seq.toList
15+
16+ Assert.Equal< Assembly list> ( expected, actual)
1517
1618[<Fact>]
1719let ``Empty assembly should be processed`` () =
1820 let source = " (.assembly Empty)"
1921 let result = { Name = " Empty" ; Units = List.empty }
20- Assert.Equal ([ result], prepare source)
22+ checkPreparationResult source [ result]
23+
24+ [<Fact>]
25+ let ``Simplest method should be processed`` () =
26+ let source = " (.assembly Stub
27+ (.method Main () (.entrypoint)
28+ (ret)))
29+ "
30+ let result =
31+ { Name = " Stub"
32+ Units = [ Method { Metadata = Set.singleton EntryPoint
33+ Visibility = Public
34+ Name = " Main"
35+ ReturnType = typeof< Void>
36+ Body = [ Ret ] } ] }
37+ checkPreparationResult source [ result]
2138
2239[<Fact>]
2340let ``Hello world assembly should be processed`` () =
@@ -36,4 +53,4 @@ let ``Hello world assembly should be processed`` () =
3653 Body = [ Ldstr " Hello, world!"
3754 Call ( typeof< Console>. GetMethod( " WriteLine" , [| typeof< String> |]))
3855 Ret ] } ] }
39- Assert.Equal ( [ result], prepare source )
56+ checkPreparationResult source [ result]
0 commit comments