/
01-hello-world.t
53 lines (43 loc) · 1.04 KB
/
01-hello-world.t
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
use Java::Generate::Class;
use Java::Generate::Expression;
use Java::Generate::JavaMethod;
use Java::Generate::JavaParameter;
use Java::Generate::JavaSignature;
use Java::Generate::Literal;
use Java::Generate::Variable;
use Test;
plan 1;
my $signature = JavaSignature.new(
parameters => JavaParameter.new('args', 'String[]')
);
my $out = StaticVariable.new(
:name<out>,
:type<PrintStream>,
:access<public>,
class => 'System'
);
my $statements = MethodCall.new(
object => $out,
:name<println>,
arguments => StringLiteral.new(value => 'Hello, World')
);
my $hello-method = ClassMethod.new(
:access<public>,
:name<main>,
:$signature, :$statements
:return-type<void>,
modifiers => 'static'
);
my $hello-class = Class.new(
:access<public>,
:name<HelloWorld>,
methods => $hello-method
);
my $java = q:to/END/;
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello, World");
}
}
END
is $hello-class.generate, $java, 'Hello World is generated';