diff --git a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTest.java b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTest.java
index c0d0a24071213522c87ea76fbb036578475afeb5..cce08e605cabe1713a9f7834a4bb8a5a3c5899e1 100644
--- a/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTest.java
+++ b/smp-server-library/src/test/java/eu/europa/ec/edelivery/smp/sml/SmlConnectorTest.java
@@ -13,71 +13,54 @@
 
 package eu.europa.ec.edelivery.smp.sml;
 
-import eu.europa.ec.bdmsl.ws.soap.*;
+import eu.europa.ec.bdmsl.ws.soap.BadRequestFault;
+import eu.europa.ec.bdmsl.ws.soap.InternalErrorFault;
+import eu.europa.ec.bdmsl.ws.soap.NotFoundFault;
+import eu.europa.ec.bdmsl.ws.soap.UnauthorizedFault;
 import eu.europa.ec.edelivery.smp.config.ConversionTestConfig;
 import eu.europa.ec.edelivery.smp.config.PropertiesSingleDomainTestConfig;
 import eu.europa.ec.edelivery.smp.config.SmlIntegrationConfiguration;
-import eu.europa.ec.edelivery.smp.data.model.DBDomain;
 import eu.europa.ec.edelivery.smp.exceptions.SMPRuntimeException;
 import eu.europa.ec.edelivery.smp.services.SecurityUtilsServices;
 import eu.europa.ec.edelivery.smp.services.ui.UIKeystoreService;
-import eu.europa.ec.edelivery.smp.testutil.TestDBUtils;
+import org.junit.Before;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.ExpectedException;
 import org.junit.runner.RunWith;
 import org.mockito.Mockito;
-import org.oasis_open.docs.bdxr.ns.smp._2016._05.ParticipantIdentifierType;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Configuration;
 import org.springframework.test.context.ContextConfiguration;
 import org.springframework.test.context.TestPropertySource;
-import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
+import org.springframework.test.context.junit4.SpringRunner;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertFalse;
-import static org.junit.Assert.assertTrue;
+import static eu.europa.ec.edelivery.smp.sml.SmlConnectorTestConstants.*;
+import static org.junit.Assert.*;
 import static org.mockito.ArgumentMatchers.any;
 import static org.mockito.Mockito.verify;
 
 /**
- * Created by gutowpa on 08/01/2018.
+ * Created by JRC
+ * since 4.1.
  */
