diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/binaryfile/BinaryFileModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/binaryfile/BinaryFileModelAssembler.java
index 46c008ecb1d6ea122f163eb50dce6d7cd5efa26e..c475c5c3262880ad20da74131e8940592c4a5ede 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/binaryfile/BinaryFileModelAssembler.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/binaryfile/BinaryFileModelAssembler.java
@@ -25,7 +25,6 @@ package de.ozgcloud.alfa.common.binaryfile;
 
 import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
 
-import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
 import org.springframework.hateoas.CollectionModel;
@@ -51,7 +50,6 @@ public class BinaryFileModelAssembler implements RepresentationModelAssembler<Oz
 	}
 
 	public CollectionModel<EntityModel<OzgFile>> toCollectionModel(Stream<OzgFile> entities) {
-		return CollectionModel.of(entities.map(this::toModel).collect(Collectors.toList()),
-				linkTo(BinaryFileController.class).withSelfRel());
+		return CollectionModel.of(entities.map(this::toModel).toList(), linkTo(BinaryFileController.class).withSelfRel());
 	}
 }
\ No newline at end of file
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandHelper.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandHelper.java
index 142c457fc85fa9686b15ccdbec16b14c11d9a268..deb37af64aa82dab029a84cfce1e2e864b80d756 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandHelper.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/command/CommandHelper.java
@@ -11,15 +11,12 @@ public class CommandHelper {
 	static final Predicate<Command> IS_DONE = command -> command.getStatus() == CommandStatus.FINISHED
 			|| command.getStatus() == CommandStatus.REVOKED || command.getStatus() == CommandStatus.ERROR;
 
-	static final Predicate<Command> IS_PENDING = command -> {
-		return command.getStatus() == CommandStatus.PENDING
-				|| command.getStatus() == CommandStatus.REVOKE_PENDING;
-	};
+	static final Predicate<Command> IS_PENDING = command -> command.getStatus() == CommandStatus.PENDING
+			|| command.getStatus() == CommandStatus.REVOKE_PENDING;
 
 	public static final Predicate<Command> IS_REVOKEABLE = command -> command.getOrder().isRevokeable()
 			&& command.getStatus() == CommandStatus.FINISHED;
 
 	public static final Predicate<Command> IS_LOESCHANFORDERUNG = command -> command.getOrder() == CommandOrder.VORGANG_ZUM_LOESCHEN_MARKIEREN
 			|| command.getOrder() == CommandOrder.LOESCH_ANFORDERUNG_ZURUECKNEHMEN;
-
 }
\ No newline at end of file
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/forwarding/ForwardingController.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/forwarding/ForwardingController.java
index 3bdb5f803bd644ba90d4680c2bfc97e4e6650d52..6748c2b4b8a62eaf4b145fae0c37082a05ca7e07 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/forwarding/ForwardingController.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/forwarding/ForwardingController.java
@@ -24,7 +24,7 @@
 package de.ozgcloud.alfa.vorgang.forwarding;
 
 import java.util.List;
