diff --git a/goofy-client/apps/goofy/src/styles/layout/_main.scss b/goofy-client/apps/goofy/src/styles/layout/_main.scss new file mode 100644 index 0000000000000000000000000000000000000000..99ee47fc9cb37b092f95af2227a4a0110c2358fe --- /dev/null +++ b/goofy-client/apps/goofy/src/styles/layout/_main.scss @@ -0,0 +1,9 @@ +.l-scroll-area { + height: calc(100vh - 112px); + background-color: #fff; + display: block; +} + +body.dark .l-scroll-area { + background-color: rgb(40, 40, 40); +} diff --git a/goofy-client/apps/goofy/src/styles/main.scss b/goofy-client/apps/goofy/src/styles/main.scss index 526819fa042b8ac43a350437b9516cff47a02904..527d7ef204ec39cd46dbbf2d2225005849d8cfd3 100644 --- a/goofy-client/apps/goofy/src/styles/main.scss +++ b/goofy-client/apps/goofy/src/styles/main.scss @@ -3,10 +3,10 @@ @import "abstracts/variables"; @import "base/setup"; +@import "layout/main"; @import "~libs/vorgang/src/lib/vorgang-detail/vorgang-detail.theme"; @import "~libs/navigation/src/lib/navigation/navigation.theme"; @import "~libs/navigation/src/lib/header/header.theme"; -@import "~libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.theme"; @import "~libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list-item/vorgang-list-item"; @include mat-core(); diff --git a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.html b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.html new file mode 100644 index 0000000000000000000000000000000000000000..3dafe0a6e8de15f3f9b233516c5a18c3bd467de5 --- /dev/null +++ b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.html @@ -0,0 +1,6 @@ +<goofy-client-subnavigation> + <a routerLink="/" mat-icon-button> + <mat-icon>arrow_back</mat-icon> + </a> +</goofy-client-subnavigation> +<goofy-client-vorgang-detail-container class="l-scroll-area"></goofy-client-vorgang-detail-container> diff --git a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.scss b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.scss new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.spec.ts b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..c8e0a793ee2ef6134e99c0a6d80aaa0ea109c216 --- /dev/null +++ b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.spec.ts @@ -0,0 +1,27 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { VorgangDetailPageComponent } from './vorgang-detail-page.component'; +import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; + +describe('VorgangDetailPageComponent', () => { + let component: VorgangDetailPageComponent; + let fixture: ComponentFixture<VorgangDetailPageComponent>; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + declarations: [ VorgangDetailPageComponent ], + schemas: [CUSTOM_ELEMENTS_SCHEMA] + }) + .compileComponents(); + }); + + beforeEach(() => { + fixture = TestBed.createComponent(VorgangDetailPageComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..44a78b32e405f938f9cc6a18c5859414846d5fbf --- /dev/null +++ b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail-page/vorgang-detail-page.component.ts @@ -0,0 +1,15 @@ +import { Component, OnInit } from '@angular/core'; + +@Component({ + selector: '[goofy-client-vorgang-detail-page]', + templateUrl: './vorgang-detail-page.component.html', + styleUrls: ['./vorgang-detail-page.component.scss'] +}) +export class VorgangDetailPageComponent implements OnInit { + + constructor() { } + + ngOnInit(): void { + } + +} diff --git a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts index 1e8e301af6507288421e56a7c2d045088b658539..a522765b24a5039d69e680bab7493fcddf7acb79 100644 --- a/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts +++ b/goofy-client/libs/vorgang-detail/src/lib/vorgang-detail.module.ts @@ -1,20 +1,26 @@ import { NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { VorgangDetailContainerComponent } from './vorgang-detail-container/vorgang-detail-container.component'; import { RouterModule, Routes } from '@angular/router'; +import { VorgangDetailPageComponent } from './vorgang-detail-page/vorgang-detail-page.component'; +import { UiModule } from '@goofy-client/ui'; +import { VorgangDetailContainerComponent } from './vorgang-detail-container/vorgang-detail-container.component'; const routes: Routes = [ { path: '', - component: VorgangDetailContainerComponent, + component: VorgangDetailPageComponent, } ]; @NgModule({ imports: [ CommonModule, + UiModule, RouterModule.forChild(routes) ], - declarations: [VorgangDetailContainerComponent] + declarations: [ + VorgangDetailPageComponent, + VorgangDetailContainerComponent + ] }) export class VorgangDetailModule {} diff --git a/goofy-client/libs/vorgang-shared/src/lib/vorgang.linkrels.ts b/goofy-client/libs/vorgang-shared/src/lib/vorgang.linkrels.ts index a8bfb35ac676212d35ab8c71469667b4d224e0ae..63d016c299505e53436fc13f5f5ab13af515b184 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/vorgang.linkrels.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/vorgang.linkrels.ts @@ -1,4 +1,4 @@ export enum VorgangListLinkRel { - VORGANG_LIST = 'vorgangList', + VORGANG_HEADER_LIST = 'vorgangHeaderList', NEXT = 'next' } 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 e5e9876e9873800ee5fc4b3f8860f8677197c27c..8b26f92390316a445d3091219e2d76b1c76f422d 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 @@ -86,7 +86,7 @@ describe('VorgangService', () => { }) describe('check vorgaenge after load', () => { - const expected: VorgangResource[] = getEmbeddedResource(vorgangListResource, VorgangListLinkRel.VORGANG_LIST); + const expected: VorgangResource[] = getEmbeddedResource(vorgangListResource, VorgangListLinkRel.VORGANG_HEADER_LIST); beforeEach(() => { repository.loadVorgangList.mockReturnValue(of(vorgangListResource)); @@ -174,10 +174,10 @@ describe('VorgangService', () => { }) describe('check vorgaenge after load', () => { - const vorgaenge: VorgangResource[] = getEmbeddedResource(vorgangListResource, VorgangListLinkRel.VORGANG_LIST); + const vorgaenge: VorgangResource[] = getEmbeddedResource(vorgangListResource, VorgangListLinkRel.VORGANG_HEADER_LIST); const additionalVorgangList: VorgangListResource = createVorgangListResource(); - const additionalVorgaenge: VorgangResource[] = getEmbeddedResource(additionalVorgangList, VorgangListLinkRel.VORGANG_LIST); + const additionalVorgaenge: VorgangResource[] = getEmbeddedResource(additionalVorgangList, VorgangListLinkRel.VORGANG_HEADER_LIST); beforeEach(() => { (<any>service).vorgaenge$.next([]); diff --git a/goofy-client/libs/vorgang-shared/src/lib/vorgang.service.ts b/goofy-client/libs/vorgang-shared/src/lib/vorgang.service.ts index 683047372e8c02fca63f4723e001e14e1396a807..d49f0e4f319075b256a67d8115e24bb463ef4f6d 100644 --- a/goofy-client/libs/vorgang-shared/src/lib/vorgang.service.ts +++ b/goofy-client/libs/vorgang-shared/src/lib/vorgang.service.ts @@ -30,7 +30,7 @@ export class VorgangService { this.vorgangRepository.loadVorgangList(apiRootResource).subscribe(vorgangList => { if (vorgangList !== null) { this.currentVorgangList$.next(createStateResource(vorgangList)); - this.vorgaenge$.next(getEmbeddedResource(vorgangList, VorgangListLinkRel.VORGANG_LIST)); + this.vorgaenge$.next(getEmbeddedResource(vorgangList, VorgangListLinkRel.VORGANG_HEADER_LIST)); this.hasNextPage$.next(hasLink(vorgangList, VorgangListLinkRel.NEXT)); } }) @@ -57,7 +57,7 @@ export class VorgangService { } private addVorgangPage(vorgangListResource: VorgangListResource): void { - const additionalVorgaenge: VorgangResource[] = getEmbeddedResource(vorgangListResource, VorgangListLinkRel.VORGANG_LIST); + const additionalVorgaenge: VorgangResource[] = getEmbeddedResource(vorgangListResource, VorgangListLinkRel.VORGANG_HEADER_LIST); const allVorgaenge: VorgangResource[] = []; allVorgaenge.push.apply(allVorgaenge, this.vorgaenge$.value); diff --git a/goofy-client/libs/vorgang-shared/test/vorgang.ts b/goofy-client/libs/vorgang-shared/test/vorgang.ts index a9ccf0456d1fa3f24630096b292b86763d923de9..fca10e45c5864d28dcebee41a11c6675fb78ad6a 100644 --- a/goofy-client/libs/vorgang-shared/test/vorgang.ts +++ b/goofy-client/libs/vorgang-shared/test/vorgang.ts @@ -22,6 +22,6 @@ export function createVorgangResources(linkRelations: string[] = []): VorgangRes export function createVorgangListResource(linkRelations: string[] = []): VorgangListResource { return toResource({}, [...linkRelations], { - [VorgangListLinkRel.VORGANG_LIST]: createVorgangResources() + [VorgangListLinkRel.VORGANG_HEADER_LIST]: createVorgangResources() }); } \ No newline at end of file diff --git a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/_vorgang-list.theme.scss b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/_vorgang-list.theme.scss deleted file mode 100644 index 4e1f5bcff12ab4c8143f9ae0f7adc39e2ce74ec1..0000000000000000000000000000000000000000 --- a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/_vorgang-list.theme.scss +++ /dev/null @@ -1,7 +0,0 @@ -goofy-client-vorgang-list .scroll-area { - background-color: #fff; -} - -body.dark goofy-client-vorgang-list .scroll-area { - background-color: rgb(40, 40, 40); -} diff --git a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.html b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.html index f1e06e71838d048b56f0cc4523d6ffc35177b5df..290cdee28236733a24fd7dc111c2b802bbfd2753 100644 --- a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.html +++ b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.html @@ -1,7 +1,7 @@ <goofy-client-subnavigation [ngClass]="{ shadow: hasShadow }"></goofy-client-subnavigation> <div class="scroll-area" [ngClass]="{ shadow: hasShadow }"> - <cdk-virtual-scroll-viewport itemSize="88" (scrolledIndexChange)="nextBatch()" (scroll)="onScroll($event)"> + <cdk-virtual-scroll-viewport class="l-scroll-area" itemSize="88" (scrolledIndexChange)="nextBatch()" (scroll)="onScroll($event)"> <goofy-client-vorgang-list-item *cdkVirtualFor="let vorgang of vorgaenge; templateCacheSize: 0" [vorgang]="vorgang"> </goofy-client-vorgang-list-item> diff --git a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.scss b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.scss index 24d1c41ee585a65c762faa7c22d6bae2865332ec..cb18c31a4ec480dec5c82a6ca422ae65b3b231fd 100644 --- a/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.scss +++ b/goofy-client/libs/vorgang/src/lib/vorgang-list-container/vorgang-list/vorgang-list.component.scss @@ -1,6 +1,4 @@ cdk-virtual-scroll-viewport { - height:calc(100vh - 112px); - ::ng-deep { .cdk-virtual-scroll-content-wrapper { min-height: 100%; diff --git a/goofy-server/src/main/java/de/itvsh/goofy/FrontendEnvironment.java b/goofy-server/src/main/java/de/itvsh/goofy/FrontendEnvironment.java index 63dff79abc87735938addadc231e68d6d2d13279..4317d49c857a7e737ed2c53d99ff7f6e8ce69d2f 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/FrontendEnvironment.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/FrontendEnvironment.java @@ -2,11 +2,9 @@ package de.itvsh.goofy; import lombok.Builder; import lombok.Getter; -import lombok.ToString; @Getter @Builder -@ToString public class FrontendEnvironment { private boolean production; diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java index 3371ee470efe3a071d5d3b699d3bdd44405fdaed..71a2cfaaa19772b8ba104594d9ef87c2390d7c09 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java @@ -5,15 +5,14 @@ import java.util.Optional; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.hateoas.CollectionModel; import org.springframework.hateoas.EntityModel; -import org.springframework.hateoas.server.ExposesResourceFor; import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; @RestController @RequestMapping("api/vorgangs") -@ExposesResourceFor(Vorgang.class) public class VorgangController { private static final int PAGE_SIZE = 100; @@ -21,13 +20,15 @@ public class VorgangController { @Autowired private VorgangService vorgangService; @Autowired - private VorgangModelAssembler resourceAssembler; + private VorgangHeaderModelAssembler modelAssembler; + @Autowired + private VorgangMitEingangModelAssembler vorgangMitEingangModelAssembler; @GetMapping - public CollectionModel<EntityModel<Vorgang>> getVorgangListByPage(@RequestParam int page) { + public CollectionModel<EntityModel<VorgangHeader>> getVorgangListByPage(@RequestParam int page) { VorgangListReply vorgangListReply = vorgangService.findVorgangHeader(PAGE_SIZE, page * PAGE_SIZE); - return resourceAssembler.toCollectionModel(vorgangListReply.getVorgaenge().stream(), + return modelAssembler.toCollectionModel(vorgangListReply.getVorgaengeHeader().stream(), hasPreviousPage(page), hasNextPage(page, vorgangListReply, PAGE_SIZE)); } @@ -37,12 +38,23 @@ public class VorgangController { } Optional<Integer> hasNextPage(int page, VorgangListReply vorgangListReply, int pageSize) { - int lastVorgangIndex = page == 0 - ? vorgangListReply.getVorgaenge().size() - : pageSize + (page * pageSize); + int lastVorgangIndex = getLastVorgangIndex(page, vorgangListReply, pageSize); return lastVorgangIndex >= vorgangListReply.getTotal() ? Optional.empty() : Optional.of(page + 1); } + + private int getLastVorgangIndex(int page, VorgangListReply vorgangListReply, int pageSize) { + return page == 0 + ? vorgangListReply.getVorgaengeHeader().size() + : pageSize + (page * pageSize); + } + + @GetMapping("/{vorgangId}") + public EntityModel<VorgangMitEingang> getVorgangMitEingang(@PathVariable String vorgangId) { + VorgangMitEingang vorgangMitEingang = vorgangService.findVorgangMitEingang(vorgangId); + + return vorgangMitEingangModelAssembler.toModel(vorgangMitEingang); + } } \ No newline at end of file diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java.orig b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java.orig deleted file mode 100644 index 8ea7d47a210f163517efb7d3da0cc6f6ef2d53c9..0000000000000000000000000000000000000000 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangController.java.orig +++ /dev/null @@ -1,48 +0,0 @@ -package de.itvsh.goofy.vorgang; - -import java.util.Optional; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.hateoas.CollectionModel; -import org.springframework.hateoas.EntityModel; -import org.springframework.hateoas.server.ExposesResourceFor; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - -@RestController -@RequestMapping("api/vorgangs") -@ExposesResourceFor(Vorgang.class) -public class VorgangController { - - private static final int PAGE_SIZE = 100; - - @Autowired -<<<<<<< HEAD - private VorgangService vorgangService; - @Autowired - private VorgangModelAssembler resourceAssembler; -======= - private VorgangResourceAssembler resourceAssembler; - - @PostConstruct - private void initDummyList() { - for (int i = 0; i < 300; i++) { - vorgangList.add(Vorgang.builder()// - .name((i + 1) + ": " + LoremIpsum.getInstance().getWords(40))// - .status("in Bearbeitung")// - .initialDate(LocalDateTime.now().minus(i * 100, ChronoUnit.HOURS))// - .build()); - } - } ->>>>>>> 28ce51aaae8a010d38ade1c6242c98d0b1c68bda - - @GetMapping - public CollectionModel<EntityModel<Vorgang>> getVorgangListByPage(@RequestParam int page) { - - return resourceAssembler.toCollectionModel(vorgangService.findVorgang(PAGE_SIZE, page * PAGE_SIZE), - page == 0 ? Optional.empty() : Optional.of(page - 1), - Optional.of(page + 1)); - } -} diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangHeader.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangHeader.java index 4bc4fd0c93c8741880fdda695b71d094793e98a8..3197f1b152b63d3bc3899477f29831f04ead17de 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangHeader.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangHeader.java @@ -2,13 +2,16 @@ package de.itvsh.goofy.vorgang; import java.time.LocalDateTime; +import com.fasterxml.jackson.annotation.JsonIgnore; + +import lombok.Builder; import lombok.Getter; -import lombok.Setter; -@Setter @Getter +@Builder class VorgangHeader { + @JsonIgnore private String id; private String name; private String status; diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangMapper.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangHeaderMapper.java similarity index 60% rename from goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangMapper.java rename to goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangHeaderMapper.java index 4230d6bd3209931f44587815cacebe52d30bdd5a..ca5dfbcfafe99e4b3e0ee1421bb2228cf7969ab4 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangMapper.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangHeaderMapper.java @@ -6,9 +6,8 @@ import org.mapstruct.Mapping; import de.itvsh.ozg.pluto.vorgang.PlutoVorgangHeader; @Mapper -public interface VorgangMapper { +interface VorgangHeaderMapper { - @Mapping(target = "vorgangHeader", ignore = true) @Mapping(target = "initialDate", source = "createdAt") - Vorgang toVorgang(PlutoVorgangHeader vorgangHeader); + VorgangHeader toVorgang(PlutoVorgangHeader vorgangHeader); } diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangModelAssembler.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangHeaderModelAssembler.java similarity index 66% rename from goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangModelAssembler.java rename to goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangHeaderModelAssembler.java index e7f7becfce67840d94ea128df95ccbedede75e69..b0ecbd01fcc18eb47faff2bed63ecef612e75d97 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangModelAssembler.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangHeaderModelAssembler.java @@ -1,7 +1,6 @@ package de.itvsh.goofy.vorgang; -import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; -import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; import java.util.Optional; import java.util.stream.Collectors; @@ -15,19 +14,23 @@ import org.springframework.stereotype.Component; import de.itvsh.goofy.common.ResourceBuilder; @Component -public class VorgangModelAssembler implements RepresentationModelAssembler<Vorgang, EntityModel<Vorgang>> { +class VorgangHeaderModelAssembler implements RepresentationModelAssembler<VorgangHeader, EntityModel<VorgangHeader>> { private static final String REL_NEXT = "next"; private static final String REL_PREVIOUS = "previous"; + public static final String REL_VORGANG_MIT_EINGANG = "vorgang-mit-eingang"; @Override - public EntityModel<Vorgang> toModel(Vorgang vorgang) { + public EntityModel<VorgangHeader> toModel(VorgangHeader vorgang) { var selfLink = linkTo(VorgangController.class).slash(vorgang.getId()); - return ResourceBuilder.fromEntity(vorgang).addLink(selfLink.withSelfRel()).buildResource(); + return ResourceBuilder.fromEntity(vorgang).addLink(selfLink.withSelfRel()) + .addLink(linkTo(VorgangController.class).slash(vorgang.getId()).withRel(REL_VORGANG_MIT_EINGANG)) + .buildResource(); } - public CollectionModel<EntityModel<Vorgang>> toCollectionModel(Stream<Vorgang> entities, Optional<Integer> prevPage, Optional<Integer> nextPage) { + public CollectionModel<EntityModel<VorgangHeader>> toCollectionModel(Stream<VorgangHeader> entities, Optional<Integer> prevPage, + Optional<Integer> nextPage) { var model = CollectionModel.of(entities.map(this::toModel).collect(Collectors.toList()), linkTo(VorgangController.class).withSelfRel()); diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangListReply.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangListReply.java index 4c109f6d593f36e74dda5390583d1ee871d9fc3c..aef77f69ef78764f00716f56c05f504d9f9c96ec 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangListReply.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangListReply.java @@ -5,11 +5,11 @@ import java.util.List; import lombok.Builder; import lombok.Getter; -@Builder @Getter +@Builder class VorgangListReply { - private List<Vorgang> vorgaenge; + private List<VorgangHeader> vorgaengeHeader; private long total; } \ No newline at end of file diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/Vorgang.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangMitEingang.java similarity index 56% rename from goofy-server/src/main/java/de/itvsh/goofy/vorgang/Vorgang.java rename to goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangMitEingang.java index b7f96d08fb685f150e2970bf84b1eff0133b5eb8..59c96491db3d8dcd578ccd15b4f611ce4de71114 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/Vorgang.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangMitEingang.java @@ -2,22 +2,18 @@ package de.itvsh.goofy.vorgang; import java.time.LocalDateTime; -import lombok.AllArgsConstructor; +import com.fasterxml.jackson.annotation.JsonIgnore; + import lombok.Builder; import lombok.Getter; -import lombok.Setter; -@Setter @Getter -@AllArgsConstructor -@Builder(toBuilder = true) -public class Vorgang { +@Builder +class VorgangMitEingang { + @JsonIgnore private String id; private String name; private String status; private LocalDateTime initialDate; - - private VorgangHeader vorgangHeader; - -} \ No newline at end of file +} diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangMitEingangModelAssembler.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangMitEingangModelAssembler.java new file mode 100644 index 0000000000000000000000000000000000000000..f627eae53e5ec9d7b0e0d24ddc46b87dfd6c3891 --- /dev/null +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangMitEingangModelAssembler.java @@ -0,0 +1,20 @@ +package de.itvsh.goofy.vorgang; + +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.*; + +import org.springframework.hateoas.EntityModel; +import org.springframework.hateoas.server.RepresentationModelAssembler; +import org.springframework.stereotype.Component; + +import de.itvsh.goofy.common.ResourceBuilder; + +@Component +class VorgangMitEingangModelAssembler implements RepresentationModelAssembler<VorgangMitEingang, EntityModel<VorgangMitEingang>> { + + @Override + public EntityModel<VorgangMitEingang> toModel(VorgangMitEingang vorgang) { + var selfLink = linkTo(VorgangController.class).slash(vorgang.getId()); + + return ResourceBuilder.fromEntity(vorgang).addLink(selfLink.withSelfRel()).buildResource(); + } +} diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangRemoteService.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangRemoteService.java index b0c7a329f427b46931e5a771fe3cad40d6810176..3ff3469b1266d1be1a16e971a5cc5f67e5bfd0d2 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangRemoteService.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangRemoteService.java @@ -16,7 +16,7 @@ class VorgangRemoteService { @GrpcClient("pluto") private VorgangServiceBlockingStub vorgangServiceStub; @Autowired - private VorgangMapper vorgangMapper; + private VorgangHeaderMapper vorgangHeaderMapper; public VorgangListReply findVorgaenge(int limit, int offset) { FindVorgangReply reply = vorgangServiceStub.findVorgang(buildFindVorgangRequest(limit, offset)); @@ -27,8 +27,8 @@ class VorgangRemoteService { private VorgangListReply buildVorgangListReply(FindVorgangReply reply) { return VorgangListReply.builder() .total(reply.getTotal()) - .vorgaenge(reply.getVorgangList().stream() - .map(vorgangMapper::toVorgang) + .vorgaengeHeader(reply.getVorgangList().stream() + .map(vorgangHeaderMapper::toVorgang) .collect(Collectors.toList())) .build(); } @@ -36,4 +36,4 @@ class VorgangRemoteService { private FindVorgangRequest buildFindVorgangRequest(int limit, int offset) { return FindVorgangRequest.newBuilder().setLimit(limit).setOffset(offset).build(); } -} +} \ No newline at end of file diff --git a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangService.java b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangService.java index 082a5de2fda69d6b326c465c097321e57b435be4..af8f2fe80d29b688076b198ab2c53aee68090f73 100644 --- a/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangService.java +++ b/goofy-server/src/main/java/de/itvsh/goofy/vorgang/VorgangService.java @@ -1,5 +1,8 @@ package de.itvsh.goofy.vorgang; +import java.time.LocalDateTime; +import java.util.UUID; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -12,4 +15,14 @@ class VorgangService { public VorgangListReply findVorgangHeader(int limit, int offset) { return remoteService.findVorgaenge(limit, offset); } + + public VorgangMitEingang findVorgangMitEingang(String vorgangId) { + // TODO durch Aufruf des remotServices ersetzen + return VorgangMitEingang.builder()// + .id(UUID.randomUUID().toString())// + .name("vorgangMitEingang")// + .status("Neu")// + .initialDate(LocalDateTime.now()) + .build(); + } } diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerTest.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerTest.java index 64ebf3c80efb6aba27c42571e13c16c1a08e4d5e..844502414e345170e090d7d2cc45b2d4675e98e2 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerTest.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerTest.java @@ -1,19 +1,27 @@ package de.itvsh.goofy.vorgang; +import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; +import java.util.LinkedList; +import java.util.List; +import java.util.Optional; + import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Nested; import org.junit.jupiter.api.Test; +import org.mockito.Spy; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.test.web.servlet.MockMvc; +import com.thedeanda.lorem.LoremIpsum; + @SpringBootTest @AutoConfigureMockMvc class VorgangControllerTest { @@ -26,65 +34,116 @@ class VorgangControllerTest { @MockBean private VorgangService vorgangService; - @BeforeEach - void initTest() { - when(vorgangService.findVorgangHeader(anyInt(), anyInt())).thenReturn(VorgangListReplyTestFactory.create()); - } + @MockBean + private VorgangHeaderModelAssembler modelAssembler; - @Test - void shouldHaveSelfLink() throws Exception { - mockMvc.perform(get(PATH + "?page=" + 0)).andExpect(status().isOk())// - .andExpect(jsonPath("$._links.self.href").value("http://localhost" + PATH)); - } + @MockBean + private VorgangMitEingangModelAssembler vorgangMitEingangModelAssembler; + + @Spy + private VorgangController controller; @Nested - class TestVorgangListFirstPage { + class TestVorgangListByPage { + final int page = 0; + @BeforeEach + void initTest() { + when(vorgangService.findVorgangHeader(anyInt(), anyInt())).thenReturn(VorgangListReplyTestFactory.create()); + } + @Test - void shouldNotHavePreviousLink() throws Exception { - mockMvc.perform(get(PATH + "?page=" + page)).andExpect(status().isOk())// - .andExpect(jsonPath("$._links.previous").doesNotExist()); + void shouldCallService() throws Exception { + callEndpoint(); + + verify(vorgangService).findVorgangHeader(anyInt(), anyInt()); } @Test - void shouldHaveNextLink() throws Exception { - mockMvc.perform(get(PATH + "?page=" + page)).andExpect(status().isOk())// - .andExpect(jsonPath("$._links.next.href").value("http://localhost" + PATH + "?page=1")); + void shouldCallModelAssembler() throws Exception { + callEndpoint(); + + verify(modelAssembler).toCollectionModel(any(), any(), any()); + } + + private void callEndpoint() throws Exception { + mockMvc.perform(get(PATH + "?page=" + page)).andExpect(status().isOk()); } } @Nested - class TestVorgangInnerPage { - final int page = 1; + class TestVorgangMitEingang { + + final int page = 0; + + @BeforeEach + void initTest() { + when(vorgangService.findVorgangMitEingang(any())).thenReturn(VorgangMitEingangTestFactory.create()); + } @Test - void shouldHavePreviousLink() throws Exception { - mockMvc.perform(get(PATH + "?page=" + page)).andExpect(status().isOk())// - .andExpect(jsonPath("$._links.previous.href").value("http://localhost" + PATH + "?page=0")); + void shouldCallService() throws Exception { + callEndpoint(); + + verify(vorgangService).findVorgangMitEingang(VorgangMitEingangTestFactory.ID); } @Test - void shouldHaveNextLink() throws Exception { - mockMvc.perform(get(PATH + "?page=" + page)).andExpect(status().isOk())// - .andExpect(jsonPath("$._links.next.href").value("http://localhost" + PATH + "?page=2")); + void shouldCallModelAssembler() throws Exception { + callEndpoint(); + + verify(vorgangMitEingangModelAssembler).toModel(any()); + } + + private void callEndpoint() throws Exception { + mockMvc.perform(get(PATH + "/" + VorgangMitEingangTestFactory.ID)).andExpect(status().isOk()); } } @Nested - class TestVorgangLastPage { - final int page = 3; + class TestHasNextPage { + + final int pageSize = 10; + List<VorgangHeader> VORGANG_LIST = new LinkedList<VorgangHeader>(); + VorgangListReply reply; + + @BeforeEach + void createVorgangList() { + for (int i = 0; i < 10; i++) { + VORGANG_LIST.add(VorgangHeaderTestFactory.createBuilder().name(i + LoremIpsum.getInstance().getName()).build()); + } + + reply = VorgangListReply.builder().total(28).vorgaengeHeader(VORGANG_LIST).build(); + } @Test - void shouldHavePreviousLink() throws Exception { - mockMvc.perform(get(PATH + "?page=" + page)).andExpect(status().isOk())// - .andExpect(jsonPath("$._links.previous.href").value("http://localhost" + PATH + "?page=2")); + void firstPage() { + int page = 0; + + Optional<Integer> nextPage = controller.hasNextPage(page, reply, pageSize); + + assertThat(nextPage.isEmpty()).isEqualTo(false); + assertThat(nextPage.get()).isEqualTo(1); + } + + @Test + void secondPage() { + int page = 1; + + Optional<Integer> nextPage = controller.hasNextPage(page, reply, pageSize); + + assertThat(nextPage.isEmpty()).isEqualTo(false); + assertThat(nextPage.get()).isEqualTo(2); } @Test - void shouldHaveNextLink() throws Exception { - mockMvc.perform(get(PATH + "?page=" + page)).andExpect(status().isOk())// - .andExpect(jsonPath("$._links.next").doesNotExist()); + void lastPage() { + int page = 2; + + Optional<Integer> nextPage = controller.hasNextPage(page, reply, pageSize); + + assertThat(nextPage.isEmpty()).isEqualTo(true); } } } \ No newline at end of file diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerUnitTest.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerUnitTest.java deleted file mode 100644 index 2a1146d68d60055f92326f8298f78b02d03babf5..0000000000000000000000000000000000000000 --- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangControllerUnitTest.java +++ /dev/null @@ -1,65 +0,0 @@ -package de.itvsh.goofy.vorgang; - -import static org.assertj.core.api.Assertions.*; - -import java.util.LinkedList; -import java.util.List; -import java.util.Optional; - -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Nested; -import org.junit.jupiter.api.Test; -import org.mockito.InjectMocks; - -import com.thedeanda.lorem.LoremIpsum; - -class VorgangControllerUTest { - - @InjectMocks - private VorgangController controller; - - @Nested - class TestHasNextPage { - final int pageSize = 10; - List<Vorgang> VORGANG_LIST = new LinkedList<Vorgang>(); - VorgangListReply reply; - - @BeforeEach - void createVorgangList() { - for (int i = 0; i < 10; i++) { - VORGANG_LIST.add(VorgangTestFactory.createBuilder().name(i + LoremIpsum.getInstance().getName()).build()); - } - - reply = VorgangListReply.builder().total(28).vorgaenge(VORGANG_LIST).build(); - } - - @Test - void firstPage() { - int page = 0; - - Optional<Integer> nextPage = controller.hasNextPage(page, reply, pageSize); - - assertThat(nextPage.isEmpty()).isEqualTo(false); - assertThat(nextPage.get()).isEqualTo(1); - } - - @Test - void secondPage() { - int page = 1; - - Optional<Integer> nextPage = controller.hasNextPage(page, reply, pageSize); - - assertThat(nextPage.isEmpty()).isEqualTo(false); - assertThat(nextPage.get()).isEqualTo(2); - } - - @Test - void lastPage() { - int page = 2; - - Optional<Integer> nextPage = controller.hasNextPage(page, reply, pageSize); - - assertThat(nextPage.isEmpty()).isEqualTo(true); - } - } -} \ No newline at end of file diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangHeaderModelAssemblerTest.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangHeaderModelAssemblerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..111e373bc4a6096a7dd559f6e6a4bdedd66e0d01 --- /dev/null +++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangHeaderModelAssemblerTest.java @@ -0,0 +1,57 @@ +package de.itvsh.goofy.vorgang; + +import static org.assertj.core.api.Assertions.*; + +import java.util.Optional; +import java.util.stream.Stream; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.springframework.hateoas.CollectionModel; +import org.springframework.hateoas.EntityModel; +import org.springframework.hateoas.IanaLinkRelations; +import org.springframework.hateoas.server.EntityLinks; + +class VorgangHeaderModelAssemblerTest { + + @InjectMocks + private VorgangHeaderModelAssembler modelAssembler; + + @Mock + private EntityLinks entityLinks; + + @Test + void statusLinksOnVerfahrenNeu() throws Exception { + CollectionModel<EntityModel<VorgangHeader>> collectionModel = modelAssembler.toCollectionModel(Stream.of(VorgangHeaderTestFactory.create()), + Optional.empty(), + Optional.of(2)); + + assertThat(collectionModel.getContent()).hasSize(1); + } + + @Nested + class TestLinksOnModel { + + @Test + void shouldHaveSelfLink() { + EntityModel<VorgangHeader> entityModel = modelAssembler.toModel(VorgangHeaderTestFactory.create()); + + var link = entityModel.getLink(IanaLinkRelations.SELF); + + assertThat(link.isPresent()).isTrue(); + assertThat(link.get().getHref()).isEqualTo("/api/vorgangs/" + VorgangHeaderTestFactory.ID); + } + + @Test + void shouldHaveVorgangMitEingangLink() { + EntityModel<VorgangHeader> entityModel = modelAssembler.toModel(VorgangHeaderTestFactory.create()); + + var link = entityModel.getLink(VorgangHeaderModelAssembler.REL_VORGANG_MIT_EINGANG); + + assertThat(link.isPresent()).isTrue(); + assertThat(link.get().getHref()).isEqualTo("/api/vorgangs/" + VorgangHeaderTestFactory.ID); + } + } +} \ No newline at end of file diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangTestFactory.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangHeaderTestFactory.java similarity index 64% rename from goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangTestFactory.java rename to goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangHeaderTestFactory.java index d1f18dbda58bdfc2542b58c8b783e4a5d0d063ac..c8812a45628f26b630eb6fd1032a5df00c6211a7 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangTestFactory.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangHeaderTestFactory.java @@ -5,19 +5,19 @@ import java.util.UUID; import com.thedeanda.lorem.LoremIpsum; -public class VorgangTestFactory { +public class VorgangHeaderTestFactory { - private static final String ID = UUID.randomUUID().toString(); + public static final String ID = UUID.randomUUID().toString(); private static String NAME = LoremIpsum.getInstance().getWords(10); private static String STATUS = "VorgangsStatus"; private static LocalDateTime INITIAL_DATE = LocalDateTime.now(); - public static Vorgang create() { + public static VorgangHeader create() { return createBuilder().build(); } - public static Vorgang.VorgangBuilder createBuilder() { - return Vorgang.builder()// + public static VorgangHeader.VorgangHeaderBuilder createBuilder() { + return VorgangHeader.builder()// .id(ID)// .name(NAME)// .status(STATUS)// diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangListReplyTestFactory.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangListReplyTestFactory.java index 18dff52c038efa4e75d380fb37132e4bbdb4721c..0a4771fa5346dea5d68f8838b2829a7642598077 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangListReplyTestFactory.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangListReplyTestFactory.java @@ -8,10 +8,10 @@ import com.thedeanda.lorem.LoremIpsum; public class VorgangListReplyTestFactory { public static final int TOTAL = 300; - public static List<Vorgang> VORGANG_LIST = new LinkedList<Vorgang>(); + public static List<VorgangHeader> VORGANG_LIST = new LinkedList<VorgangHeader>(); static { for (int i = 0; i < 100; i++) { - VORGANG_LIST.add(VorgangTestFactory.createBuilder().name(i + LoremIpsum.getInstance().getName()).build()); + VORGANG_LIST.add(VorgangHeaderTestFactory.createBuilder().name(i + LoremIpsum.getInstance().getName()).build()); } } @@ -22,6 +22,6 @@ public class VorgangListReplyTestFactory { public static VorgangListReply.VorgangListReplyBuilder createBuilder() { return VorgangListReply.builder() .total(TOTAL) - .vorgaenge(VORGANG_LIST); + .vorgaengeHeader(VORGANG_LIST); } } \ No newline at end of file diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangMitEingangModelAssemblerTest.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangMitEingangModelAssemblerTest.java new file mode 100644 index 0000000000000000000000000000000000000000..cc1bdb7cbadd84cf1c0e4157a7a13b1cfa1d4a40 --- /dev/null +++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangMitEingangModelAssemblerTest.java @@ -0,0 +1,34 @@ +package de.itvsh.goofy.vorgang; + +import static org.assertj.core.api.Assertions.*; + +import org.junit.jupiter.api.Nested; +import org.junit.jupiter.api.Test; +import org.mockito.InjectMocks; +import org.mockito.Mock; +import org.springframework.hateoas.EntityModel; +import org.springframework.hateoas.IanaLinkRelations; +import org.springframework.hateoas.server.EntityLinks; + +class VorgangMitEingangModelAssemblerTest { + + @InjectMocks + private VorgangMitEingangModelAssembler modelAssembler; + + @Mock + private EntityLinks entityLinks; + + @Nested + class TestLinksOnModel { + + @Test + void shouldHaveSelfLink() { + EntityModel<VorgangMitEingang> entityModel = modelAssembler.toModel(VorgangMitEingangTestFactory.create()); + + var link = entityModel.getLink(IanaLinkRelations.SELF); + + assertThat(link.isPresent()).isTrue(); + assertThat(link.get().getHref()).isEqualTo("/api/vorgangs/" + VorgangMitEingangTestFactory.ID); + } + } +} \ No newline at end of file diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangMitEingangTestFactory.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangMitEingangTestFactory.java new file mode 100644 index 0000000000000000000000000000000000000000..97b78a1454162600e8a94397c23df4e1df49576c --- /dev/null +++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangMitEingangTestFactory.java @@ -0,0 +1,26 @@ +package de.itvsh.goofy.vorgang; + +import java.time.LocalDateTime; +import java.util.UUID; + +import com.thedeanda.lorem.LoremIpsum; + +public class VorgangMitEingangTestFactory { + + public static final String ID = UUID.randomUUID().toString(); + private static String NAME = LoremIpsum.getInstance().getWords(10); + private static String STATUS = "VorgangsStatus"; + private static LocalDateTime INITIAL_DATE = LocalDateTime.now(); + + public static VorgangMitEingang create() { + return createBuilder().build(); + } + + public static VorgangMitEingang.VorgangMitEingangBuilder createBuilder() { + return VorgangMitEingang.builder()// + .id(ID)// + .name(NAME)// + .status(STATUS)// + .initialDate(INITIAL_DATE); + } +} diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangModelAssemblerTest.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangModelAssemblerTest.java deleted file mode 100644 index 45f8181ca093d93259de5066c056b82b362f006b..0000000000000000000000000000000000000000 --- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangModelAssemblerTest.java +++ /dev/null @@ -1,30 +0,0 @@ -package de.itvsh.goofy.vorgang; - -import static org.assertj.core.api.Assertions.assertThat; - -import java.util.Optional; -import java.util.stream.Stream; - -import org.junit.jupiter.api.Test; -import org.mockito.InjectMocks; -import org.mockito.Mock; -import org.springframework.hateoas.CollectionModel; -import org.springframework.hateoas.EntityModel; -import org.springframework.hateoas.server.EntityLinks; - -class VorgangModelAssemblerTest { - - @InjectMocks - private VorgangModelAssembler resourceAssembler; - - @Mock - private EntityLinks entityLinks; - - @Test - void statusLinksOnVerfahrenNeu() throws Exception { - CollectionModel<EntityModel<Vorgang>> resource = resourceAssembler.toCollectionModel(Stream.of(VorgangTestFactory.create()), Optional.empty(), - Optional.of(2)); - - assertThat(resource.getContent()).hasSize(1); - } -} diff --git a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangRemoteServiceTest.java b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangRemoteServiceTest.java index 069caebc1ffda03c96f0df5431c49e4a57b886d0..98a74c52e0f60508b61e83ea2e6afdb0988e5d35 100644 --- a/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangRemoteServiceTest.java +++ b/goofy-server/src/test/java/de/itvsh/goofy/vorgang/VorgangRemoteServiceTest.java @@ -20,7 +20,7 @@ class VorgangRemoteServiceTest { private VorgangServiceBlockingStub serviceStub; @Mock - private VorgangMapper vorgangMapper; + private VorgangHeaderMapper vorgangMapper; @Test void findVorgaenge() {