@ -63,6 +63,7 @@ dependencies {
|
|||||||
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.7.0'
|
compile group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.7.0'
|
||||||
compileOnly 'org.projectlombok:lombok'
|
compileOnly 'org.projectlombok:lombok'
|
||||||
developmentOnly 'org.springframework.boot:spring-boot-devtools'
|
developmentOnly 'org.springframework.boot:spring-boot-devtools'
|
||||||
|
testImplementation 'org.assertj:assertj-core:3.15.0'
|
||||||
runtimeOnly 'com.h2database:h2'
|
runtimeOnly 'com.h2database:h2'
|
||||||
annotationProcessor 'org.projectlombok:lombok'
|
annotationProcessor 'org.projectlombok:lombok'
|
||||||
testImplementation('org.springframework.boot:spring-boot-starter-test') {
|
testImplementation('org.springframework.boot:spring-boot-starter-test') {
|
||||||
|
|||||||
@ -1,32 +1,24 @@
|
|||||||
package mops.gruppen2.controllers;
|
package mops.gruppen2.controllers;
|
||||||
|
|
||||||
import javax.annotation.security.RolesAllowed;
|
import mops.gruppen2.services.KeyCloakService;
|
||||||
import mops.gruppen2.security.Account;
|
|
||||||
import org.keycloak.KeycloakPrincipal;
|
|
||||||
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
|
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
import org.springframework.ui.Model;
|
import org.springframework.ui.Model;
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.context.annotation.SessionScope;
|
import org.springframework.web.context.annotation.SessionScope;
|
||||||
|
|
||||||
@SessionScope
|
import javax.annotation.security.RolesAllowed;
|
||||||
|
|
||||||
@Controller
|
@Controller
|
||||||
|
@RequestMapping("/gruppen2")
|
||||||
public class Gruppen2Controller {
|
public class Gruppen2Controller {
|
||||||
/**
|
|
||||||
* Creates an Account.
|
private final KeyCloakService keyCloakService;
|
||||||
*
|
|
||||||
* @param token Ein toller token
|
public Gruppen2Controller(KeyCloakService keyCloakService) {
|
||||||
* @return Account with current userdata
|
this.keyCloakService = keyCloakService;
|
||||||
*/
|
|
||||||
private Account createAccountFromPrincipal(KeycloakAuthenticationToken token) {
|
|
||||||
KeycloakPrincipal principal = (KeycloakPrincipal) token.getPrincipal();
|
|
||||||
return new Account(
|
|
||||||
principal.getName(),
|
|
||||||
principal.getKeycloakSecurityContext().getIdToken().getEmail(),
|
|
||||||
null,
|
|
||||||
principal.getKeycloakSecurityContext().getIdToken().getGivenName(),
|
|
||||||
principal.getKeycloakSecurityContext().getIdToken().getFamilyName(),
|
|
||||||
token.getAccount().getRoles());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**Zeigt die index.html an.
|
/**Zeigt die index.html an.
|
||||||
@ -35,10 +27,10 @@ public class Gruppen2Controller {
|
|||||||
* @param model tolles model
|
* @param model tolles model
|
||||||
* @return index.html
|
* @return index.html
|
||||||
*/
|
*/
|
||||||
@GetMapping("/")
|
|
||||||
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"})
|
@RolesAllowed({"ROLE_orga", "ROLE_studentin", "ROLE_actuator)"})
|
||||||
|
@GetMapping("")
|
||||||
public String index(KeycloakAuthenticationToken token, Model model) {
|
public String index(KeycloakAuthenticationToken token, Model model) {
|
||||||
model.addAttribute("account", createAccountFromPrincipal(token));
|
model.addAttribute("account", keyCloakService.createAccountFromPrincipal(token));
|
||||||
return "index";
|
return "index";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package mops.gruppen2.entities;
|
package mops.gruppen2.entities;
|
||||||
|
|
||||||
public class Admin extends Teilnehmer{
|
public class Admin extends Rolle {
|
||||||
}
|
}
|
||||||
|
|||||||
23
src/main/java/mops/gruppen2/entities/Aggregat.java
Normal file
23
src/main/java/mops/gruppen2/entities/Aggregat.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package mops.gruppen2.entities;
|
||||||
|
|
||||||
|
import mops.gruppen2.events.Event;
|
||||||
|
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
public abstract class Aggregat {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Ruft die spezifische applyEvent-Methode im entsprechenden Aggregat auf.
|
||||||
|
*
|
||||||
|
* @param event
|
||||||
|
*/
|
||||||
|
public void applyEvent(Event event) {
|
||||||
|
try {
|
||||||
|
Method method = this.getClass().getDeclaredMethod("applyEvent", event.getClass());
|
||||||
|
method.setAccessible(true);
|
||||||
|
method.invoke(this, event);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,15 +1,69 @@
|
|||||||
package mops.gruppen2.entities;
|
package mops.gruppen2.entities;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.data.annotation.Id;
|
import lombok.EqualsAndHashCode;
|
||||||
|
import mops.gruppen2.events.*;
|
||||||
|
import mops.gruppen2.events.AddUser;
|
||||||
|
import mops.gruppen2.events.CreateGroupEvent;
|
||||||
|
import mops.gruppen2.events.UpdateGroupDescriptionEvent;
|
||||||
|
import mops.gruppen2.events.UpdateGroupTitleEvent;
|
||||||
|
import mops.gruppen2.events.DeleteUserEvent;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
@EqualsAndHashCode(callSuper=false)
|
||||||
@Data
|
@Data
|
||||||
public class Gruppe {
|
public class Gruppe extends Aggregat {
|
||||||
@Id
|
long id;
|
||||||
Long id;
|
|
||||||
String titel;
|
String titel;
|
||||||
String beschreibung;
|
String beschreibung;
|
||||||
List<Teilnehmer> teilnehmersList;
|
List<Teilnehmer> teilnehmersList;
|
||||||
|
Map<Teilnehmer, Rolle> rollenList;
|
||||||
|
|
||||||
|
public void applyEvent(CreateGroupEvent event){
|
||||||
|
this.id = event.getGruppe_id();
|
||||||
|
this.titel = event.getTitel();
|
||||||
|
this.beschreibung = event.getBeschreibung();
|
||||||
|
this.teilnehmersList = new ArrayList<>();
|
||||||
|
this.rollenList = new HashMap<>();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void applyEvent(UpdateRoleEvent event) {
|
||||||
|
teilnehmersList.stream()
|
||||||
|
.filter(teilnehmer -> teilnehmer.getId().equals(event.getUser_id()))
|
||||||
|
.findFirst()
|
||||||
|
.ifPresentOrElse(teilnehmer -> rollenList.put(teilnehmer, event.getRole()),
|
||||||
|
() -> System.out.println("UserNotFoundException"));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void applyEvent(AddUser event){
|
||||||
|
Teilnehmer teilnehmer = new Teilnehmer();
|
||||||
|
|
||||||
|
teilnehmer.setId(event.getUser_id());
|
||||||
|
teilnehmer.setVorname(event.getVorname());
|
||||||
|
teilnehmer.setNachname(event.getNachname());
|
||||||
|
teilnehmer.setEmail(event.getEmail());
|
||||||
|
|
||||||
|
this.teilnehmersList.add(teilnehmer);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void applyEvent(UpdateGroupTitleEvent event) {
|
||||||
|
this.titel = event.getTitel();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void applyEvent(UpdateGroupDescriptionEvent event) {
|
||||||
|
this.beschreibung = event.getBeschreibung();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void applyEvent(DeleteUserEvent event) {
|
||||||
|
for (Teilnehmer teilnehmer: teilnehmersList) {
|
||||||
|
if (teilnehmer.getId().equals(event.getUser_id())) {
|
||||||
|
this.teilnehmersList.remove(teilnehmer);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
package mops.gruppen2.entities;
|
|
||||||
|
|
||||||
import org.springframework.data.repository.CrudRepository;
|
|
||||||
|
|
||||||
public interface GruppeRepository extends CrudRepository<Gruppe,Long> {
|
|
||||||
}
|
|
||||||
4
src/main/java/mops/gruppen2/entities/Orga.java
Normal file
4
src/main/java/mops/gruppen2/entities/Orga.java
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
package mops.gruppen2.entities;
|
||||||
|
|
||||||
|
public class Orga extends Rolle {
|
||||||
|
}
|
||||||
5
src/main/java/mops/gruppen2/entities/Rolle.java
Normal file
5
src/main/java/mops/gruppen2/entities/Rolle.java
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
package mops.gruppen2.entities;
|
||||||
|
|
||||||
|
public class Rolle {
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,10 +0,0 @@
|
|||||||
package mops.gruppen2.entities;
|
|
||||||
|
|
||||||
import lombok.Data;
|
|
||||||
import org.springframework.data.annotation.Id;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class Student extends Teilnehmer{
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,14 +1,12 @@
|
|||||||
package mops.gruppen2.entities;
|
package mops.gruppen2.entities;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import org.springframework.data.annotation.Id;
|
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class Teilnehmer {
|
public class Teilnehmer {
|
||||||
@Id
|
String id;
|
||||||
Long id;
|
|
||||||
String vorname;
|
String vorname;
|
||||||
String nachname;
|
String nachname;
|
||||||
String email;
|
String email;
|
||||||
|
|||||||
@ -1,6 +0,0 @@
|
|||||||
package mops.gruppen2.entities;
|
|
||||||
|
|
||||||
import org.springframework.data.repository.CrudRepository;
|
|
||||||
|
|
||||||
public interface TeilnehmerRepository extends CrudRepository<Teilnehmer,Long> {
|
|
||||||
}
|
|
||||||
15
src/main/java/mops/gruppen2/events/AddUser.java
Normal file
15
src/main/java/mops/gruppen2/events/AddUser.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package mops.gruppen2.events;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public class AddUser extends Event{
|
||||||
|
String vorname, nachname, email;
|
||||||
|
|
||||||
|
public AddUser(long id, long gruppe_id, String user_id, String vorname, String nachname, String email) {
|
||||||
|
super(id, gruppe_id, user_id);
|
||||||
|
this.vorname = vorname;
|
||||||
|
this.nachname = nachname;
|
||||||
|
this.email = email;
|
||||||
|
}
|
||||||
|
}
|
||||||
15
src/main/java/mops/gruppen2/events/CreateGroupEvent.java
Normal file
15
src/main/java/mops/gruppen2/events/CreateGroupEvent.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package mops.gruppen2.events;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public class CreateGroupEvent extends Event {
|
||||||
|
String titel;
|
||||||
|
String beschreibung;
|
||||||
|
|
||||||
|
public CreateGroupEvent(long id, long gruppe_id, String user_id, String titel, String beschreibung) {
|
||||||
|
super(id, gruppe_id, user_id);
|
||||||
|
this.titel = titel;
|
||||||
|
this.beschreibung = beschreibung;
|
||||||
|
}
|
||||||
|
}
|
||||||
11
src/main/java/mops/gruppen2/events/DeleteUserEvent.java
Normal file
11
src/main/java/mops/gruppen2/events/DeleteUserEvent.java
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
package mops.gruppen2.events;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public class DeleteUserEvent extends Event{
|
||||||
|
|
||||||
|
public DeleteUserEvent(long id, long gruppe_id, String user_id) {
|
||||||
|
super(id, gruppe_id, user_id);
|
||||||
|
}
|
||||||
|
}
|
||||||
12
src/main/java/mops/gruppen2/events/Event.java
Normal file
12
src/main/java/mops/gruppen2/events/Event.java
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
package mops.gruppen2.events;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Event {
|
||||||
|
long id;
|
||||||
|
long gruppe_id;
|
||||||
|
String user_id;
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package mops.gruppen2.events;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public class UpdateGroupDescriptionEvent extends Event {
|
||||||
|
String beschreibung;
|
||||||
|
|
||||||
|
public UpdateGroupDescriptionEvent(long id, long gruppe_id, String user_id, String beschreibung) {
|
||||||
|
super(id, gruppe_id, user_id);
|
||||||
|
this.beschreibung = beschreibung;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,13 @@
|
|||||||
|
package mops.gruppen2.events;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public class UpdateGroupTitleEvent extends Event {
|
||||||
|
String titel;
|
||||||
|
|
||||||
|
public UpdateGroupTitleEvent(long id, long gruppe_id, String user_id, String titel) {
|
||||||
|
super(id, gruppe_id, user_id);
|
||||||
|
this.titel = titel;
|
||||||
|
}
|
||||||
|
}
|
||||||
16
src/main/java/mops/gruppen2/events/UpdateRoleEvent.java
Normal file
16
src/main/java/mops/gruppen2/events/UpdateRoleEvent.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package mops.gruppen2.events;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import mops.gruppen2.entities.Rolle;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public class UpdateRoleEvent extends Event {
|
||||||
|
|
||||||
|
private final Rolle role;
|
||||||
|
|
||||||
|
public UpdateRoleEvent(long id, long gruppe_id, String user_id, Rolle newRole) {
|
||||||
|
super(id, gruppe_id, user_id);
|
||||||
|
|
||||||
|
this.role = newRole;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
package mops.gruppen2.repositories;
|
||||||
|
|
||||||
|
import mops.gruppen2.events.Event;
|
||||||
|
import org.springframework.data.repository.CrudRepository;
|
||||||
|
|
||||||
|
public interface EventRepository extends CrudRepository<Event, Long> {
|
||||||
|
}
|
||||||
16
src/main/java/mops/gruppen2/services/GruppenService.java
Normal file
16
src/main/java/mops/gruppen2/services/GruppenService.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package mops.gruppen2.services;
|
||||||
|
|
||||||
|
import mops.gruppen2.events.Event;
|
||||||
|
import mops.gruppen2.entities.Gruppe;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class GruppenService {
|
||||||
|
|
||||||
|
Gruppe buildGroup(List<Event> eventList){
|
||||||
|
Gruppe newGroup = new Gruppe();
|
||||||
|
eventList.forEach(newGroup::applyEvent);
|
||||||
|
return newGroup;
|
||||||
|
}
|
||||||
|
}
|
||||||
27
src/main/java/mops/gruppen2/services/KeyCloakService.java
Normal file
27
src/main/java/mops/gruppen2/services/KeyCloakService.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package mops.gruppen2.services;
|
||||||
|
|
||||||
|
import mops.gruppen2.security.Account;
|
||||||
|
import org.keycloak.KeycloakPrincipal;
|
||||||
|
import org.keycloak.adapters.springsecurity.token.KeycloakAuthenticationToken;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class KeyCloakService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates an Account.
|
||||||
|
*
|
||||||
|
* @param token Ein toller token
|
||||||
|
* @return Account with current userdata
|
||||||
|
*/
|
||||||
|
public Account createAccountFromPrincipal(KeycloakAuthenticationToken token) {
|
||||||
|
KeycloakPrincipal principal = (KeycloakPrincipal) token.getPrincipal();
|
||||||
|
return new Account(
|
||||||
|
principal.getName(),
|
||||||
|
principal.getKeycloakSecurityContext().getIdToken().getEmail(),
|
||||||
|
null,
|
||||||
|
principal.getKeycloakSecurityContext().getIdToken().getGivenName(),
|
||||||
|
principal.getKeycloakSecurityContext().getIdToken().getFamilyName(),
|
||||||
|
token.getAccount().getRoles());
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
package mops.gruppen2.services;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Übersetzt und baut
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class SerializationService {
|
||||||
|
}
|
||||||
90
src/test/java/mops/gruppen2/entities/GruppeTest.java
Normal file
90
src/test/java/mops/gruppen2/entities/GruppeTest.java
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
package mops.gruppen2.entities;
|
||||||
|
|
||||||
|
import mops.gruppen2.events.AddUser;
|
||||||
|
import mops.gruppen2.events.CreateGroupEvent;
|
||||||
|
import mops.gruppen2.events.UpdateRoleEvent;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static org.assertj.core.api.Assertions.assertThat;
|
||||||
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
class GruppeTest {
|
||||||
|
|
||||||
|
AddUser addUser;
|
||||||
|
CreateGroupEvent createGroupEvent;
|
||||||
|
|
||||||
|
@BeforeEach
|
||||||
|
public void setUp(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void applyEvent() {
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void applyAddUserEvent(){
|
||||||
|
Gruppe gruppe = new Gruppe();
|
||||||
|
Gruppe testGruppe = new Gruppe();
|
||||||
|
Teilnehmer teilnehmer = new Teilnehmer();
|
||||||
|
addUser = new AddUser(1L,1L,"prof","jens","bendi", "hi@gmail.com");
|
||||||
|
createGroupEvent = new CreateGroupEvent(1L,1L,"prof1", "hi", "foo");
|
||||||
|
|
||||||
|
gruppe.applyEvent(createGroupEvent);
|
||||||
|
gruppe.applyEvent(addUser);
|
||||||
|
testGruppe.applyEvent(createGroupEvent);
|
||||||
|
teilnehmer.setId("prof");
|
||||||
|
teilnehmer.setVorname("jens");
|
||||||
|
teilnehmer.setNachname("bendi");
|
||||||
|
teilnehmer.setEmail("hi@gmail.com");
|
||||||
|
List<Teilnehmer> testTeil= new ArrayList<>();
|
||||||
|
testTeil.add(teilnehmer);
|
||||||
|
testGruppe.setTeilnehmersList(testTeil);
|
||||||
|
|
||||||
|
assertEquals(testGruppe,gruppe);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Verwendet CreateGroupEvent und AddUserEvent
|
||||||
|
@Test
|
||||||
|
void updateRoleForExistingUser() {
|
||||||
|
// Arrange
|
||||||
|
Gruppe gruppe = new Gruppe();
|
||||||
|
Orga orga = new Orga();
|
||||||
|
|
||||||
|
gruppe.applyEvent(new CreateGroupEvent(1L, 1L, "1L", "gruppe1", "Eine Testgruppe"));
|
||||||
|
gruppe.applyEvent(new AddUser(1L, 1L, "5L", "Peter", "Pan", "123@mail.de"));
|
||||||
|
|
||||||
|
// Act
|
||||||
|
gruppe.applyEvent(new UpdateRoleEvent(1L, 1L, "5L", orga));
|
||||||
|
|
||||||
|
// Assert
|
||||||
|
assertThat(gruppe.getRollenList())
|
||||||
|
.containsOnlyKeys(gruppe.getTeilnehmersList().get(0))
|
||||||
|
.containsValue(orga);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
void applyCreteGroupEvent() {
|
||||||
|
String userId = "asd";
|
||||||
|
CreateGroupEvent event = new CreateGroupEvent(1L,2,userId, "hello", "foo");
|
||||||
|
|
||||||
|
Gruppe gruppe1 = new Gruppe();
|
||||||
|
gruppe1.applyEvent(event);
|
||||||
|
|
||||||
|
Gruppe gruppe2 = new Gruppe();
|
||||||
|
gruppe2.id = 2L;
|
||||||
|
gruppe2.titel = "hello";
|
||||||
|
gruppe2.beschreibung = "foo";
|
||||||
|
gruppe2.teilnehmersList = new ArrayList<>();
|
||||||
|
gruppe2.rollenList = new HashMap<>();
|
||||||
|
|
||||||
|
assertEquals(gruppe2, gruppe1);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user