-import java.util.stream.Collectors;
+import java.util.function.Predicate;
 import java.util.stream.Stream;
 
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +45,9 @@ public class ForwardingController {
 
 	static final String PARAM_VORGANG_ID = "vorgangId";
 
+	static final Predicate<Forwarding> IS_FAILED_FORWARDING = forwarding -> forwarding.getStatus() == Status.FAILED
+			|| forwarding.getStatus() == Status.SEND_ERROR;
+
 	@Autowired
 	private ForwardingService service;
 	@Autowired
@@ -56,9 +59,7 @@ public class ForwardingController {
 	}
 
 	public List<Forwarding> findFailedForwardings(String vorgangId) {
-		return findByVorgang(vorgangId)
-				.filter(forwarding -> forwarding.getStatus() == Status.FAILED || forwarding.getStatus() == Status.SEND_ERROR)
-				.collect(Collectors.toList());
+		return findByVorgang(vorgangId).filter(IS_FAILED_FORWARDING).toList();
 	}
 
 	public Stream<Forwarding> findByVorgang(String vorgangId) {
diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/forwarding/ForwardingModelAssembler.java b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/forwarding/ForwardingModelAssembler.java
index f4efb25b9dbd5a7e197af6ac832fa7f7ef1700d7..95690e00bc8ec35baea0aff9f99f85540de0d322 100644
--- a/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/forwarding/ForwardingModelAssembler.java
+++ b/alfa-service/src/main/java/de/ozgcloud/alfa/vorgang/forwarding/ForwardingModelAssembler.java
@@ -25,7 +25,7 @@ package de.ozgcloud.alfa.vorgang.forwarding;
 
 import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*;
 
-import java.util.stream.Collectors;
+import java.util.function.Predicate;
 import java.util.stream.Stream;
 
 import org.springframework.hateoas.CollectionModel;
@@ -50,28 +50,34 @@ class ForwardingModelAssembler implements RepresentationModelAssembler<Forwardin
 
 	static final LinkRelation REL_ERROR = LinkRelation.of("error");
 
+	static final Predicate<Forwarding> IS_SENT = forwarding -> forwarding.getStatus() == Status.SENT;
+	static final Predicate<Forwarding> IS_SUCCESSFULL = forwarding -> forwarding.getStatus() == Status.SUCCESSFULL;
+	static final Predicate<Forwarding> IS_SENT_OR_SUCCESSFULL = forwarding -> forwarding.getStatus() == Status.SENT
+			|| forwarding.getStatus() == Status.SUCCESSFULL;
+	static final Predicate<Forwarding> IS_FAILED = forwarding -> forwarding.getStatus() == Status.FAILED;
+	static final Predicate<Forwarding> IS_SEND_ERROR = forwarding -> forwarding.getStatus() == Status.SEND_ERROR;
+
 	@Override
 	public EntityModel<Forwarding> toModel(Forwarding entity) {
 		var selfLink = linkTo(ForwardingController.class).slash(entity.getId());
 
 		return ModelBuilder.fromEntity(entity)
 				.addLink(linkTo(ForwardingController.class).slash(entity.getId()).withSelfRel())
-				.ifMatch(forwarding -> forwarding.getStatus() == Status.SENT)
+				.ifMatch(IS_SENT)
 				.addLinks(buildMarkAsSuccessLink(entity))
-				.ifMatch(forwarding -> forwarding.getStatus() == Status.SENT || forwarding.getStatus() == Status.SUCCESSFULL)
+				.ifMatch(IS_SENT_OR_SUCCESSFULL)
 				.addLinks(buildMarkAsFailLink(entity))
-				.ifMatch(forwarding -> forwarding.getStatus() == Status.FAILED)
+				.ifMatch(IS_FAILED)
 				.addLink(selfLink.withRel(REL_FAILED))
-				.ifMatch(forwarding -> forwarding.getStatus() == Status.SUCCESSFULL)
+				.ifMatch(IS_SUCCESSFULL)
 				.addLink(selfLink.withRel(REL_SUCCESSFULL))
-				.ifMatch(forwarding -> forwarding.getStatus() == Status.SEND_ERROR)
+				.ifMatch(IS_SEND_ERROR)
 				.addLink(selfLink.withRel(REL_ERROR))
 				.buildModel();
 	}
 
 	public CollectionModel<EntityModel<Forwarding>> toCollectionModel(Stream<Forwarding> entities) {
-		return CollectionModel.of(entities.map(this::toModel).collect(Collectors.toList()),
-				linkTo(ForwardingController.class).withSelfRel());
+		return CollectionModel.of(entities.map(this::toModel).toList(), linkTo(ForwardingController.class).withSelfRel());
 	}
 
 	public Link buildMarkAsSuccessLink(Forwarding forwarding) {
diff --git a/alfa-service/src/test/java/de/ozgcloud/alfa/attachment/AttachmentMapperTest.java b/alfa-service/src/test/java/de/ozgcloud/alfa/attachment/AttachmentMapperTest.java
index edbb0974441a4e7cd7e7cb6195e99ba967be05a6..52a761ef966ccc1fd29f2340975353fb0bc063f6 100644
--- a/alfa-service/src/test/java/de/ozgcloud/alfa/attachment/AttachmentMapperTest.java
+++ b/alfa-service/src/test/java/de/ozgcloud/alfa/attachment/AttachmentMapperTest.java
@@ -1,26 +1,33 @@
 package de.ozgcloud.alfa.attachment;
 
-import org.assertj.core.api.Assertions;
+import static org.assertj.core.api.Assertions.*;
+
 import org.junit.jupiter.api.Test;
 
 import com.google.common.collect.Lists;
 
 import de.ozgcloud.alfa.common.binaryfile.FileId;
 
-public class AttachmentMapperTest {
+class AttachmentMapperTest {
 
 	@Test
 	void shouldMapAttachmentsToEmptyList() {
-		Assertions.assertThat(AttachmentMapper.mapAttachments(null)).isEmpty();
+		var attachments = AttachmentMapper.mapAttachments(null);
+
+		assertThat(attachments).isEmpty();
 	}
 
 	@Test
 	void shouldMapAttachmentsToList() {
-		Assertions.assertThat(AttachmentMapper.mapAttachments(Lists.newArrayList("a1", "a2"))).containsExactly(FileId.from("a1"), FileId.from("a2"));
+		var attachments = AttachmentMapper.mapAttachments(Lists.newArrayList("a1", "a2"));
+
+		assertThat(attachments).containsExactly(FileId.from("a1"), FileId.from("a2"));
 	}
 
 	@Test
 	void shouldMapOneElementToList() {
-		Assertions.assertThat(AttachmentMapper.mapAttachments("a1")).containsExactly(FileId.from("a1"));
+		var attachments = AttachmentMapper.mapAttachments("a1");
+
+		assertThat(attachments).containsExactly(FileId.from("a1"));
 	}
 }
diff --git a/alfa-xdomea/pom.xml b/alfa-xdomea/pom.xml
index 5f3125ca788e8e8fed9fda3bf0a355e89c5b3b0e..63bfe4d5a9f21ab7f5d788d9dd52c41b7d5fb68b 100644
--- a/alfa-xdomea/pom.xml
+++ b/alfa-xdomea/pom.xml
@@ -36,7 +36,8 @@
 	</parent>
 
 	<artifactId>alfa-xdomea</artifactId>
-	<name>XDomea</name>
+	<name>Alfa XDomea</name>
+	<description>Alfa XDomea implementation</description>
 	<packaging>jar</packaging>
 
 	<properties>
@@ -105,6 +106,25 @@
 					<skip>true</skip>
 				</configuration>
 			</plugin>
+			<plugin>
+				<groupId>org.jacoco</groupId>
+				<artifactId>jacoco-maven-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-surefire-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-failsafe-plugin</artifactId>
+			</plugin>
+
+			<plugin>
+				<groupId>org.apache.maven.plugins</groupId>
+				<artifactId>maven-compiler-plugin</artifactId>
+			</plugin>
 		</plugins>
 		<resources>
 			<resource>
diff --git a/goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/loeschen-anfordern.e2e-spec.ts b/goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/loeschen-anfordern.e2e-spec.ts
index 156be9773db19d271f55033173fea1701f818f86..508bb26e33a246af5c956c52ce98f64d3c80dec9 100644
--- a/goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/loeschen-anfordern.e2e-spec.ts
+++ b/goofy-client/apps/goofy-e2e/src/integration/main-tests/loesch-anforderung/loeschen-anfordern.e2e-spec.ts
@@ -15,8 +15,8 @@ import { MainPage, waitForSpinnerToDisappear } from '../../../page-objects/main.
 import { VorgangPage } from '../../../page-objects/vorgang.po';
 import { dropCollections, visitUrl } from '../../../support/cypress-helper';
 import { contains, exist, haveText, notExist } from '../../../support/cypress.util';
-import { loginAsSabine } from '../../../support/user-util';
-import { buildVorgang, initVorgaenge, objectIds } from '../../../support/vorgang-util';
+import { loginAsLudwig, loginAsSabine } from '../../../support/user-util';
+import { buildVorgang, initVorgaenge, initVorgang, objectIds } from '../../../support/vorgang-util';
 
 registerLocaleData(localeDe, 'de', localeDeExtra);
 
@@ -28,6 +28,8 @@ describe('Vorgang Löschen anfordern', () => {
 	const vorgangPage: VorgangPage = new VorgangPage();
 	const vorgangFormularButtons: VorgangFormularButtonsE2EComponent = vorgangPage.getFormularButtons();
 
+	const vorgangNichtLoeschbar: VorgangE2E = { ...buildVorgang(objectIds[5], 'DoNichtLoeschbar'), status: VorgangStatusE2E.ABGESCHLOSSEN };
+
 	const vorgangAbgeschlossenLoeschenAnfordern: VorgangE2E = { ...buildVorgang(objectIds[0], 'DoAbgeschlossenLoeschenAnfordern'), status: VorgangStatusE2E.ABGESCHLOSSEN };
 	const vorgangAbgeschlossenLoeschenAnfordernRevoke: VorgangE2E = { ...buildVorgang(objectIds[1], 'DoAbgeschlossenRevokeLoeschenAnfordern'), status: VorgangStatusE2E.ABGESCHLOSSEN };
 
@@ -37,281 +39,322 @@ describe('Vorgang Löschen anfordern', () => {
 	const wiedervorlageAttachedItem = createWiedervorlageAttachedItem(objectIds[4], vorgangAbgeschlossenLoeschenAnfordern._id.$oid);
 	const wiedervorlageUrl = createWiedervorlageUriByVorgangIdAndWiedervorlageId(objectIds[0], objectIds[4]);
 
-	before(() => {
-		initVorgaenge([vorgangAbgeschlossenLoeschenAnfordern, vorgangAbgeschlossenLoeschenAnfordernRevoke, vorgangVerworfenLoeschenAnfordern, vorgangVerworfenLoeschenAnfordernRevoke]);
-		initVorgangAttachedItem([wiedervorlageAttachedItem]);
-
-		loginAsSabine();
 
-		waitForSpinnerToDisappear();
-		exist(vorgangList.getRoot());
-	})
-
-	after(() => {
-		dropCollections();
-	})
+	describe('Nicht löschen (Ludwig kann keinen Vorgang löschen, für den er selbst die Löschanforderung gestellt hat)', () => {
+		before(() => {
+			initVorgang(vorgangNichtLoeschbar);
 
-	describe('Abgeschlossen: löschen anfordern', () => {
+			loginAsLudwig();
 
-		it('Open Vorgang-Detail-Page', () => {
-			vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordern.name).getRoot().click();
 			waitForSpinnerToDisappear();
-
-			exist(vorgangPage.getVorgangDetailHeader().getRoot());
-		})
-
-		describe('by button', () => {
-
-			it('should have status Abgeschlossen', () => {
-				haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangAbgeschlossenLoeschenAnfordern.status]);
-			})
-
-			it('should click Löschen anfordern button', () => {
-				vorgangFormularButtons.getLoeschenAnfordernButton().click();
-				waitForSpinnerToDisappear();
-			})
-
-			it('should show snackBar message', () => {
-				exist(snackBar.getCloseButton());
-				contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN)
-			})
-
-			it('should close snackBar', () => {
-				snackBar.getCloseButton().click();
-
-				notExist(snackBar.getMessage());
-			})
-
-			it('should have status zu Löschen', () => {
-				haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]);
-			})
-
-			it('should redirect Wiedervorlage link to Vorgang', () => {
-				visitUrl(wiedervorlageUrl);
-
-				exist(vorgangPage.getVorgangDetailHeader().getRoot());
-			})
-
-			it('should show snackBar message', () => {
-				exist(snackBar.getCloseButton());
-				contains(snackBar.getMessage(), VorgangMessagesE2E.WIEDERVORLAGE_BEARBEITEN_NICHT_MOEGLICH)
-			})
-
-			it('should close snackBar', () => {
-				snackBar.getCloseButton().click();
-
-				notExist(snackBar.getMessage());
-			})
-
-			it('back to vorgang list', () => {
-				vorgangPage.getSubnavigation().getBackButton().click();
-				waitForSpinnerToDisappear();
-
-				exist(vorgangList.getRoot());
-			})
-
-			it('should have status zu Löschen', () => {
-				haveText(vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordern.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]);
-			})
+			exist(vorgangList.getRoot());
 		})
-	})
 
-	describe('Disable functions', () => {
-
-		it('Open Vorgang-Detail-Page', () => {
-			vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordern.name).getRoot().click();
+		it('Öffne Vorgang für Löschanforderung', () => {
+			vorgangList.getListItem(vorgangNichtLoeschbar.name).getRoot().click();
 			waitForSpinnerToDisappear();
 
 			exist(vorgangPage.getVorgangDetailHeader().getRoot());
 		})
 
-		it('should not have add comment button', () => {
-			const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer();
-
-			notExist(kommentarContainer.getHinzufuegenButton());
+		it('Vorgang ist im Status: Abgeschlossen', () => {
+			haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E.ABGESCHLOSSEN);
 		})
 
-		it('should disable edit comment', () => {
-			const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer();
-
-			notExist(kommentarContainer.getFormular());
-		})
-
-		it('should not have create postfach mail buttons', () => {
-			const postfachMailContainer: PostfachMailE2EComponent = vorgangPage.getPostfachMailcontainer();
-
-			notExist(postfachMailContainer.getCreateButtonWithoutText());
-			notExist(postfachMailContainer.getCreateButtonWithText());
-		})
-
-		it('should not have add wiedervorlage button', () => {
-			const createWiedervorlageButton = vorgangPage.getWiedervorlagenContainer().getCreateWiedervorlageButton();
-
-			notExist(createWiedervorlageButton);
-		})
-
-		it('should disable open Wiedervorlage-Page link ', () => {
-			const wiedervorlageInVorgang: WiedervorlageInVorgangE2EComponent = vorgangPage.getWiedervorlagenContainer().getWiedervorlage('Wiedervorlage');
-
-			notExist(wiedervorlageInVorgang.getLink());
+		it('Löschen anfordern klicken', () => {
+			vorgangFormularButtons.getLoeschenAnfordernButton().click();
+			waitForSpinnerToDisappear();
 		})
 
-		it('should not have user assign button', () => {
-			const userProfileContainer: UserProfileE2EComponent = vorgangPage.getVorgangDetailHeader().getUserContainer();
-
-			notExist(userProfileContainer.getRoot());
+		it('Vorgang ist im Status: Zu Löschen', () => {
+			haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E.ZU_LOESCHEN);
 		})
 
-		it('back to vorgang list', () => {
-			vorgangPage.getSubnavigation().getBackButton().click();
+		it('Button zum Endgültig löschen ist nicht vorhanden', () => {
 			waitForSpinnerToDisappear();
-
-			exist(vorgangList.getRoot());
+			notExist(vorgangFormularButtons.getEndgueltigLoeschenButton());
 		})
-
 	})
 
-	describe('Abgeschlossen: löschen anfordern und rückgängig machen', () => {
-
-		it('Open Vorgang-Detail-Page', () => {
-			vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordernRevoke.name).getRoot().click();
+	describe('with user Sabine', () => {
+		before(() => {
+			initVorgaenge([vorgangAbgeschlossenLoeschenAnfordern, vorgangAbgeschlossenLoeschenAnfordernRevoke, vorgangVerworfenLoeschenAnfordern, vorgangVerworfenLoeschenAnfordernRevoke]);
+			initVorgangAttachedItem([wiedervorlageAttachedItem]);
+	
+			loginAsSabine();
+	
 			waitForSpinnerToDisappear();
-
-			exist(vorgangPage.getVorgangDetailHeader().getRoot());
+			exist(vorgangList.getRoot());
 		})
-
-		describe('by icon-button', () => {
-
-			it('should have status Abgeschlossen', () => {
-				haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangAbgeschlossenLoeschenAnfordernRevoke.status]);
-			})
-
-			it('should show snackBar message', () => {
-				vorgangPage.getSubnavigation().getLoeschenAnfordernByIconButton().click();
-				waitForSpinnerToDisappear();
-
-				exist(snackBar.getCloseButton());
-				contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN);
-			})
-
-			it('should close snackbar on revoke', () => {
-				snackBar.getRevokeButton().click();
+	
+		after(() => {
+			dropCollections();
+		})
+	
+		describe('Abgeschlossen: löschen anfordern', () => {
+	
+			it('Open Vorgang-Detail-Page', () => {
+				vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordern.name).getRoot().click();
 				waitForSpinnerToDisappear();
-
-				notExist(snackBar.getMessage());
+	
+				exist(vorgangPage.getVorgangDetailHeader().getRoot());
 			})
-
-			it('should show status Abgeschlossen', () => {
-				notExist(vorgangPage.getProgressBar());
-
-				haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN]);
+	
+			describe('by button', () => {
+	
+				it('should have status Abgeschlossen', () => {
+					haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangAbgeschlossenLoeschenAnfordern.status]);
+				})
+	
+				it('should click Löschen anfordern button', () => {
+					vorgangFormularButtons.getLoeschenAnfordernButton().click();
+					waitForSpinnerToDisappear();
+				})
+	
+				it('should show snackBar message', () => {
+					exist(snackBar.getCloseButton());
+					contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN)
+				})
+	
+				it('should close snackBar', () => {
+					snackBar.getCloseButton().click();
+	
+					notExist(snackBar.getMessage());
+				})
+	
+				it('should have status zu Löschen', () => {
+					haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]);
+				})
+	
+				it('should redirect Wiedervorlage link to Vorgang', () => {
+					visitUrl(wiedervorlageUrl);
+	
+					exist(vorgangPage.getVorgangDetailHeader().getRoot());
+				})
+	
+				it('should show snackBar message', () => {
+					exist(snackBar.getCloseButton());
+					contains(snackBar.getMessage(), VorgangMessagesE2E.WIEDERVORLAGE_BEARBEITEN_NICHT_MOEGLICH)
+				})
+	
+				it('should close snackBar', () => {
+					snackBar.getCloseButton().click();
+	
+					notExist(snackBar.getMessage());
+				})
+	
+				it('back to vorgang list', () => {
+					vorgangPage.getSubnavigation().getBackButton().click();
+					waitForSpinnerToDisappear();
+	
+					exist(vorgangList.getRoot());
+				})
+	
+				it('should have status zu Löschen', () => {
+					haveText(vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordern.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]);
+				})
 			})
-
-			it('back to vorgang list', () => {
-				vorgangPage.getSubnavigation().getBackButton().click();
+		})
+	
+		describe('Disable functions', () => {
+	
+			it('Open Vorgang-Detail-Page', () => {
+				vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordern.name).getRoot().click();
 				waitForSpinnerToDisappear();
-
-				exist(vorgangList.getRoot());
+	
+				exist(vorgangPage.getVorgangDetailHeader().getRoot());
 			})
-
-			it('should have status Abgeschlossen', () => {
-				haveText(vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordernRevoke.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN])
+	
+			it('should not have add comment button', () => {
+				const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer();
+	
+				notExist(kommentarContainer.getHinzufuegenButton());
 			})
-		})
-	})
-
-	describe('Verworfen: löschen anfordern', () => {
-
-		it('Open Vorgang-Detail-Page', () => {
-			vorgangList.getListItem(vorgangVerworfenLoeschenAnfordern.name).getRoot().click();
-			waitForSpinnerToDisappear();
-
-			exist(vorgangPage.getVorgangDetailHeader().getRoot());
-		})
-
-		describe('by button', () => {
-
-			it('should have status Verworfen', () => {
-				haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangVerworfenLoeschenAnfordern.status]);
+	
+			it('should disable edit comment', () => {
+				const kommentarContainer: KommentareInVorgangE2EComponent = vorgangPage.getKommentarContainer();
+	
+				notExist(kommentarContainer.getFormular());
 			})
-
-			it('should show snackBar message', () => {
-				vorgangFormularButtons.getLoeschenAnfordernButton().click();
-				waitForSpinnerToDisappear();
-
-				exist(snackBar.getCloseButton());
-				contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN)
+	
+			it('should not have create postfach mail buttons', () => {
+				const postfachMailContainer: PostfachMailE2EComponent = vorgangPage.getPostfachMailcontainer();
+	
+				notExist(postfachMailContainer.getCreateButtonWithoutText());
+				notExist(postfachMailContainer.getCreateButtonWithText());
 			})
-
-			it('should close snackBar', () => {
-				snackBar.getCloseButton().click();
-
-				notExist(snackBar.getMessage());
+	
+			it('should not have add wiedervorlage button', () => {
+				const createWiedervorlageButton = vorgangPage.getWiedervorlagenContainer().getCreateWiedervorlageButton();
+	
+				notExist(createWiedervorlageButton);
 			})
-
-			it('should have status zu Löschen', () => {
-				haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]);
+	
+			it('should disable open Wiedervorlage-Page link ', () => {
+				const wiedervorlageInVorgang: WiedervorlageInVorgangE2EComponent = vorgangPage.getWiedervorlagenContainer().getWiedervorlage('Wiedervorlage');
+	
+				notExist(wiedervorlageInVorgang.getLink());
 			})
-
+	
+			it('should not have user assign button', () => {
+				const userProfileContainer: UserProfileE2EComponent = vorgangPage.getVorgangDetailHeader().getUserContainer();
+	
+				notExist(userProfileContainer.getRoot());
+			})
+	
 			it('back to vorgang list', () => {
 				vorgangPage.getSubnavigation().getBackButton().click();
 				waitForSpinnerToDisappear();
-
+	
 				exist(vorgangList.getRoot());
 			})
-
-			it('should have status zu Löschen', () => {
-				haveText(vorgangList.getListItem(vorgangVerworfenLoeschenAnfordern.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]);
-			})
+	
 		})
-	})
-
-	describe('Verworfen: löschen anfordern und rückgängig machen', () => {
-
-		it('Open Vorgang-Detail-Page', () => {
-			vorgangList.getListItem(vorgangVerworfenLoeschenAnfordernRevoke.name).getRoot().click();
-			waitForSpinnerToDisappear();
-
-			exist(vorgangPage.getVorgangDetailHeader().getRoot());
-		})
-
-		describe('by icon-button', () => {
-
-			it('should have status Verworfen', () => {
-				haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangVerworfenLoeschenAnfordernRevoke.status]);
-			})
-
-			it('should show snackBar message', () => {
-				vorgangPage.getSubnavigation().getLoeschenAnfordernByIconButton().click();
+	
+		describe('Abgeschlossen: löschen anfordern und rückgängig machen', () => {
+	
+			it('Open Vorgang-Detail-Page', () => {
+				vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordernRevoke.name).getRoot().click();
 				waitForSpinnerToDisappear();
-
-				exist(snackBar.getCloseButton());
-				contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN);
+	
+				exist(vorgangPage.getVorgangDetailHeader().getRoot());
 			})
-
-			it('should close snackbar on revoke', () => {
-				snackBar.getRevokeButton().click();
+	
+			describe('by icon-button', () => {
+	
+				it('should have status Abgeschlossen', () => {
+					haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangAbgeschlossenLoeschenAnfordernRevoke.status]);
+				})
+	
+				it('should show snackBar message', () => {
+					vorgangPage.getSubnavigation().getLoeschenAnfordernByIconButton().click();
+					waitForSpinnerToDisappear();
+	
+					exist(snackBar.getCloseButton());
+					contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN);
+				})
+	
+				it('should close snackbar on revoke', () => {
+					snackBar.getRevokeButton().click();
+					waitForSpinnerToDisappear();
+	
+					notExist(snackBar.getMessage());
+				})
+	
+				it('should show status Abgeschlossen', () => {
+					notExist(vorgangPage.getProgressBar());
+	
+					haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN]);
+				})
+	
+				it('back to vorgang list', () => {
+					vorgangPage.getSubnavigation().getBackButton().click();
+					waitForSpinnerToDisappear();
+	
+					exist(vorgangList.getRoot());
+				})
+	
+				it('should have status Abgeschlossen', () => {
+					haveText(vorgangList.getListItem(vorgangAbgeschlossenLoeschenAnfordernRevoke.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ABGESCHLOSSEN])
+				})
+			})
+		})
+	
+		describe('Verworfen: löschen anfordern', () => {
+	
+			it('Open Vorgang-Detail-Page', () => {
+				vorgangList.getListItem(vorgangVerworfenLoeschenAnfordern.name).getRoot().click();
 				waitForSpinnerToDisappear();
-
-				notExist(snackBar.getMessage());
+	
+				exist(vorgangPage.getVorgangDetailHeader().getRoot());
 			})
-
-			it('should show status Verworfen', () => {
-				notExist(vorgangPage.getProgressBar());
-
-				haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.VERWORFEN]);
+	
+			describe('by button', () => {
+	
+				it('should have status Verworfen', () => {
+					haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangVerworfenLoeschenAnfordern.status]);
+				})
+	
+				it('should show snackBar message', () => {
+					vorgangFormularButtons.getLoeschenAnfordernButton().click();
+					waitForSpinnerToDisappear();
+	
+					exist(snackBar.getCloseButton());
+					contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN)
+				})
+	
+				it('should close snackBar', () => {
+					snackBar.getCloseButton().click();
+	
+					notExist(snackBar.getMessage());
+				})
+	
+				it('should have status zu Löschen', () => {
+					haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]);
+				})
+	
+				it('back to vorgang list', () => {
+					vorgangPage.getSubnavigation().getBackButton().click();
+					waitForSpinnerToDisappear();
+	
+					exist(vorgangList.getRoot());
+				})
+	
+				it('should have status zu Löschen', () => {
+					haveText(vorgangList.getListItem(vorgangVerworfenLoeschenAnfordern.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.ZU_LOESCHEN]);
+				})
 			})
-
-			it('back to vorgang list', () => {
-				vorgangPage.getSubnavigation().getBackButton().click();
+		})
+	
+		describe('Verworfen: löschen anfordern und rückgängig machen', () => {
+	
+			it('Open Vorgang-Detail-Page', () => {
+				vorgangList.getListItem(vorgangVerworfenLoeschenAnfordernRevoke.name).getRoot().click();
 				waitForSpinnerToDisappear();
-
-				exist(vorgangList.getRoot());
+	
+				exist(vorgangPage.getVorgangDetailHeader().getRoot());
 			})
-
-			it('should have status Verworfen', () => {
-				haveText(vorgangList.getListItem(vorgangVerworfenLoeschenAnfordernRevoke.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.VERWORFEN])
+	
+			describe('by icon-button', () => {
+	
+				it('should have status Verworfen', () => {
+					haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[vorgangVerworfenLoeschenAnfordernRevoke.status]);
+				})
+	
+				it('should show snackBar message', () => {
+					vorgangPage.getSubnavigation().getLoeschenAnfordernByIconButton().click();
+					waitForSpinnerToDisappear();
+	
+					exist(snackBar.getCloseButton());
+					contains(snackBar.getMessage(), VorgangMessagesE2E.LOESCHEN_ANFORDERN);
+				})
+	
+				it('should close snackbar on revoke', () => {
+					snackBar.getRevokeButton().click();
+					waitForSpinnerToDisappear();
+	
+					notExist(snackBar.getMessage());
+				})
+	
+				it('should show status Verworfen', () => {
+					notExist(vorgangPage.getProgressBar());
+	
+					haveText(vorgangPage.getVorgangDetailHeader().getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.VERWORFEN]);
+				})
+	
+				it('back to vorgang list', () => {
+					vorgangPage.getSubnavigation().getBackButton().click();
+					waitForSpinnerToDisappear();
+	
+					exist(vorgangList.getRoot());
+				})
+	
+				it('should have status Verworfen', () => {
+					haveText(vorgangList.getListItem(vorgangVerworfenLoeschenAnfordernRevoke.name).getStatus(), vorgangStatusLabelE2E[VorgangStatusE2E.VERWORFEN])
+				})
 			})
 		})
 	})
 });
+
+