diff --git a/src/test/java/api/test/rest/RestGeneralStepDefinitions.java b/src/test/java/api/test/rest/RestGeneralStepDefinitions.java
index 8db36496ba01f20ada4758d24c302dcc9c8510a2..ee4e6adab8500f2194012ca867ac2c1a1dc98723 100644
--- a/src/test/java/api/test/rest/RestGeneralStepDefinitions.java
+++ b/src/test/java/api/test/rest/RestGeneralStepDefinitions.java
@@ -79,7 +79,6 @@ public class RestGeneralStepDefinitions extends BaseStepDefinitions {
                     profileName)
                     , RestGeneralStepDefinitions.class);
         }
-
     }
 
     @Then("^the response is valid according to the \\{(.*?)\\} REST schema$")
diff --git a/src/test/java/api/test/rest/tsa/policy/PolicyStepDefinitions.java b/src/test/java/api/test/rest/tsa/policy/PolicyStepDefinitions.java
index c2ab4532826d4b96d6886c92c5e3ea23386e4b31..ce0af623c209c42670fb581e53c8c7ae57e1fcb9 100644
--- a/src/test/java/api/test/rest/tsa/policy/PolicyStepDefinitions.java
+++ b/src/test/java/api/test/rest/tsa/policy/PolicyStepDefinitions.java
@@ -20,10 +20,12 @@ package api.test.rest.tsa.policy;
 import api.test.core.BaseStepDefinitions;
 import api.test.rest.RestGeneralStepDefinitions;
 import api.test.rest.RestSessionContainer;
+import com.mongodb.MongoException;
 import com.mongodb.client.MongoClient;
 import com.mongodb.client.MongoClients;
 import com.mongodb.client.MongoCollection;
 import com.mongodb.client.MongoDatabase;
+import com.mongodb.client.result.DeleteResult;
 import core.DataContainer;
 import core.Request;
 import core.Response;
@@ -36,9 +38,11 @@ import cucumber.api.java8.Th;
 import org.apache.logging.log4j.LogManager;
 import org.apache.logging.log4j.Logger;
 import org.bson.Document;
+import org.bson.conversions.Bson;
 import org.bson.types.ObjectId;
 
 import static api.test.core.GeneralStepDefinitions.the_field_has_the_value_;
