diff --git a/src/main/java/de/ozgcloud/xta/test/app/mapper/RequestMapper.java b/src/main/java/de/ozgcloud/xta/test/app/mapper/RequestMapper.java
index 2ac1edf7ced8f463d06c8debec95278d5c0f3bce..559a6743882e28f3e5d78227291811f01f60f8d0 100644
--- a/src/main/java/de/ozgcloud/xta/test/app/mapper/RequestMapper.java
+++ b/src/main/java/de/ozgcloud/xta/test/app/mapper/RequestMapper.java
@@ -15,11 +15,13 @@ import de.ozgcloud.xta.test.app.exception.TechnicalException;
 import de.ozgcloud.xta.test.app.model.XtaCloseRequest;
 import de.ozgcloud.xta.test.app.model.XtaFile;
 import de.ozgcloud.xta.test.app.model.XtaGetMessageRequest;
+import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest;
 import de.ozgcloud.xta.test.app.model.XtaMessage;
 import de.ozgcloud.xta.test.app.model.XtaMessageMetaData;
 import de.ozgcloud.xta.test.app.model.XtaMessageMetaDataListingRequest;
 import genv3.de.xoev.transport.xta.x211.ContentType;
 import genv3.de.xoev.transport.xta.x211.GenericContentContainer;
+import genv3.de.xoev.transport.xta.x211.LookupServiceRequest;
 import genv3.eu.osci.ws.x2008.x05.transport.MsgBoxCloseRequestType;
 import genv3.eu.osci.ws.x2008.x05.transport.MsgBoxFetchRequest;
 import genv3.eu.osci.ws.x2008.x05.transport.MsgBoxStatusListRequestType;
@@ -88,4 +90,9 @@ public interface RequestMapper {
 	@Mapping(target = "messageId", source = "fetchRequest.msgSelector.messageID.first.value")
 	@Mapping(target = "clientIdentifierValue", source = "authorIdentifier.identifier.value")
 	XtaGetMessageRequest mapXtaGetMessageRequest(MsgBoxFetchRequest fetchRequest, PartyType authorIdentifier);
+
+	@Mapping(target = "service", source = "lookupServiceRequest.lookupServiceRequestList.first.lookupService.serviceType")
+	@Mapping(target = "readerIdentifierValue", source = "lookupServiceRequest.lookupServiceRequestList.first.lookupService.reader.identifier.value")
+	@Mapping(target = "authorIdentifierValue", source = "authorIdentifier.identifier.value")
+	XtaLookupServiceRequest mapXtaLookupServiceRequest(LookupServiceRequest lookupServiceRequest, PartyType authorIdentifier);
 }
diff --git a/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java b/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java
index a3d46d8282f8de6e965eef81727c106afa119cf5..ec571be78bb5f0ee694f26c85b9da4809af3ed05 100644
--- a/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java
+++ b/src/main/java/de/ozgcloud/xta/test/app/mapper/ResponseMapper.java
@@ -22,12 +22,15 @@ import org.mapstruct.TargetPropertyName;
 
 import de.ozgcloud.xta.test.app.model.Identifier;
 import de.ozgcloud.xta.test.app.model.XtaFile;
+import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest;
 import de.ozgcloud.xta.test.app.model.XtaMessage;
 import de.ozgcloud.xta.test.app.model.XtaMessageMetaData;
 import de.ozgcloud.xta.test.app.model.XtaMessageMetaDataListing;
 import de.ozgcloud.xta.test.app.util.XtaIdGenerator;
 import genv3.de.xoev.transport.xta.x211.ContentType;
 import genv3.de.xoev.transport.xta.x211.GenericContentContainer;
+import genv3.de.xoev.transport.xta.x211.LookupServiceResponse;
+import genv3.de.xoev.transport.xta.x211.LookupServiceResultType;
 import genv3.eu.osci.ws.x2008.x05.transport.MsgBoxResponseType;
 import genv3.eu.osci.ws.x2008.x05.transport.MsgStatusListType;
 import genv3.eu.osci.ws.x2014.x10.transport.DeliveryAttributesType;
