From 8246746dae5fc64d3f974b312fcf54bf50e7a2e6 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Mon, 23 May 2022 15:46:23 +0200
Subject: [PATCH] OZG-2416 OZG-2460 fix imports of moved test file

---
 .../binary-file-container.component.spec.ts   |  2 +-
 .../anhaenge/anhaenge.component.spec.ts       |  2 +-
 .../anhang-list-container.component.spec.ts   |  2 +-
 .../ozg-file-container.component.spec.ts      |  2 +-
 .../ozg-file/ozg-file.component.spec.ts       |  2 +-
 .../src/lib/postfach.service.spec.ts          |  2 +-
 ...ch-nachricht-attachments.component.spec.ts |  4 +--
 .../src/lib/vorgang.service.spec.ts           |  2 +-
 .../src/lib/state.service.ts                  | 35 +++++++++++++++++++
 .../src/lib/wiedervorlage.service.spec.ts     |  2 +-
 .../wiedervorlage-form.component.spec.ts      |  2 +-
 11 files changed, 46 insertions(+), 11 deletions(-)
 create mode 100644 goofy-client/libs/wiedervorlage-shared/src/lib/state.service.ts

diff --git a/goofy-client/libs/binary-file/src/lib/binary-file-container/binary-file-container.component.spec.ts b/goofy-client/libs/binary-file/src/lib/binary-file-container/binary-file-container.component.spec.ts
index a3740fd67c..3fbfbf83bf 100644
--- a/goofy-client/libs/binary-file/src/lib/binary-file-container/binary-file-container.component.spec.ts
+++ b/goofy-client/libs/binary-file/src/lib/binary-file-container/binary-file-container.component.spec.ts
@@ -3,7 +3,7 @@ import { BinaryFileService, OzgFileResource } from '@goofy-client/binary-file-sh
 import { OzgFileContainerComponent } from '@goofy-client/ozg-file';
 import { createEmptyStateResource, createStateResource, HasLinkPipe, StateResource } from '@goofy-client/tech-shared';
 import { mock } from '@goofy-client/test-utils';
-import { createOzgFileResource } from 'libs/ozg-file-shared/test/ozg-file';
+import { createOzgFileResource } from 'libs/binary-file-shared/test/binary-file';
 import { FileUploadEditorComponent } from 'libs/ui/src/lib/ui/editor/file-upload-editor/file-upload-editor.component';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
diff --git a/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhaenge/anhaenge.component.spec.ts b/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhaenge/anhaenge.component.spec.ts
index bb4a46170e..2a26a87a5a 100644
--- a/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhaenge/anhaenge.component.spec.ts
+++ b/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhaenge/anhaenge.component.spec.ts
@@ -1,5 +1,5 @@
 import { ComponentFixture, TestBed } from '@angular/core/testing';
-import { createOzgFileResources } from 'libs/ozg-file-shared/test/ozg-file';
+import { createOzgFileResources } from 'libs/binary-file-shared/test/binary-file';
 import { MockComponent } from 'ng-mocks';
 import { OzgFileContainerComponent } from '../../ozg-file-container/ozg-file-container.component';
 import { AnhaengeComponent } from './anhaenge.component';
