Fix external_objects_java module tests under Linux/Mac OS X
[scilab.git] / scilab / modules / external_objects_java / tests / unit_tests / jcompile.tst
1 //
2 //  Copyright (C) 2013 - S/E - Sylvestre Ledru
3 //
4 //  This file must be used under the terms of the CeCILL.
5 //  This source file is licensed as described in the file COPYING, which
6 //  you should have received as part of this distribution.  The terms
7 //  are also available at
8 //  http://www.cecill.info/licences/Licence_CeCILL_V2-en.txt
9 //
10 //
11 // <-- JVM MANDATORY -->
12 //
13
14 exec("SCI/modules/external_objects_java/tests/unit_tests/ecjclasspath.sce", -1);
15
16 c = jcompile("Test", ["public class Test {";
17 "public int field;";
18 "public Test(int n) {";
19 "field = n;";
20 "}";
21 "}";]);
22 assert_checkequal(jgetclassname(c),"Test");
23
24 t = c.new(128);
25 v = jgetfield(t, "field");
26
27 // or easier
28 //junwraprem(t.field)
29
30 jremove c t v;
31
32
33 fd = mopen(TMPDIR+"/HelloWorld.java","wt");
34 mputl(["public class HelloWorld {"
35 "public static String getHello() {"
36 "return ""Hello World !!"";"
37 "}"
38 "}"],fd);
39 mclose(fd);
40
41 jcompile(TMPDIR+"/HelloWorld.java")
42 jimport HelloWorld;
43 assert_checkequal(HelloWorld.getHello(), "Hello World !!");
44
45 directory=SCI+"/modules/external_objects_java/examples/com/foo/";
46 // Compile of all them
47 jcompile(ls(directory + "/*.java"))
48
49 jimport("com.foo.HouseFactory")
50 house = HouseFactory.basicHouse();
51
52 assert_checkequal(house.toString(), "This is a house painted in white, has a white door, and 1 windows");
53
54 assert_checkequal(jgetclassname(house), "com.foo.House");
55 jimport("com.foo.CircularWindow");
56 newWindow = CircularWindow.new(0.5);
57
58 house.addWindow(newWindow);
59 assert_checkequal(house.toString(), "This is a house painted in white, has a white door, and 2 windows");
60
61 jimport("com.foo.Color");
62
63 jimport("com.foo.Door");
64 newDoor = Door.new(Color.RED);
65 house.replaceDoor(newDoor);
66
67 assert_checkequal(house.toString(), "This is a house painted in white, has a red door, and 2 windows");
68