@@ -62,7 +65,7 @@ public interface ResponseMapper {
 	@Mapping(target = "destinations.reader.identifier", source = "readerIdentifier")
 	@Mapping(target = "msgSize", source = "messageSize")
 	@Mapping(target = "testMsg", ignore = true)
-	@Mapping(target = "deliveryAttributes", expression = "java( defaultDeliveryAttributes() )")
+	@Mapping(target = "deliveryAttributes", expression = "java( createDefaultDeliveryAttributes(createNowXmlGregorianCalendarFromLocalDateTime()) )")
 	@Mapping(target = "messageProperties", ignore = true)
 	MessageMetaData mapMessageMetaData(XtaMessageMetaData xtaMessageMetaData);
 
@@ -112,21 +115,20 @@ public interface ResponseMapper {
 		return new DataHandler(dataSource);
 	}
 
-	default DeliveryAttributesType defaultDeliveryAttributes() {
-		XMLGregorianCalendar calendarNow = xmlGregorianCalendarFromLocalDateTime(LocalDateTime.now());
-
-		DeliveryAttributesType deliveryAttributes = new DeliveryAttributesType();
-		deliveryAttributes.setDelivery(calendarNow);
-		deliveryAttributes.setInitialFetch(calendarNow);
-		deliveryAttributes.setInitialSend(calendarNow);
-		deliveryAttributes.setOrigin(calendarNow);
-
-		return deliveryAttributes;
-	}
+	@Mapping(target = "delivery", source = ".")
+	@Mapping(target = "initialFetch", source = ".")
+	@Mapping(target = "initialSend", source = ".")
+	@Mapping(target = "origin", source = ".")
+	@Mapping(target = "notBefore", ignore = true)
+	@Mapping(target = "obsoleteAfter", ignore = true)
+	@Mapping(target = "reception", ignore = true)
+	@Mapping(target = "serviceQuality", ignore = true)
+	@Mapping(target = "receiptRequests", ignore = true)
+	DeliveryAttributesType createDefaultDeliveryAttributes(XMLGregorianCalendar timestamp);
 
 	@SneakyThrows
-	default XMLGregorianCalendar xmlGregorianCalendarFromLocalDateTime(LocalDateTime localDateTime) {
-		var isoTimeString = DateTimeFormatter.ISO_DATE_TIME.format(localDateTime);
+	default XMLGregorianCalendar createNowXmlGregorianCalendarFromLocalDateTime() {
+		var isoTimeString = DateTimeFormatter.ISO_DATE_TIME.format(LocalDateTime.now());
 		return DatatypeFactory.newInstance().newXMLGregorianCalendar(isoTimeString);
 	}
 
@@ -170,4 +172,12 @@ public interface ResponseMapper {
 	@Mapping(target = "noMessageAvailable.reason", source = "errorString")
 	MsgBoxResponseType mapMsgBoxResponseTypeError(String errorString);
 
+	@Mapping(target = "isServiceAvailableValue.serviceIsAvailable", expression = "java( true )")
+	@Mapping(target = "serviceType", source = "service")
+	@Mapping(target = "reader.identifier.value", source = "readerIdentifierValue")
+	@Mapping(target = "serviceParameter", ignore = true)
+	LookupServiceResultType mapLookupServiceResultType(XtaLookupServiceRequest xtaLookupServiceRequest);
+
+	@Mapping(target = "lookupServiceResultList.lookupServiceResult", expression = "java( List.of( mapLookupServiceResultType(xtaLookupServiceRequest) ) )")
+	LookupServiceResponse mapLookupServiceResponse(XtaLookupServiceRequest xtaLookupServiceRequest);
 }
diff --git a/src/main/java/de/ozgcloud/xta/test/app/model/XtaLookupServiceRequest.java b/src/main/java/de/ozgcloud/xta/test/app/model/XtaLookupServiceRequest.java
new file mode 100644
index 0000000000000000000000000000000000000000..64e124809cc3702cb45281575046e30b69381a87
--- /dev/null
+++ b/src/main/java/de/ozgcloud/xta/test/app/model/XtaLookupServiceRequest.java
@@ -0,0 +1,11 @@
+package de.ozgcloud.xta.test.app.model;
+
+import lombok.Builder;
+
+@Builder
+public record XtaLookupServiceRequest(
+		String service,
+		String readerIdentifierValue,
+		String authorIdentifierValue
+) {
+}
diff --git a/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java b/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java
index 22d3e19289164847a5119fa2ced0fcfac0d4003b..b0a48f920e0980191fee1875154ba2efaec80fbd 100644
--- a/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java
+++ b/src/main/java/de/ozgcloud/xta/test/app/server/ManagementPortImpl.java
@@ -1,23 +1,27 @@
 package de.ozgcloud.xta.test.app.server;
 
-import java.util.List;
-
-import genv3.de.xoev.transport.xta.x211.*;
-import genv3.de.xoev.transport.xta.x211.LookupServiceRequest.LookupServiceRequestList;
-import genv3.de.xoev.transport.xta.x211.LookupServiceResponse.LookupServiceResultList;
-import genv3.eu.osci.ws.x2014.x10.transport.PartyType;
 import jakarta.annotation.Generated;
 import jakarta.jws.WebService;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.log4j.Log4j2;
+
 import org.apache.cxf.annotations.SchemaValidation;
 import org.apache.cxf.ws.addressing.AttributedURIType;
 import org.springframework.stereotype.Component;
 
+import de.ozgcloud.xta.test.app.mapper.RequestMapper;
+import de.ozgcloud.xta.test.app.mapper.ResponseMapper;
 import de.ozgcloud.xta.test.app.service.ParameterValidatorService;
 import de.ozgcloud.xta.test.app.service.XtaParameter;
 import de.ozgcloud.xta.test.app.util.XtaIdGenerator;
-
+import genv3.de.xoev.transport.xta.x211.CancelDeniedException;
+import genv3.de.xoev.transport.xta.x211.InvalidMessageIDException;
+import genv3.de.xoev.transport.xta.x211.LookupServiceRequest;
+import genv3.de.xoev.transport.xta.x211.ManagementPortType;
+import genv3.de.xoev.transport.xta.x211.ParameterIsNotValidException;
+import genv3.de.xoev.transport.xta.x211.PermissionDeniedException;
+import genv3.de.xoev.transport.xta.x211.TransportReport;
+import genv3.de.xoev.transport.xta.x211.XTAWSTechnicalProblemException;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.log4j.Log4j2;
 
 @WebService(serviceName = "XTAService", portName = "ManagementPort", targetNamespace = "http://xoev.de/transport/xta/211", wsdlLocation = "classpath:wsdl/XTA.wsdl", endpointInterface = "genv3.de.xoev.transport.xta.x211.ManagementPortType")
 @SchemaValidation(type = SchemaValidation.SchemaValidationType.BOTH)
@@ -28,8 +32,9 @@ public class ManagementPortImpl implements ManagementPortType {
 
 	private final ParameterValidatorService validator;
 
-
 	private final XtaIdGenerator xtaIdGenerator;
+	private final ResponseMapper responseMapper;
+	private final RequestMapper requestMapper;
 
 	/*
 	 * (non-Javadoc)
@@ -71,32 +76,9 @@ public class ManagementPortImpl implements ManagementPortType {
 			throws XTAWSTechnicalProblemException, PermissionDeniedException, ParameterIsNotValidException {
 		log.info("Executing operation lookupService");
 
-		LookupServiceResponse lookupResponse = new LookupServiceResponse();
-
-		LookupServiceResultList lookupServiceResultList = new LookupServiceResultList();
-		lookupResponse.setLookupServiceResultList(lookupServiceResultList);
-		List<LookupServiceResultType> resultlist = lookupServiceResultList.getLookupServiceResult();
+		var request = requestMapper.mapXtaLookupServiceRequest(lookupServiceRequest, authorIdentifier);
 
-		for (LookupServiceRequestList lookupServiceRequestList : lookupServiceRequest.getLookupServiceRequestList()) {
-			handleLookupServiceRequest(lookupServiceRequestList, resultlist);
-		}
-		return lookupResponse;
-	}
-
-	private void handleLookupServiceRequest(LookupServiceRequestList lookupServiceRequestList, List<LookupServiceResultType> resultlist) {
-		LookupServiceResultType lookupServiceResult = new LookupServiceResultType();
-		lookupServiceResult.setServiceType(lookupServiceRequestList.getLookupService().getServiceType());
-		IsServiceAvailableValueType serviceAvailable = new IsServiceAvailableValueType();
-		serviceAvailable.setServiceIsAvailable(true);
-		lookupServiceResult.setIsServiceAvailableValue(serviceAvailable);
-
-		PartyType requestReader = lookupServiceRequestList.getLookupService().getReader();
-		PartyType reader = new PartyType();
-		reader.setIdentifier(requestReader.getIdentifier());
-		reader.getSecurityToken().addAll(requestReader.getSecurityToken());
-		lookupServiceResult.setReader(reader);
-
-		resultlist.add(lookupServiceResult);
+		return responseMapper.mapLookupServiceResponse(request);
 	}
 
 	/*
@@ -111,8 +93,7 @@ public class ManagementPortImpl implements ManagementPortType {
 			throws XTAWSTechnicalProblemException, CancelDeniedException, PermissionDeniedException,
 			ParameterIsNotValidException {
 		log.info("Executing operation cancelMessage");
-		log.info("cancelMessage called, author: {}", authorIdentifier);
-
+		throw new XTAWSTechnicalProblemException("Method not supported");
 	}
 
 	/*
diff --git a/src/test/java/de/ozgcloud/xta/test/app/factory/LookupServiceRequestTestFactory.java b/src/test/java/de/ozgcloud/xta/test/app/factory/LookupServiceRequestTestFactory.java
index 779ada83524c8d59856fdbf2e1b035b5dfd57f9f..b36a0ea802f05400233148421310af440c7ce1c3 100644
--- a/src/test/java/de/ozgcloud/xta/test/app/factory/LookupServiceRequestTestFactory.java
+++ b/src/test/java/de/ozgcloud/xta/test/app/factory/LookupServiceRequestTestFactory.java
@@ -7,6 +7,7 @@ import genv3.eu.osci.ws.x2014.x10.transport.PartyType;
 public class LookupServiceRequestTestFactory {
 	public static final String SERVICE_TYPE = "http://www.osci.de/xmeld181/xmeld181Rueckmeldung.wsdl";
 	public static final PartyType READER_PARTY_TYPE = createReaderPartyType();
+	public static final String LOOKUP_SERVICE_REQUEST_READER = "gae:reader";
 
 	public static LookupServiceRequest create() {
 		var lookupServiceRequest = new LookupServiceRequest();
@@ -31,7 +32,7 @@ public class LookupServiceRequestTestFactory {
 
 	private static PartyType createReaderPartyType() {
 		var readerPartyType = new PartyType();
-		var readerIdentifier = PartyIdentifierTypeTestFactory.createReader("gae:reader");
+		var readerIdentifier = PartyIdentifierTypeTestFactory.createReader(LOOKUP_SERVICE_REQUEST_READER);
 		readerPartyType.setIdentifier(readerIdentifier);
 		return readerPartyType;
 	}
diff --git a/src/test/java/de/ozgcloud/xta/test/app/factory/MsgBoxCloseRequestTypeTestFactory.java b/src/test/java/de/ozgcloud/xta/test/app/factory/MsgBoxCloseRequestTypeTestFactory.java
index 1e679ba04fa7a6d1aff857ede045c9d8f7863ba3..a3cd76e64a66669286222fb39cc949d5aba9776a 100644
--- a/src/test/java/de/ozgcloud/xta/test/app/factory/MsgBoxCloseRequestTypeTestFactory.java
+++ b/src/test/java/de/ozgcloud/xta/test/app/factory/MsgBoxCloseRequestTypeTestFactory.java
@@ -1,14 +1,13 @@
 package de.ozgcloud.xta.test.app.factory;
 
 import genv3.eu.osci.ws.x2008.x05.transport.MsgBoxCloseRequestType;
-import org.apache.cxf.ws.addressing.AttributedURIType;
 
 public class MsgBoxCloseRequestTypeTestFactory {
-	public static final AttributedURIType MESSAGE_ID = AttributedURITypeTestFactory.create("de:xta:messageid:xta-test-server:close-id");
+	public static final String CLOSE_REQUEST_MESSAGE_ID = "de:xta:messageid:xta-test-server:close-id";
 
 	public static MsgBoxCloseRequestType create() {
 		var closeRequest = new MsgBoxCloseRequestType();
-		closeRequest.getLastMsgReceived().add(MESSAGE_ID);
+		closeRequest.getLastMsgReceived().add(AttributedURITypeTestFactory.create(CLOSE_REQUEST_MESSAGE_ID));
 		return closeRequest;
 	}
 }
diff --git a/src/test/java/de/ozgcloud/xta/test/app/factory/MsgBoxFetchRequestTestFactory.java b/src/test/java/de/ozgcloud/xta/test/app/factory/MsgBoxFetchRequestTestFactory.java
index c5af9144678c4f81174ca4d3a90ea88fe34f8e10..94b619d19e5e5deb79dd0502a6685cee1ee44775 100644
--- a/src/test/java/de/ozgcloud/xta/test/app/factory/MsgBoxFetchRequestTestFactory.java
+++ b/src/test/java/de/ozgcloud/xta/test/app/factory/MsgBoxFetchRequestTestFactory.java
@@ -2,15 +2,14 @@ package de.ozgcloud.xta.test.app.factory;
 
 import genv3.eu.osci.ws.x2008.x05.transport.MsgBoxFetchRequest;
 import genv3.eu.osci.ws.x2008.x05.transport.MsgSelector;
-import org.apache.cxf.ws.addressing.AttributedURIType;
 
 public class MsgBoxFetchRequestTestFactory {
-	public static final AttributedURIType MESSAGE_ID = AttributedURITypeTestFactory.create("urn:de:xta:messageId:xta-test-server:1234");
+	public static final String GET_MESSAGE_REQUEST_MESSAGE_ID = "urn:de:xta:messageId:xta-test-server:1234";
 
 	public static MsgBoxFetchRequest create() {
 		MsgBoxFetchRequest fetchRequest = new MsgBoxFetchRequest();
 		MsgSelector msgSelector = new MsgSelector();
-		msgSelector.getMessageID().add(MESSAGE_ID);
+		msgSelector.getMessageID().add(AttributedURITypeTestFactory.create(GET_MESSAGE_REQUEST_MESSAGE_ID));
 		fetchRequest.setMsgSelector(msgSelector);
 		return fetchRequest;
 	}
diff --git a/src/test/java/de/ozgcloud/xta/test/app/mapper/PartyTypeTestFactory.java b/src/test/java/de/ozgcloud/xta/test/app/mapper/PartyTypeTestFactory.java
index 136b5df9b3016cd0887453de8d7a509e87d856b9..f8c968241ce30094436340bd28273c64dfd032dd 100644
--- a/src/test/java/de/ozgcloud/xta/test/app/mapper/PartyTypeTestFactory.java
+++ b/src/test/java/de/ozgcloud/xta/test/app/mapper/PartyTypeTestFactory.java
@@ -2,23 +2,20 @@ package de.ozgcloud.xta.test.app.mapper;
 
 import static de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory.*;
 
-import genv3.eu.osci.ws.x2014.x10.transport.PartyIdentifierType;
 import genv3.eu.osci.ws.x2014.x10.transport.PartyType;
 
 public class PartyTypeTestFactory {
 
 	public static PartyType create() {
 		var partyIdentifier = new PartyType();
-		partyIdentifier.setIdentifier(createIdentifier());
+		partyIdentifier.setIdentifier(READER_IDENTIFIER);
 		return partyIdentifier;
 	}
 
-	private static PartyIdentifierType createIdentifier() {
-		var identifier = new PartyIdentifierType();
-		identifier.setName(READER_IDENTIFIER.getName());
-		identifier.setCategory(READER_IDENTIFIER.getCategory());
-		identifier.setValue(READER_IDENTIFIER.getValue());
-		return identifier;
+	public static PartyType createWithAuthor() {
+		var partyIdentifier = new PartyType();
+		partyIdentifier.setIdentifier(AUTHOR_IDENTIFIER);
+		return partyIdentifier;
 	}
 
 }
diff --git a/src/test/java/de/ozgcloud/xta/test/app/mapper/RequestMapperTest.java b/src/test/java/de/ozgcloud/xta/test/app/mapper/RequestMapperTest.java
index edc1f8dde5966f80ad8a7b8beaed98cdb23ba708..5aedc398cba4170fa89edae7adf8f6e1494217d0 100644
--- a/src/test/java/de/ozgcloud/xta/test/app/mapper/RequestMapperTest.java
+++ b/src/test/java/de/ozgcloud/xta/test/app/mapper/RequestMapperTest.java
@@ -1,5 +1,8 @@
 package de.ozgcloud.xta.test.app.mapper;
 
+import static de.ozgcloud.xta.test.app.factory.LookupServiceRequestTestFactory.*;
+import static de.ozgcloud.xta.test.app.factory.MsgBoxCloseRequestTypeTestFactory.*;
+import static de.ozgcloud.xta.test.app.factory.MsgBoxFetchRequestTestFactory.*;
 import static de.ozgcloud.xta.test.app.factory.XtaMessageMetaDataTestFactory.*;
 import static org.assertj.core.api.Assertions.*;
 
@@ -15,11 +18,17 @@ import org.mapstruct.factory.Mappers;
 import de.ozgcloud.xta.test.app.factory.AttributedURITypeTestFactory;
 import de.ozgcloud.xta.test.app.factory.ContentTypeTestFactory;
 import de.ozgcloud.xta.test.app.factory.GenericContentContainerTestFactory;
+import de.ozgcloud.xta.test.app.factory.LookupServiceRequestTestFactory;
 import de.ozgcloud.xta.test.app.factory.MessageMetaDataTestFactory;
+import de.ozgcloud.xta.test.app.factory.MsgBoxCloseRequestTypeTestFactory;
+import de.ozgcloud.xta.test.app.factory.MsgBoxFetchRequestTestFactory;
 import de.ozgcloud.xta.test.app.factory.MsgBoxStatusListRequestTypeTestFactory;
 import de.ozgcloud.xta.test.app.factory.QualifierTypeBusinessScenarioTestFactory;
 import de.ozgcloud.xta.test.app.model.Identifier;
+import de.ozgcloud.xta.test.app.model.XtaCloseRequest;
 import de.ozgcloud.xta.test.app.model.XtaFile;
+import de.ozgcloud.xta.test.app.model.XtaGetMessageRequest;
+import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest;
 import de.ozgcloud.xta.test.app.model.XtaMessageMetaDataListingRequest;
 import genv3.de.xoev.transport.xta.x211.ContentType;
 import genv3.de.xoev.transport.xta.x211.GenericContentContainer;
@@ -27,6 +36,7 @@ import genv3.eu.osci.ws.x2008.x05.transport.MsgBoxFetchRequest;
 import genv3.eu.osci.ws.x2008.x05.transport.MsgSelector;
 import genv3.eu.osci.ws.x2014.x10.transport.MessageMetaData;
 import genv3.eu.osci.ws.x2014.x10.transport.PartyIdentifierType;
+import genv3.eu.osci.ws.x2014.x10.transport.PartyType;
 import lombok.SneakyThrows;
 
 public class RequestMapperTest {
@@ -182,7 +192,91 @@ public class RequestMapperTest {
 			return requestMapper.mapMessageMetaDataListingRequest(MsgBoxStatusListRequestTypeTestFactory.create(MAX_LIST_ITEMS),
 					PartyTypeTestFactory.create());
 		}
+	}
+
+	@DisplayName("map xta close request")
+	@Nested
+	class TestMapXtaCloseRequest {
+		@DisplayName("should map message id")
+		@Test
+		void shouldMapMessageId() {
+			var result = doMapping();
+
+			assertThat(result.messageId()).isEqualTo(CLOSE_REQUEST_MESSAGE_ID);
+		}
 
+		@DisplayName("should map client identifier value")
+		@Test
+		void shouldMapClientIdentifierValue() {
+			var result = doMapping();
+
+			assertThat(result.clientIdentifierValue()).isEqualTo(READER_IDENTIFIER.value());
+		}
+
+		private XtaCloseRequest doMapping() {
+			return requestMapper.mapXtaCloseRequest(MsgBoxCloseRequestTypeTestFactory.create(),
+					PartyTypeTestFactory.create());
+		}
+	}
+
+	@DisplayName("map xta get message request")
+	@Nested
+	class TestMapXtaGetMessageRequest {
+		@DisplayName("should map message id")
+		@Test
+		void shouldMapMessageId() {
+			var result = doMapping();
+
+			assertThat(result.messageId()).isEqualTo(GET_MESSAGE_REQUEST_MESSAGE_ID);
+		}
+
+		@DisplayName("should map client identifier value")
+		@Test
+		void shouldMapClientIdentifierValue() {
+			var result = doMapping();
+
+			assertThat(result.clientIdentifierValue()).isEqualTo(READER_IDENTIFIER.value());
+		}
+
+		private XtaGetMessageRequest doMapping() {
+			return requestMapper.mapXtaGetMessageRequest(MsgBoxFetchRequestTestFactory.create(),
+					PartyTypeTestFactory.create());
+		}
+	}
+
+	@DisplayName("map xta lookup service request")
+	@Nested
+	class TestMapXtaLookupServiceRequest {
+		private static final PartyType partyType = PartyTypeTestFactory.create();
+
+		@DisplayName("should map service")
+		@Test
+		void shouldMapService() {
+			var result = doMapping();
+
+			assertThat(result.service()).isEqualTo(SERVICE_TYPE);
+		}
+
+		@DisplayName("should map reader identifier value")
+		@Test
+		void shouldMapReaderIdentifierValue() {
+			var result = doMapping();
+
+			assertThat(result.readerIdentifierValue()).isEqualTo(LOOKUP_SERVICE_REQUEST_READER);
+		}
+
+		@DisplayName("should map author identifier value")
+		@Test
+		void shouldMapAuthorIdentifierValue() {
+			var result = doMapping();
+
+			assertThat(result.authorIdentifierValue()).isEqualTo(partyType.getIdentifier().getValue());
+		}
+
+		private XtaLookupServiceRequest doMapping() {
+			return requestMapper.mapXtaLookupServiceRequest(LookupServiceRequestTestFactory.create(),
+					partyType);
+		}
 	}
 
 }
diff --git a/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java b/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java
index a93d986f6bbf1503ee0c701e326d95696a560513..cb249cecc0e26954c10a0a3d0d7e0b702e631c61 100644
--- a/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java
+++ b/src/test/java/de/ozgcloud/xta/test/app/mapper/ResponseMapperTest.java
@@ -2,6 +2,7 @@ package de.ozgcloud.xta.test.app.mapper;
 
 import static de.ozgcloud.xta.test.app.factory.XtaMessageMetaDataTestFactory.*;
 import static de.ozgcloud.xta.test.app.mapper.ResponseMapper.*;
+import static de.ozgcloud.xta.test.app.mapper.XtaLookupServiceRequestTestFactory.*;
 import static org.assertj.core.api.Assertions.*;
 import static org.mockito.Mockito.*;
 
@@ -22,7 +23,10 @@ import de.ozgcloud.xta.test.app.model.XtaMessageMetaDataListing;
 import de.ozgcloud.xta.test.app.util.XtaId;
 import de.ozgcloud.xta.test.app.util.XtaIdGenerator;
 import genv3.de.xoev.transport.xta.x211.ContentType;
+import genv3.de.xoev.transport.xta.x211.LookupServiceResponse;
+import genv3.de.xoev.transport.xta.x211.LookupServiceResultType;
 import genv3.eu.osci.ws.x2008.x05.transport.MsgStatusListType;
+import genv3.eu.osci.ws.x2014.x10.transport.DeliveryAttributesType;
 import genv3.eu.osci.ws.x2014.x10.transport.MessageMetaData;
 import genv3.eu.osci.ws.x2014.x10.transport.QualifierType;
 import lombok.SneakyThrows;
@@ -277,10 +281,14 @@ public class ResponseMapperTest {
 					.isEqualTo(mapper.mapPartyIdentifierType(AUTHOR_IDENTIFIER));
 		}
 
-		@DisplayName("should default sender identifier")
+		@DisplayName("should set default sender identifier")
 		@Test
 		void shouldSetDefaultSenderIdentifier() {
-			// TODO
+			var result = mapFirstMessageMetaData();
+
+			assertThat(result.getOriginators().getSender().getIdentifier())
+					.usingRecursiveComparison()
+					.isEqualTo(mapper.mapPartyIdentifierType(SENDER_IDENTIFIER));
 		}
 
 		@DisplayName("should map reader identifier")
@@ -296,19 +304,43 @@ public class ResponseMapperTest {
 		@DisplayName("should set default delivery attribute delivery")
 		@Test
 		void shouldSetDefaultDeliveryAttributeDelivery() {
-			// TODO
+			var result = mapFirstMessageMetaDataDelivery();
+
+			assertThat(result.getDelivery()).isNotNull();
 		}
 
-		@DisplayName("should set default delivery attribute inital fetch")
+		@DisplayName("should set default delivery attribute initial fetch")
 		@Test
 		void shouldSetDefaultDeliveryAttributeInitialFetch() {
-			// TODO
+			var result = mapFirstMessageMetaDataDelivery();
+
+			assertThat(result.getInitialFetch()).isNotNull();
+		}
+
+		@DisplayName("should set default delivery attribute initial send")
+		@Test
+		void shouldSetDefaultDeliveryAttributeInitialSend() {
+			var result = mapFirstMessageMetaDataDelivery();
+
+			assertThat(result.getInitialSend()).isNotNull();
+		}
+
+		@DisplayName("should set default delivery attribute origin")
+		@Test
+		void shouldSetDefaultDeliveryAttributeOrigin() {
+			var result = mapFirstMessageMetaDataDelivery();
+
+			assertThat(result.getOrigin()).isNotNull();
 		}
 
 		private MsgStatusListType doMapping() {
 			return mapper.mapMsgStatusListType(xtaMessageMetaDataListing);
 		}
 
+		private DeliveryAttributesType mapFirstMessageMetaDataDelivery() {
+			return mapFirstMessageMetaData().getDeliveryAttributes();
+		}
+
 		private MessageMetaData mapFirstMessageMetaData() {
 			return doMapping().getMessageMetaData().getFirst();
 		}
@@ -419,4 +451,41 @@ public class ResponseMapperTest {
 			assertThat(result.getNoMessageAvailable()).isNull();
 		}
 	}
+
+	@DisplayName("map lookup service response")
+	@Nested
+	class TestMapLookupServiceResponse {
+
+		@DisplayName("should map service type")
+		@Test
+		void shouldMapServiceType() {
+			var result = getFirstLookupServiceResult();
+
+			assertThat(result.getServiceType()).isEqualTo(LOOKUP_SERVICE_SERVICE);
+		}
+
+		@DisplayName("should map reader identifier value")
+		@Test
+		void shouldMapReaderIdentifierValue() {
+			var result = getFirstLookupServiceResult();
+
+			assertThat(result.getReader().getIdentifier().getValue()).isEqualTo(LOOKUP_SERVICE_READER_IDENTIFIER_VALUE);
+		}
+
+		@DisplayName("should map service is available value")
+		@Test
+		void shouldMapServiceIsAvailableValue() {
+			var result = getFirstLookupServiceResult();
+
+			assertThat(result.getIsServiceAvailableValue().isServiceIsAvailable()).isTrue();
+		}
+
+		private LookupServiceResultType getFirstLookupServiceResult() {
+			return doMapping().getLookupServiceResultList().getLookupServiceResult().getFirst();
+		}
+
+		private LookupServiceResponse doMapping() {
+			return mapper.mapLookupServiceResponse(XtaLookupServiceRequestTestFactory.create());
+		}
+	}
 }
diff --git a/src/test/java/de/ozgcloud/xta/test/app/mapper/XtaLookupServiceRequestTestFactory.java b/src/test/java/de/ozgcloud/xta/test/app/mapper/XtaLookupServiceRequestTestFactory.java
new file mode 100644
index 0000000000000000000000000000000000000000..2c9e28a819325324ef3b0325fecdd9fbf8ed0bf8
--- /dev/null
+++ b/src/test/java/de/ozgcloud/xta/test/app/mapper/XtaLookupServiceRequestTestFactory.java
@@ -0,0 +1,21 @@
+package de.ozgcloud.xta.test.app.mapper;
+
+import de.ozgcloud.xta.test.app.model.XtaLookupServiceRequest;
+
+public class XtaLookupServiceRequestTestFactory {
+
+	public static String LOOKUP_SERVICE_SERVICE = "lookup-request-service";
+	public static String LOOKUP_SERVICE_READER_IDENTIFIER_VALUE = "reader-identifier-value";
+	public static String LOOKUP_SERVICE_AUTHOR_IDENTIFIER_VALUE = "author-identifier-value";
+
+	public static XtaLookupServiceRequest create() {
+		return createBuilder().build();
+	}
+
+	public static XtaLookupServiceRequest.XtaLookupServiceRequestBuilder createBuilder() {
+		return XtaLookupServiceRequest.builder()
+				.service(LOOKUP_SERVICE_SERVICE)
+				.readerIdentifierValue(LOOKUP_SERVICE_READER_IDENTIFIER_VALUE)
+				.authorIdentifierValue(LOOKUP_SERVICE_AUTHOR_IDENTIFIER_VALUE);
+	}
+}
diff --git a/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java b/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java
index 492a59e5e5e0d8f89a2be160838ab9c09f134f0f..a8daca8b5a2ea0555daaddf91ebedca6778e37d9 100644
--- a/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java
+++ b/src/test/java/de/ozgcloud/xta/test/app/server/ManagementPortImplTest.java
@@ -1,13 +1,8 @@
 package de.ozgcloud.xta.test.app.server;
 
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.assertj.core.api.Assertions.assertThatNoException;
-import static org.mockito.Mockito.when;
+import static org.assertj.core.api.Assertions.*;
+import static org.mockito.Mockito.*;
 
-import genv3.de.xoev.transport.xta.x211.LookupServiceRequest;
-import genv3.de.xoev.transport.xta.x211.LookupServiceResultType;
-import genv3.eu.osci.ws.x2014.x10.transport.PartyType;
-import lombok.SneakyThrows;
 import org.junit.jupiter.api.BeforeEach;
 import org.junit.jupiter.api.DisplayName;
 import org.junit.jupiter.api.Nested;
@@ -20,6 +15,10 @@ import de.ozgcloud.xta.test.app.factory.LookupServiceRequestTestFactory;
 import de.ozgcloud.xta.test.app.service.ParameterValidatorService;
 import de.ozgcloud.xta.test.app.util.XtaId;
 import de.ozgcloud.xta.test.app.util.XtaIdGenerator;
+import genv3.de.xoev.transport.xta.x211.LookupServiceRequest;
+import genv3.de.xoev.transport.xta.x211.LookupServiceResultType;
+import genv3.eu.osci.ws.x2014.x10.transport.PartyType;
+import lombok.SneakyThrows;
 
 public class ManagementPortImplTest {
 	@Spy
@@ -29,8 +28,9 @@ public class ManagementPortImplTest {
 	@InjectMocks
 	private ManagementPortImpl managementPortImpl;
 
+	@DisplayName("create message id")
 	@Nested
-	class CreateMessageId {
+	class TestCreateMessageId {
 		@Mock
 		private PartyType authorIdentifier;
 
@@ -41,38 +41,33 @@ public class ManagementPortImplTest {
 			when(xtaIdGenerator.generateMessageId()).thenReturn(MESSAGE_ID);
 		}
 
-		@DisplayName("Should always accept request")
-		@Test
-		void shouldAccecptRequest() {
-			assertThatNoException().isThrownBy(() -> managementPortImpl.createMessageId(authorIdentifier));
-		}
-
-		@DisplayName("Should return new message id")
+		@DisplayName("should return")
 		@Test
+		@SneakyThrows
 		void shouldCreateMessageId() {
-			try{
-				var messageId = managementPortImpl.createMessageId(authorIdentifier);
-				assertThat(messageId.getValue()).matches(MESSAGE_ID.toString());
-			} catch (Exception e) {
-				// ignore
-			}
+			var messageId = managementPortImpl.createMessageId(authorIdentifier);
+
+			assertThat(messageId.getValue()).matches(MESSAGE_ID.toString());
 		}
 	}
 
+	@DisplayName("check account active")
 	@Nested
-	class CheckAccountActive {
+	class TestCheckAccountActive {
 		@Mock
 		private PartyType authorIdentifier;
 
-		@DisplayName("Should always accept request")
+		@DisplayName("should return")
 		@Test
-		void shouldAccecptRequest() {
-			assertThatNoException().isThrownBy(() -> managementPortImpl.checkAccountActive(authorIdentifier));
+		@SneakyThrows
+		void shouldAcceptRequest() {
+			managementPortImpl.checkAccountActive(authorIdentifier);
 		}
 	}
 
+	@DisplayName("lookup service")
 	@Nested
-	class LookupService {
+	class TestLookupService {
 		@Mock
 		private PartyType authorIdentifier;
 		private LookupServiceRequest lookupServiceRequest;
@@ -82,12 +77,6 @@ public class ManagementPortImplTest {
 			lookupServiceRequest = LookupServiceRequestTestFactory.create();
 		}
 
-		@DisplayName("Should always accept request")
-		@Test
-		void shouldAccecptRequest() {
-			assertThatNoException().isThrownBy(() -> managementPortImpl.lookupService(lookupServiceRequest, authorIdentifier));
-		}
-
 		@DisplayName("Should return IsServiceAvailableValue as true")
 		@Test
 		void shouldReturnIsServiceAvailableValue() {