Robin Thoni 8 lat temu
rodzic
commit
b60c7b9fa3

+ 2
- 2
server/src/main/java/com/uqac/rthoni/java_rmi/server/executors/WriteExecutor.java Wyświetl plik

@@ -26,12 +26,12 @@ public class WriteExecutor extends AbstractCommandExecutor {
26 26
         Object obj = server.getObject(id);
27 27
         Class objClass = obj.getClass();
28 28
         Field field = objClass.getDeclaredField(fieldName);
29
-        Object typedValue = ReflectionUtil.toObject(field.getDeclaringClass(), value);
29
+        Object typedValue = ReflectionUtil.toObject(field.getType(), value);
30 30
 
31 31
         try {
32 32
             field.set(obj, typedValue);
33 33
         } catch (IllegalAccessException e) {
34
-            Method method = objClass.getDeclaredMethod(methodName, typedValue.getClass());
34
+            Method method = objClass.getDeclaredMethod(methodName, field.getType());
35 35
             method.invoke(obj, typedValue);
36 36
         }
37 37
 

+ 33
- 0
server/src/test/java/com/uqac/rthoni/java_rmi/server/executors/AbstractTest.java Wyświetl plik

@@ -0,0 +1,33 @@
1
+package com.uqac.rthoni.java_rmi.server.executors;
2
+
3
+import com.uqac.rthoni.java_rmi.common.Command;
4
+import com.uqac.rthoni.java_rmi.server.ServerApplication;
5
+
6
+/**
7
+ * Created by robin on 9/16/16.
8
+ */
9
+public abstract class AbstractTest {
10
+
11
+    public String runCommand(ServerApplication app, String str) throws Exception {
12
+        Command command = Command.fromString(str);
13
+        AbstractCommandExecutor executor = app.getExecutor(command);
14
+        return executor.run(command, app);
15
+    }
16
+
17
+    public String runCommands(ServerApplication app, String ...str) throws Exception {
18
+        StringBuilder stringBuilder = new StringBuilder();
19
+        for (String s : str) {
20
+            String res = runCommand(app, s);
21
+            if (res != null) {
22
+                stringBuilder.append(res);
23
+            }
24
+        }
25
+        return stringBuilder.toString();
26
+    }
27
+
28
+    public ServerApplication getServer() throws Exception {
29
+        ServerApplication app = new ServerApplication();
30
+        app.loadExecutors();
31
+        return app;
32
+    }
33
+}

+ 8
- 16
server/src/test/java/com/uqac/rthoni/java_rmi/server/executors/NewInstanceExecutorTest.java Wyświetl plik

@@ -4,40 +4,31 @@ import com.uqac.rthoni.java_rmi.common.Command;
4 4
 import com.uqac.rthoni.java_rmi.server.ServerApplication;
5 5
 import org.junit.Test;
6 6
 
7
+import java.util.Arrays;
8
+
7 9
 import static org.junit.Assert.*;
8 10
 
9 11
 /**
10 12
  * Created by robin on 9/16/16.
11 13
  */
12
-public class NewInstanceExecutorTest {
13
-
14
-    public String runCommand(String str, ServerApplication app) throws Exception {
15
-        Command command = Command.fromString(str);
16
-        AbstractCommandExecutor executor = app.getExecutor(command);
17
-        return executor.run(command, app);
18
-    }
19
-
20
-    public ServerApplication getServer() throws Exception {
21
-        ServerApplication app = new ServerApplication();
22
-        app.loadExecutors();
23
-        return app;
24
-    }
14
+public class NewInstanceExecutorTest extends AbstractTest {
25 15
 
26 16
     @Test
27 17
     public void test1() throws Exception
28 18
     {
29 19
         ServerApplication app = getServer();
30
-        String res = runCommand("creation#com.uqac.rthoni.java_rmi.server.TestDbo#test", app);
20
+        String res = runCommand(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test");
31 21
         assertNull(res);
32 22
         Object obj = app.getObject("test");
33 23
         assertNotNull(obj);
24
+        assertEquals(obj.toString(), "privateString=default_value, privateInt=24, publicInt=42, aPrivateField=0, publicFloat=0.420000, publicDouble=0.125000, publicBool=true");
34 25
     }
35 26
 
36 27
     @Test
37 28
     public void test2() throws Exception
38 29
     {
39 30
         ServerApplication app = getServer();
40
-        String res = runCommand("creation#java.lang.String#mystr", app);
31
+        String res = runCommand(app, "creation#java.lang.String#mystr");
41 32
         assertNull(res);
42 33
         Object obj = app.getObject("mystr");
43 34
         assertNotNull(obj);
@@ -47,7 +38,8 @@ public class NewInstanceExecutorTest {
47 38
     @Test(expected = ClassNotFoundException.class)
48 39
     public void test3() throws Exception
49 40
     {
50
-        runCommand("creation#not_existing_class#myobj", getServer());
41
+        ServerApplication app = getServer();
42
+        runCommand(app, "creation#not_existing_class#myobj");
51 43
     }
52 44
 
53 45
 }

+ 82
- 0
server/src/test/java/com/uqac/rthoni/java_rmi/server/executors/ReadExecutorTest.java Wyświetl plik

@@ -0,0 +1,82 @@
1
+package com.uqac.rthoni.java_rmi.server.executors;
2
+
3
+import com.uqac.rthoni.java_rmi.server.ServerApplication;
4
+import org.junit.Test;
5
+
6
+import static org.junit.Assert.*;
7
+
8
+/**
9
+ * Created by robin on 9/16/16.
10
+ */
11
+public class ReadExecutorTest extends AbstractTest {
12
+
13
+    @Test
14
+    public void test1() throws Exception
15
+    {
16
+        ServerApplication app = getServer();
17
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
18
+                "lecture#test#publicInt");
19
+        assertEquals(res, "42");
20
+    }
21
+
22
+    @Test
23
+    public void test2() throws Exception
24
+    {
25
+        ServerApplication app = getServer();
26
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
27
+                "lecture#test#privateInt");
28
+        assertEquals(res, "24");
29
+    }
30
+
31
+    @Test
32
+    public void test3() throws Exception
33
+    {
34
+        ServerApplication app = getServer();
35
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
36
+                "lecture#test#privateString");
37
+        assertEquals(res, "default_value");
38
+    }
39
+
40
+    @Test(expected = NoSuchMethodException.class)
41
+    public void test4() throws Exception
42
+    {
43
+        ServerApplication app = getServer();
44
+        runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
45
+                "lecture#test#aPrivateField");
46
+    }
47
+
48
+    @Test(expected = NullPointerException.class)
49
+    public void test5() throws Exception
50
+    {
51
+        ServerApplication app = getServer();
52
+        runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
53
+                "lecture#test2#privateString");
54
+    }
55
+
56
+    @Test
57
+    public void test6() throws Exception
58
+    {
59
+        ServerApplication app = getServer();
60
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
61
+                "lecture#test#publicFloat");
62
+        assertEquals(res, "0.42");
63
+    }
64
+
65
+    @Test
66
+    public void test7() throws Exception
67
+    {
68
+        ServerApplication app = getServer();
69
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
70
+                "lecture#test#publicDouble");
71
+        assertEquals(res, "0.125");
72
+    }
73
+
74
+    @Test
75
+    public void test8() throws Exception
76
+    {
77
+        ServerApplication app = getServer();
78
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
79
+                "lecture#test#publicBool");
80
+        assertEquals(res, "true");
81
+    }
82
+}

