diff --git a/tests/test.java b/tests/test.java
index b5d643a7e86272cdf015b62cdee9009f90166df8..de7737279d7b8c67b51f4c78694a8e77e03c8567 100644
--- a/tests/test.java
+++ b/tests/test.java
@@ -1,6 +1,8 @@
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import sofia_kp.SSAP_sparql_response;
+import sofia_kp.iKPIC_subscribeHandler2;
 import wrapper.SmartSpaceException;
 import wrapper.SmartSpaceKPI;
 import wrapper.SmartSpaceTriple;
@@ -10,15 +12,18 @@ import java.util.Vector;
 /**
  * Created by user on 29.03.16.
  */
-public class test {
+public class test implements iKPIC_subscribeHandler2 {
     static SmartSpaceKPI smartSpaceKPI;
     static SmartSpaceTriple testTriple;
+    static SmartSpaceTriple testTriple2;
+    static Vector<SmartSpaceTriple> result;
     private final static boolean SSOnRouter = true;
 
     @BeforeClass
     public static void connect() {
         String routerHost = "192.168.1.1", PCHost = "192.168.2.101";
         testTriple = new SmartSpaceTriple("testSubject", "testPredicate", "testObject");
+        testTriple2 = new SmartSpaceTriple("testSubject2", "testPredicate2", "testObject2");
         try {
             smartSpaceKPI = new SmartSpaceKPI(SSOnRouter ? routerHost : PCHost, 10010, "x");
         } catch (SmartSpaceException e) {
@@ -63,10 +68,10 @@ public class test {
 
     @Test
     public void removeTest() {
-        Vector<SmartSpaceTriple> result = new Vector<SmartSpaceTriple>();
         if (smartSpaceKPI != null) {
             if (insert(testTriple)) {
                 try {
+                    smartSpaceKPI.remove(new SmartSpaceTriple(null, "commandIs", null));
                     smartSpaceKPI.remove(testTriple);
                     result = smartSpaceKPI.query(testTriple);
                 } catch (SmartSpaceException e) {
@@ -76,4 +81,65 @@ public class test {
             }
         }
     }
+
+    @Test
+    public void subscribeTest() {
+        if (smartSpaceKPI != null) {
+            try {
+                result = new Vector<SmartSpaceTriple>();
+                smartSpaceKPI.subscribe(testTriple, this);
+                if (insert(testTriple)) {
+                    Thread.sleep(2000);
+                    assert result.size() > 0;
+                    assert triplesEquals(result.elementAt(0), testTriple);
+                }
+            } catch (SmartSpaceException e) {
+                e.printStackTrace();
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Test
+    public void unsubscribeTest() {
+        if (smartSpaceKPI != null) {
+            try {
+                result = new Vector<SmartSpaceTriple>();
+                smartSpaceKPI.unsubscribe(testTriple2, true);
+                smartSpaceKPI.subscribe(testTriple2, this);
+                smartSpaceKPI.unsubscribe(testTriple2, true);
+                if (insert(testTriple2)) {
+                    Thread.sleep(2000);
+                    assert result.size() == 0;
+                }
+            } catch (SmartSpaceException e) {
+                e.printStackTrace();
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+        }
+    }
+
+    @Override
+    public void kpic_RDFEventHandler(Vector<Vector<String>> vector, Vector<Vector<String>> vector1, String s, String s1) {
+        result = new Vector<SmartSpaceTriple>();
+        for (Vector<String> tripleVector : vector)
+            result.add(new SmartSpaceTriple(tripleVector.elementAt(0), tripleVector.elementAt(1), tripleVector.elementAt(2)));
+    }
+
+    @Override
+    public void kpic_SPARQLEventHandler(SSAP_sparql_response ssap_sparql_response, SSAP_sparql_response ssap_sparql_response1, String s, String s1) {
+
+    }
+
+    @Override
+    public void kpic_UnsubscribeEventHandler(String s) {
+
+    }
+
+    @Override
+    public void kpic_ExceptionEventHandler(Throwable throwable) {
+
+    }
 }