-@RunWith(SpringJUnit4ClassRunner.class)
-@ContextConfiguration(classes = { SmlConnector.class,SmlIntegrationConfiguration.class,
+@RunWith(SpringRunner.class)
+@ContextConfiguration(classes = {SmlConnector.class, SmlIntegrationConfiguration.class,
         SecurityUtilsServices.class, UIKeystoreService.class,
         ConversionTestConfig.class, PropertiesSingleDomainTestConfig.class})
-@Configuration
 @TestPropertySource(properties = {
         "bdmsl.integration.enabled=true"})
-public class SmlConnectorTest {
-
-    // private static List<IManageParticipantIdentifierWS> smlClientMocks = new ArrayList<>();
-    private static final ParticipantIdentifierType PARTICIPANT_ID = new ParticipantIdentifierType("sample:value", "sample:scheme");
-    private static final DBDomain DEFAULT_DOMAIN;
-
-    static {
-        DEFAULT_DOMAIN = new DBDomain();
-        DEFAULT_DOMAIN.setDomainCode("default_domain_id");
-        DEFAULT_DOMAIN.setSmlSmpId("SAMPLE-SMP-ID");
-    }
-
-    private static final String  ERROR_UNEXPECTED_MESSAGE ="[ERR-106] Something unexpected happend";
-    private static final String  ERROR_SMP_NOT_EXISTS ="[ERR-100] The SMP '"+DEFAULT_DOMAIN.getSmlSmpId()+"' doesn't exist";
-    private static final String  ERROR_SMP_ALREADY_EXISTS ="[ERR-106] The SMP '"+DEFAULT_DOMAIN.getSmlSmpId()+"' already exists";
-    private static final String  ERROR_PI_ALREADY_EXISTS = "[ERR-106] The participant identifier 'sample:value' does already exist for the scheme sample:scheme";
+public class SmlConnectorTest  {
 
     @Rule
-    public ExpectedException expectedExeption = ExpectedException.none();
+    public ExpectedException expectedException = ExpectedException.none();
 
     @Autowired
-    SmlIntegrationConfiguration mockSml;
-
+    protected SmlConnector smlConnector;
     @Autowired
-    private SmlConnector smlConnector;
+    SmlIntegrationConfiguration mockSml;
 
-    @Autowired
-    public void setup(){
+    @Before
+    public void setup() {
         mockSml.reset();
     }
 
@@ -93,6 +76,32 @@ public class SmlConnectorTest {
         Mockito.verifyNoMoreInteractions(mockSml.getParticipantManagmentClientMocks().toArray());
     }
 
+    @Test
+    public void testRegisterInDnsAlreadyExists() throws UnauthorizedFault, NotFoundFault, InternalErrorFault, BadRequestFault {
+        //when
+        BadRequestFault ex = new BadRequestFault(ERROR_PI_ALREADY_EXISTS);
+        mockSml.setThrowException(ex);
+        boolean result = smlConnector.registerInDns(PARTICIPANT_ID, DEFAULT_DOMAIN);
+
+        //then
+        assertTrue(result);
+        assertEquals(1, mockSml.getParticipantManagmentClientMocks().size());
+        verify(mockSml.getParticipantManagmentClientMocks().get(0)).create(any());
+        Mockito.verifyNoMoreInteractions(mockSml.getParticipantManagmentClientMocks().toArray());
+    }
+
+    @Test
+    public void testRegisterInDnsUnknownException() throws UnauthorizedFault, NotFoundFault, InternalErrorFault, BadRequestFault {
+        //when
+        String message = "something unexpected";
+        Exception ex = new Exception(message);
+        mockSml.setThrowException(ex);
+        expectedException.expectMessage(message);
+        expectedException.expect(SMPRuntimeException.class);
+
+        smlConnector.registerInDns(PARTICIPANT_ID, DEFAULT_DOMAIN);
+    }
+
     @Test
     public void testRegisterInDnsNewClientIsAlwaysCreated() throws UnauthorizedFault, NotFoundFault, InternalErrorFault, BadRequestFault {
         //when
@@ -131,59 +140,65 @@ public class SmlConnectorTest {
         Mockito.verifyNoMoreInteractions(mockSml.getParticipantManagmentClientMocks().toArray());
     }
 
-
     @Test
-    public void testIsOkMessageForParticipantNull(){
-
-        boolean suc = smlConnector.isOkMessage(PARTICIPANT_ID, null);
+    public void testUnregisterFromDnsThrowUnknownBadRequestFault() {
+        //when
+        BadRequestFault ex = new BadRequestFault(ERROR_UNEXPECTED_MESSAGE);
+        mockSml.setThrowException(ex);
+        expectedException.expectMessage(ERROR_UNEXPECTED_MESSAGE);
+        expectedException.expect(SMPRuntimeException.class);
 
-        assertFalse(suc);
+        smlConnector.unregisterFromDns(PARTICIPANT_ID, DEFAULT_DOMAIN);
     }
 
     @Test
-    public void testIsOkMessageForParticipantOk(){
-        boolean suc = smlConnector.isOkMessage(PARTICIPANT_ID, ERROR_PI_ALREADY_EXISTS);
+    public void testUnregisterFromDnsThrowUnknownException() {
+        //when
+        String message = "something unexpected";
+        Exception ex = new Exception(message);
+        mockSml.setThrowException(ex);
+        expectedException.expectMessage(message);
+        expectedException.expect(SMPRuntimeException.class);
 
-        assertTrue(suc);
+        smlConnector.unregisterFromDns(PARTICIPANT_ID, DEFAULT_DOMAIN);
     }
 
     @Test
-    public void testIsOkMessageForParticipantFalse(){
-        boolean suc = smlConnector.isOkMessage(PARTICIPANT_ID, ERROR_UNEXPECTED_MESSAGE);
+    public void testUnregisterFromDnsNotExists() {
+        //when
+        BadRequestFault ex = new BadRequestFault(ERROR_PI_NO_EXISTS);
+        mockSml.setThrowException(ex);
+        boolean suc = smlConnector.unregisterFromDns(PARTICIPANT_ID, DEFAULT_DOMAIN);
 
-        assertFalse(suc);
+        assertTrue(suc);
     }
 
+
     @Test
-    public void testIsOkMessageForDomainNull(){
-        boolean suc = smlConnector.isOkMessage(DEFAULT_DOMAIN, null);
+    public void testIsOkMessageForParticipantNull() {
+
+        boolean suc = smlConnector.isOkMessage(PARTICIPANT_ID, null);
 
         assertFalse(suc);
     }
 
     @Test
-    public void testIsOkMessageForParticipantOkAdd(){
-        boolean suc = smlConnector.isOkMessage(DEFAULT_DOMAIN, ERROR_SMP_ALREADY_EXISTS);
-
-        assertTrue(suc);
-    }
-    @Test
-    public void testIsOkMessageForParticipantOkDelete(){
-        boolean suc = smlConnector.isOkMessage(DEFAULT_DOMAIN, ERROR_SMP_NOT_EXISTS);
+    public void testIsOkMessageForParticipantOk() {
+        boolean suc = smlConnector.isOkMessage(PARTICIPANT_ID, ERROR_PI_ALREADY_EXISTS);
 
         assertTrue(suc);
     }
 
     @Test
-    public void testIsOkMessageForDomainFalse(){
-
-        boolean suc = smlConnector.isOkMessage(DEFAULT_DOMAIN, ERROR_UNEXPECTED_MESSAGE);
+    public void testIsOkMessageForParticipantFalse() {
+        boolean suc = smlConnector.isOkMessage(PARTICIPANT_ID, ERROR_UNEXPECTED_MESSAGE);
 
         assertFalse(suc);
     }
 
+
     @Test
-    public void testProcessSMLErrorMessageBadRequestFaultIgnore(){
+    public void testProcessSMLErrorMessageBadRequestFaultIgnore() {
 
         BadRequestFault ex = new BadRequestFault(ERROR_PI_ALREADY_EXISTS);
         boolean suc = smlConnector.processSMLErrorMessage(ex, PARTICIPANT_ID);
@@ -192,10 +207,10 @@ public class SmlConnectorTest {
     }
 
     @Test
-    public void testProcessSMLErrorMessageBadRequestFaultFailed(){
+    public void testProcessSMLErrorMessageBadRequestFaultFailed() {
 
-        expectedExeption.expectMessage(ERROR_UNEXPECTED_MESSAGE);
-        expectedExeption.expect(SMPRuntimeException .class);
+        expectedException.expectMessage(ERROR_UNEXPECTED_MESSAGE);
+        expectedException.expect(SMPRuntimeException.class);
         BadRequestFault ex = new BadRequestFault(ERROR_UNEXPECTED_MESSAGE);
 
         smlConnector.processSMLErrorMessage(ex, PARTICIPANT_ID);
@@ -203,15 +218,22 @@ public class SmlConnectorTest {
 
 
     @Test
-    public void testProcessSMLErrorMessageNoFoundFaultFailed(){
+    public void testProcessSMLErrorMessageNoFoundFaultFailed() {
 
-        expectedExeption.expectMessage(ERROR_UNEXPECTED_MESSAGE);
-        expectedExeption.expect(SMPRuntimeException .class);
+        expectedException.expectMessage(ERROR_UNEXPECTED_MESSAGE);
+        expectedException.expect(SMPRuntimeException.class);
         NotFoundFault ex = new NotFoundFault(ERROR_UNEXPECTED_MESSAGE);
 
         smlConnector.processSMLErrorMessage(ex, PARTICIPANT_ID);
     }
 
+    @Test
+    public void testProcessSMLErrorMessageNoFoundFaultOk() {
+
+        NotFoundFault ex = new NotFoundFault(ERROR_PI_NO_EXISTS);
+
+        smlConnector.processSMLErrorMessage(ex, PARTICIPANT_ID);
+    }
 
 
 }