+import static com.mongodb.client.model.Filters.eq;
 
 public class PolicyStepDefinitions extends BaseStepDefinitions {
 
@@ -52,19 +56,19 @@ public class PolicyStepDefinitions extends BaseStepDefinitions {
         this.currentRequest = currentRequest;
     }
 
-    @When("I upload the policy to repository")
-    public void iUploadThePolicyToRepository() throws Throwable {
-//        MongoClient client = MongoClients.create("mongodb://root:root@localhost:27017");
-//        MongoDatabase database = client.getDatabase("policy");
-//        MongoCollection<Document> policies = database.getCollection("policies");
-//        Document test = new Document("_id", new ObjectId())
-//                .append("filename", "example_4.0.rego")
-//                .append("name", "test")
-//                .append("group", "testable")
-//                .append("version", "4.0")
-//                .append("locked", false)
-//                .append("rego", "package testable.test\n\t\t\n            allow {\n                1 == 1\n            }\n\n            taskID := \"0123456789abcdef\"\n            ");
-//        policies.insertOne(test);
+    @When("^I upload a policy \\{(.*)\\} to repository$")
+    public void iUploadThePolicyToRepository(String policy) throws Throwable {
+        MongoClient client = MongoClients.create("mongodb://root:root@localhost:27017");
+        MongoDatabase database = client.getDatabase("policy");
+        MongoCollection<Document> policies = database.getCollection("policies");
+        Document test = new Document("_id", new ObjectId())
+                .append("filename", "example_2.0.rego")
+                .append("name", policy)
+                .append("group", "testable")
+                .append("version", "2.0")
+                .append("locked", false)
+                .append("rego", "package testable."+ policy +"\n\t\t\n            allow {\n                1 == 1\n            }\n\n            taskID := \"0123456789abcdef\"\n            ");
+        policies.insertOne(test);
     }
 
     @And("set the policy to productive")
@@ -102,4 +106,18 @@ public class PolicyStepDefinitions extends BaseStepDefinitions {
         addRequest(currentRequest);
         addResponse(response);
     }
+
+    @And("^delete policy \\{(.*)\\} from repository$")
+    public void deletePolicyTestFromRepository(String policy) {
+        MongoClient client = MongoClients.create("mongodb://root:root@localhost:27017");
+        MongoDatabase database = client.getDatabase("policy");
+        MongoCollection<Document> policies = database.getCollection("policies");
+        Bson query = eq("name", policy);
+        try {
+            DeleteResult result = policies.deleteMany(query);
+            System.out.println("Deleted document count: " + result.getDeletedCount());
+        } catch (MongoException me) {
+            System.err.println("Unable to delete due to an error: " + me);
+        }
+    }
 }
\ No newline at end of file
diff --git a/src/test/resources/features/tsa/policy/DELETE.feature b/src/test/resources/features/tsa/policy/DELETE.feature
index 255cd41d4eae870af39250d4a95902e2ad3399eb..53af9ca35b034f5909c718db58d56849046ab600 100644
--- a/src/test/resources/features/tsa/policy/DELETE.feature
+++ b/src/test/resources/features/tsa/policy/DELETE.feature
@@ -23,15 +23,19 @@ Feature: As user
 
   Background:
     Given we are testing the TSA Policy Api
-    And I upload the policy to repository
+#    And I upload the policy to repository
 
   Scenario: TSA - Unlock policy - Positive
-    When I lock the policy {/testable/test/3.0/lock}
-    And I unlock the policy {/testable/test/3.0/lock}
+    Given I upload a policy {test4} to repository
+    When I lock the policy {/testable/test4/2.0/lock}
+    And I unlock the policy {/testable/test4/2.0/lock}
     And the status code should be {200}
+    And delete policy {test4} from repository
 
   Scenario: TSA - Unlock already unlocked policy - Negative
-    When I unlock the policy {/testable/test/4.0/lock}
-    And I unlock the policy {/testable/test/4.0/lock}
+    Given I upload a policy {test5} to repository
+    When I unlock the policy {/testable/test5/2.0/lock}
+    And I unlock the policy {/testable/test5/2.0/lock}
     And the status code should be {403}
     And the field {message} has the value {policy is unlocked}
+    And delete policy {test5} from repository
diff --git a/src/test/resources/features/tsa/policy/POST.feature b/src/test/resources/features/tsa/policy/POST.feature
index 0809c6c2b54652a949b54d0340854cde0948d61b..de8d42ca3098a1582f1bfc9c59a47d5fca2c3ae9 100644
--- a/src/test/resources/features/tsa/policy/POST.feature
+++ b/src/test/resources/features/tsa/policy/POST.feature
@@ -28,36 +28,39 @@ Feature: As user
 
   Background:
     Given we are testing the TSA Policy Api
-    And I upload the policy to repository
+#    And I upload the policy to repository
 
   Scenario: TSA - Evaluate policy synchronously - Positive
+    Given I upload a policy {test1} to repository
     And set the policy to productive
     And the policy successfully uploaded to the system
     Then I load the REST request {Policy.json} with profile {successful_evaluate}
-    And I execute the policy {/example/example/1.0/evaluation}
+    And I execute the policy {/testable/test1/2.0/evaluation}
     Then the status code should be {200}
     And the field {allow} has the value {true}
     And the field {taskID} is present and not empty
-    And I clear the request body
+    And delete policy {test1} from repository
 
   @lock
   Scenario: TSA - Lock policy - Positive
-    When I lock the policy {/testable/test/1.0/lock}
+    Given I upload a policy {test2} to repository
+    When I lock the policy {/testable/test2/2.0/lock}
     Then the status code should be {200}
     When I load the REST request {Policy.json} with profile {successful_evaluate}
-    And I execute the policy {/testable/test/1.0/evaluation}
+    And I execute the policy {/testable/test2/2.0/evaluation}
     Then the status code should be {403}
-    And I lock the policy {/testable/test/1.0/lock}
+    And I lock the policy {/testable/test2/2.0/lock}
     And the status code should be {403}
     And the field {message} has the value {policy is already locked}
-    And I unlock the policy {/testable/test/1.0/lock}
-    And I clear the request body
+    And I unlock the policy {/testable/test2/2.0/lock}
+    And delete policy {test2} from repository
 
   @lock
   Scenario: TSA - Lock already locked policy - Negative
-    When I lock the policy {/testable/test/2.0/lock}
-    And I lock the policy {/testable/test/2.0/lock}
+    Given I upload a policy {test3} to repository
+    When I lock the policy {/testable/test3/2.0/lock}
+    And I lock the policy {/testable/test3/2.0/lock}
     And the status code should be {403}
     And the field {message} has the value {policy is already locked}
-    And I unlock the policy {/testable/test/2.0/lock}
-    And I clear the request body
+    And I unlock the policy {/testable/test3/2.0/lock}
+    And delete policy {test3} from repository