server/src/main/java/com/uqac/rthoni/java_rmi/server/TestDbo.java → server/src/test/java/com/uqac/rthoni/java_rmi/server/executors/TestDbo.java Wyświetl plik

@@ -1,4 +1,4 @@
1
-package com.uqac.rthoni.java_rmi.server;
1
+package com.uqac.rthoni.java_rmi.server.executors;
2 2
 
3 3
 /**
4 4
  * Created by robin on 9/16/16.
@@ -10,6 +10,14 @@ public class TestDbo {
10 10
 
11 11
     public int publicInt = 42;
12 12
 
13
+    private int aPrivateField = 0;
14
+
15
+    public float publicFloat = 0.42f;
16
+
17
+    public double publicDouble = 0.125f;
18
+
19
+    public boolean publicBool = true;
20
+
13 21
     public String getPrivateString() {
14 22
         return privateString;
15 23
     }
@@ -29,4 +37,15 @@ public class TestDbo {
29 37
     public void setPrivateInteger(Integer privateInt) {
30 38
         this.privateInt = privateInt;
31 39
     }
40
+
41
+    public String getMyself(String str)
42
+    {
43
+        return str;
44
+    }
45
+
46
+    public String toString()
47
+    {
48
+        return String.format("privateString=%s, privateInt=%d, publicInt=%d, aPrivateField=%d, publicFloat=%f, publicDouble=%f, publicBool=%b",
49
+                privateString, privateInt, publicInt, aPrivateField, publicFloat, publicDouble, publicBool);
50
+    }
32 51
 }

+ 77
- 0
server/src/test/java/com/uqac/rthoni/java_rmi/server/executors/WriteExecutorTest.java Wyświetl plik

@@ -0,0 +1,77 @@
1
+package com.uqac.rthoni.java_rmi.server.executors;
2
+
3
+import com.uqac.rthoni.java_rmi.server.ServerApplication;
4
+import org.junit.Test;
5
+
6
+import static org.junit.Assert.*;
7
+
8
+/**
9
+ * Created by robin on 9/16/16.
10
+ */
11
+public class WriteExecutorTest extends AbstractTest {
12
+
13
+    @Test
14
+    public void test1() throws Exception
15
+    {
16
+        ServerApplication app = getServer();
17
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
18
+                "ecriture#test#publicInt#24",
19
+                "lecture#test#publicInt");
20
+        assertEquals(res, "24");
21
+        Object obj = app.getObject("test");
22
+        assertNotNull(obj);
23
+        assertEquals(obj.toString(), "privateString=default_value, privateInt=24, publicInt=24, aPrivateField=0, publicFloat=0.420000, publicDouble=0.125000, publicBool=true");
24
+    }
25
+
26
+    @Test
27
+    public void test2() throws Exception
28
+    {
29
+        ServerApplication app = getServer();
30
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
31
+                "ecriture#test#privateInt#42",
32
+                "lecture#test#privateInt");
33
+        assertEquals(res, "42");
34
+        Object obj = app.getObject("test");
35
+        assertNotNull(obj);
36
+        assertEquals(obj.toString(), "privateString=default_value, privateInt=42, publicInt=42, aPrivateField=0, publicFloat=0.420000, publicDouble=0.125000, publicBool=true");
37
+    }
38
+
39
+    @Test
40
+    public void test3() throws Exception
41
+    {
42
+        ServerApplication app = getServer();
43
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
44
+                "ecriture#test#privateString#a_value",
45
+                "lecture#test#privateString");
46
+        assertEquals(res, "a_value");
47
+        Object obj = app.getObject("test");
48
+        assertNotNull(obj);
49
+        assertEquals(obj.toString(), "privateString=a_value, privateInt=24, publicInt=42, aPrivateField=0, publicFloat=0.420000, publicDouble=0.125000, publicBool=true");
50
+    }
51
+
52
+    @Test
53
+    public void test4() throws Exception
54
+    {
55
+        ServerApplication app = getServer();
56
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
57
+                "ecriture#test#publicFloat#4242.5",
58
+                "lecture#test#publicFloat");
59
+        assertEquals(res, "4242.5");
60
+        Object obj = app.getObject("test");
61
+        assertNotNull(obj);
62
+        assertEquals(obj.toString(), "privateString=default_value, privateInt=24, publicInt=42, aPrivateField=0, publicFloat=4242.500000, publicDouble=0.125000, publicBool=true");
63
+    }
64
+
65
+    @Test
66
+    public void test5() throws Exception
67
+    {
68
+        ServerApplication app = getServer();
69
+        String res = runCommands(app, "creation#com.uqac.rthoni.java_rmi.server.executors.TestDbo#test",
70
+                "ecriture#test#publicBool#false",
71
+                "lecture#test#publicBool");
72
+        assertEquals(res, "false");
73
+        Object obj = app.getObject("test");
74
+        assertNotNull(obj);
75
+        assertEquals(obj.toString(), "privateString=default_value, privateInt=24, publicInt=42, aPrivateField=0, publicFloat=0.420000, publicDouble=0.125000, publicBool=false");
76
+    }
77
+}

+ 3
- 1
uqac-java-rmi.iml Wyświetl plik

@@ -9,10 +9,12 @@
9 9
       <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
10 10
       <excludeFolder url="file://$MODULE_DIR$/target" />
11 11
     </content>
12
+    <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
13
+    <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
12 14
     <orderEntry type="inheritedJdk" />
13 15
     <orderEntry type="sourceFolder" forTests="false" />
16
+    <orderEntry type="module" module-name="server" />
14 17
     <orderEntry type="module" module-name="client" />
15 18
     <orderEntry type="module" module-name="common" />
16
-    <orderEntry type="module" module-name="server" />
17 19
   </component>
18 20
 </module>

Ładowanie…
Anuluj
Zapisz