diff --git a/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.spec.ts b/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.spec.ts
index e4dfee86c6..79e5ef7f2c 100644
--- a/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.spec.ts
+++ b/goofy-client/libs/ozg-file/src/lib/anhang-list-container/anhang-list-container.component.spec.ts
@@ -4,7 +4,7 @@ import { createEmptyStateResource, createStateResource, HasLinkPipe, StateResour
 import { mock } from '@goofy-client/test-utils';
 import { ExpansionPanelComponent, SpinnerComponent } from '@goofy-client/ui';
 import { VorgangService } from '@goofy-client/vorgang-shared';
-import { createOzgFileListResource } from 'libs/ozg-file-shared/test/ozg-file';
+import { createOzgFileListResource } from 'libs/binary-file-shared/test/binary-file';
 import { MockComponent } from 'ng-mocks';
 import { AnhaengeComponent } from './anhaenge/anhaenge.component';
 import { AnhangListContainerComponent } from './anhang-list-container.component';
diff --git a/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file-container.component.spec.ts b/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file-container.component.spec.ts
index 62fa608ad0..ec18bc4dd4 100644
--- a/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file-container.component.spec.ts
+++ b/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file-container.component.spec.ts
@@ -3,7 +3,7 @@ import { ApiRootService } from '@goofy-client/api-root-shared';
 import { BinaryFileService, OzgFileLinkRel, OzgFileResource } from '@goofy-client/binary-file-shared';
 import { ConvertForDataTestPipe } from '@goofy-client/tech-shared';
 import { mock } from '@goofy-client/test-utils';
-import { createOzgFileResource } from 'libs/ozg-file-shared/test/ozg-file';
+import { createOzgFileResource } from 'libs/binary-file-shared/test/binary-file';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
 import { OzgFileContainerComponent } from './ozg-file-container.component';
diff --git a/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file/ozg-file.component.spec.ts b/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file/ozg-file.component.spec.ts
index 1d71f9efda..9f02c400bb 100644
--- a/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file/ozg-file.component.spec.ts
+++ b/goofy-client/libs/ozg-file/src/lib/ozg-file-container/ozg-file/ozg-file.component.spec.ts
@@ -6,7 +6,7 @@ import { ApiDownloadToken } from '@goofy-client/api-root-shared';
 import { OzgFileLinkRel, OzgFileResource } from '@goofy-client/binary-file-shared';
 import { createEmptyStateResource, FileSizePipe, HasLinkPipe, ToResourceUriPipe } from '@goofy-client/tech-shared';
 import { IconButtonWithSpinnerComponent, SpinnerComponent } from '@goofy-client/ui';
-import { createOzgFileResource } from 'libs/ozg-file-shared/test/ozg-file';
+import { createOzgFileResource } from 'libs/binary-file-shared/test/binary-file';
 import { MockComponent, MockDirective } from 'ng-mocks';
 import { OzgFileComponent } from './ozg-file.component';
 
diff --git a/goofy-client/libs/postfach-shared/src/lib/postfach.service.spec.ts b/goofy-client/libs/postfach-shared/src/lib/postfach.service.spec.ts
index 211b9d99a6..632cfe1173 100644
--- a/goofy-client/libs/postfach-shared/src/lib/postfach.service.spec.ts
+++ b/goofy-client/libs/postfach-shared/src/lib/postfach.service.spec.ts
@@ -6,9 +6,9 @@ import { Mock, mock, useFromMock } from '@goofy-client/test-utils';
 import { SnackBarService } from '@goofy-client/ui';
 import { VorgangService } from '@goofy-client/vorgang-shared';
 import { cold, hot } from 'jest-marbles';
+import { createOzgFileListResource, createOzgFileResources } from 'libs/binary-file-shared/test/binary-file';
 import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel';
 import { createCommandResource } from 'libs/command-shared/test/command';
-import { createOzgFileListResource, createOzgFileResources } from 'libs/ozg-file-shared/test/ozg-file';
 import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
 import { of } from 'rxjs';
 import { PostfachMailLinkRel } from '..';
diff --git a/goofy-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail/postfach-nachricht-attachments/postfach-nachricht-attachments.component.spec.ts b/goofy-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail/postfach-nachricht-attachments/postfach-nachricht-attachments.component.spec.ts
index c76bc46964..d4501d91ae 100644
--- a/goofy-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail/postfach-nachricht-attachments/postfach-nachricht-attachments.component.spec.ts
+++ b/goofy-client/libs/postfach/src/lib/postfach-mail-list-container/postfach-mail-list/postfach-mail/postfach-nachricht-attachments/postfach-nachricht-attachments.component.spec.ts
@@ -1,13 +1,13 @@
 import { registerLocaleData } from '@angular/common';
 import localeDe from '@angular/common/locales/de';
 import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { OzgFileListResource } from '@goofy-client/binary-file-shared';
 import { OzgFileContainerComponent } from '@goofy-client/ozg-file';
-import { OzgFileListResource } from '@goofy-client/ozg-file-shared';
 import { PostfachMailResource, PostfachService } from '@goofy-client/postfach-shared';
 import { ConvertForDataTestPipe, createStateResource } from '@goofy-client/tech-shared';
 import { Mock, mock } from '@goofy-client/test-utils';
 import { SpinnerComponent } from '@goofy-client/ui';
-import { createOzgFileListResource } from 'libs/ozg-file-shared/test/ozg-file';
+import { createOzgFileListResource } from 'libs/binary-file-shared/test/binary-file';
 import { createPostfachMailResource } from 'libs/postfach-shared/test/postfach';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
diff --git a/goofy-client/libs/vorgang-shared/src/lib/vorgang.service.spec.ts b/goofy-client/libs/vorgang-shared/src/lib/vorgang.service.spec.ts
index 66de14f361..6ecf1133f8 100644
--- a/goofy-client/libs/vorgang-shared/src/lib/vorgang.service.spec.ts
+++ b/goofy-client/libs/vorgang-shared/src/lib/vorgang.service.spec.ts
@@ -4,9 +4,9 @@ import { createEmptyStateResource, createStateResource, NavigationService, State
 import { Mock, mock, useFromMock } from '@goofy-client/test-utils';
 import { getUrl, ResourceUri } from '@ngxp/rest';
 import { cold, hot } from 'jest-marbles';
+import { createOzgFileListResource } from 'libs/binary-file-shared/test/binary-file';
 import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel';
 import { createCommandListResource, createCommandResource } from 'libs/command-shared/test/command';
-import { createOzgFileListResource } from 'libs/ozg-file-shared/test/ozg-file';
 import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
 import { of } from 'rxjs';
 import { VorgangWithEingangLinkRel } from './vorgang.linkrel';
diff --git a/goofy-client/libs/wiedervorlage-shared/src/lib/state.service.ts b/goofy-client/libs/wiedervorlage-shared/src/lib/state.service.ts
new file mode 100644
index 0000000000..cdb5d65559
--- /dev/null
+++ b/goofy-client/libs/wiedervorlage-shared/src/lib/state.service.ts
@@ -0,0 +1,35 @@
+import { OzgFileListResource } from '@goofy-client/ozg-file-shared';
+import { createEmptyStateResource, doIfLoadingRequired, ListResource, StateResource } from '@goofy-client/tech-shared';
+import { getUrl, Resource, ResourceUri } from '@ngxp/rest';
+import { isNil } from 'lodash-es';
+import { BehaviorSubject, Observable } from 'rxjs';
+import { WiedervorlageResource } from './wiedervorlage.model';
+
+//Eine Util klasse zum Laden und Aktualiseren von "maps" -> {uri: behaviourSubject}
+export function getResourceList(wiedervorlage: WiedervorlageResource, loadingFunction): Observable<StateResource<OzgFileListResource>> {
+	const uri: ResourceUri = getUrl(wiedervorlage);
+
+	if (isNil(this.attachmentListByWiedervorlage[uri])) {
+		this.attachmentListByWiedervorlage[uri] = new BehaviorSubject(createEmptyStateResource());
+	} else {
+		this.attachmentListByWiedervorlage[uri].next(createEmptyStateResource());
+	}
+
+	doIfLoadingRequired(this.attachmentListByWiedervorlage[uri].value, () => loadResourceList(wiedervorlage, loadingFunction));
+
+	return this.attachmentListByWiedervorlage[uri].asObservable();
+}
+
+function loadResourceList(wiedervorlage: Resource, loadingFunction): void {
+	setAttachmentLoading(wiedervorlage);
+	if (!isNil(this.attachmentSubscription)) this.attachmentSubscription.unsubscribe();
+	this.attachmentSubscription = loadingFunction().subscribe((fileList: StateResource<ListResource>) => {
+		if (fileList.loaded) {
+			this.attachmentListByWiedervorlage[getUrl(wiedervorlage)].next(fileList);
+		}
+	});
+}
+
+function setAttachmentLoading(wiedervorlage: Resource): void {
+	this.attachmentListByWiedervorlage[getUrl(wiedervorlage)].next({ ...this.attachmentListByWiedervorlage[getUrl(wiedervorlage)].value, loading: true });
+}
\ No newline at end of file
diff --git a/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.spec.ts b/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.spec.ts
index 97decccecc..991198bf5f 100644
--- a/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.spec.ts
+++ b/goofy-client/libs/wiedervorlage-shared/src/lib/wiedervorlage.service.spec.ts
@@ -6,9 +6,9 @@ import { SnackBarService } from '@goofy-client/ui';
 import { VorgangHeaderLinkRel, VorgangService, VorgangWithEingangResource } from '@goofy-client/vorgang-shared';
 import { getUrl } from '@ngxp/rest';
 import { cold, hot } from 'jest-marbles';
+import { createOzgFileListResource } from 'libs/binary-file-shared/test/binary-file';
 import { CommandLinkRel } from 'libs/command-shared/src/lib/command.linkrel';
 import { createCommandResource } from 'libs/command-shared/test/command';
-import { createOzgFileListResource } from 'libs/ozg-file-shared/test/ozg-file';
 import { createVorgangWithEingangResource } from 'libs/vorgang-shared/test/vorgang';
 import { createWiedervorlage, createWiedervorlageListResource, createWiedervorlageResource } from 'libs/wiedervorlage-shared/test/wiedervorlage';
 import { of } from 'rxjs';
diff --git a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage-form.component.spec.ts b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage-form.component.spec.ts
index 27b77f32cb..a6f057043e 100644
--- a/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage-form.component.spec.ts
+++ b/goofy-client/libs/wiedervorlage/src/lib/wiedervorlage-page-container/wiedervorlage-page/wiedervorlage-form/wiedervorlage-form.component.spec.ts
@@ -6,7 +6,7 @@ import { OzgFileListResource } from '@goofy-client/binary-file-shared';
 import { Mock, mock, useFromMock } from '@goofy-client/test-utils';
 import { DateEditorComponent, TextAreaEditorComponent, TextEditorComponent } from '@goofy-client/ui';
 import { WiedervorlageLinkRel, WiedervorlageResource, WiedervorlageService } from '@goofy-client/wiedervorlage-shared';
-import { createOzgFileListResource } from 'libs/ozg-file-shared/test/ozg-file';
+import { createOzgFileListResource } from 'libs/binary-file-shared/test/binary-file';
 import { createWiedervorlageResource } from 'libs/wiedervorlage-shared/test/wiedervorlage';
 import { MockComponent } from 'ng-mocks';
 import { of } from 'rxjs';
-- 
GitLab