Merge remote-tracking branch 'origin/event-db' into html-gruppe
This commit is contained in:
@ -1,14 +1,16 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Value;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
import mops.gruppen2.domain.User;
|
||||
|
||||
/**
|
||||
* Fügt einen einzelnen Nutzer einer Gruppe hinzu.
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Value
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class AddUserEvent extends Event {
|
||||
String givenname;
|
||||
String familyname;
|
||||
|
||||
@ -1,10 +1,12 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Value;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Value
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CreateGroupEvent extends Event {
|
||||
String groupTitle;
|
||||
String groupDescription;
|
||||
|
||||
@ -1,13 +1,13 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Value;
|
||||
import lombok.*;
|
||||
|
||||
/**
|
||||
* Entfernt ein einzelnes Mitglied einer Gruppe.
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Value
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class DeleteUserEvent extends Event {
|
||||
|
||||
public DeleteUserEvent(long event_id, long group_id, String user_id) {
|
||||
|
||||
@ -1,12 +1,28 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonSubTypes;
|
||||
import com.fasterxml.jackson.annotation.JsonTypeInfo;
|
||||
import lombok.Value;
|
||||
import lombok.experimental.NonFinal;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Value
|
||||
@NonFinal
|
||||
@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME)
|
||||
|
||||
@Getter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@JsonTypeInfo(
|
||||
include = JsonTypeInfo.As.PROPERTY,
|
||||
use = JsonTypeInfo.Id.NAME,
|
||||
property = "type"
|
||||
)
|
||||
@JsonSubTypes({
|
||||
@JsonSubTypes.Type(value = AddUserEvent.class, name = "AddUserEvent"),
|
||||
@JsonSubTypes.Type(value = AddUserEvent.class, name = "CreateGroupEvent"),
|
||||
@JsonSubTypes.Type(value = AddUserEvent.class, name = "DeleteUserEvent"),
|
||||
@JsonSubTypes.Type(value = AddUserEvent.class, name = "UpdateGroupDescriptionEvent"),
|
||||
@JsonSubTypes.Type(value = AddUserEvent.class, name = "UpdateGroupTitleEvent"),
|
||||
@JsonSubTypes.Type(value = AddUserEvent.class, name = "UpdateRoleEvent"),
|
||||
})
|
||||
public class Event {
|
||||
long event_id;
|
||||
long group_id;
|
||||
|
||||
@ -1,13 +1,15 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Value;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* Ändert nur die Gruppenbeschreibung.
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Value
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class UpdateGroupDescriptionEvent extends Event {
|
||||
String newGroupDescription;
|
||||
|
||||
|
||||
@ -1,13 +1,15 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Value;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Getter;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* Ändert nur den Gruppentitel.
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Value
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class UpdateGroupTitleEvent extends Event {
|
||||
String newGroupTitle;
|
||||
|
||||
|
||||
@ -1,14 +1,14 @@
|
||||
package mops.gruppen2.domain.event;
|
||||
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.Value;
|
||||
import lombok.*;
|
||||
import mops.gruppen2.domain.Role;
|
||||
|
||||
/**
|
||||
* Aktualisiert die Gruppenrolle eines Teilnehmers.
|
||||
*/
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Value
|
||||
@Getter
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class UpdateRoleEvent extends Event {
|
||||
|
||||
Role newRole;
|
||||
|
||||
92
src/test/java/mops/gruppen2/builder/EventBuilder.java
Normal file
92
src/test/java/mops/gruppen2/builder/EventBuilder.java
Normal file
@ -0,0 +1,92 @@
|
||||
package mops.gruppen2.builder;
|
||||
|
||||
import com.github.javafaker.Faker;
|
||||
import mops.gruppen2.domain.Role;
|
||||
import mops.gruppen2.domain.event.*;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class EventBuilder {
|
||||
|
||||
public static CreateGroupEvent randomCreateGroupEvent() {
|
||||
Faker faker = new Faker();
|
||||
|
||||
return new CreateGroupEvent(
|
||||
faker.random().nextLong(),
|
||||
faker.random().nextLong(),
|
||||
faker.random().hex(),
|
||||
faker.leagueOfLegends().champion(),
|
||||
faker.leagueOfLegends().quote()
|
||||
);
|
||||
}
|
||||
|
||||
public static AddUserEvent randomAddUserEvent() {
|
||||
Faker faker = new Faker();
|
||||
|
||||
String firstname = faker.name().firstName();
|
||||
String lastname = faker.name().lastName();
|
||||
|
||||
return new AddUserEvent(
|
||||
faker.random().nextLong(),
|
||||
faker.random().nextLong(),
|
||||
faker.random().hex(),
|
||||
firstname,
|
||||
lastname,
|
||||
firstname + "." + lastname + "@mail.de"
|
||||
);
|
||||
}
|
||||
|
||||
public static List<Event> randomAddUserEvents(int count) {
|
||||
List<Event> eventList = new ArrayList<>();
|
||||
|
||||
for (int i = 0; i < count; i++) {
|
||||
eventList.add(EventBuilder.randomAddUserEvent());
|
||||
}
|
||||
|
||||
return eventList;
|
||||
}
|
||||
|
||||
public static DeleteUserEvent randomDeleteUserEvent(long group_id, String user_id) {
|
||||
Faker faker = new Faker();
|
||||
|
||||
return new DeleteUserEvent(
|
||||
faker.random().nextLong(),
|
||||
group_id,
|
||||
user_id
|
||||
);
|
||||
}
|
||||
|
||||
public static UpdateGroupDescriptionEvent randomUpdateGroupDescriptionEvent(long group_id) {
|
||||
Faker faker = new Faker();
|
||||
|
||||
return new UpdateGroupDescriptionEvent(
|
||||
faker.random().nextLong(),
|
||||
group_id,
|
||||
faker.random().hex(),
|
||||
faker.leagueOfLegends().quote()
|
||||
);
|
||||
}
|
||||
|
||||
public static UpdateGroupTitleEvent randomUpdateGroupTitleEvent(long group_id) {
|
||||
Faker faker = new Faker();
|
||||
|
||||
return new UpdateGroupTitleEvent(
|
||||
faker.random().nextLong(),
|
||||
group_id,
|
||||
faker.random().hex(),
|
||||
faker.leagueOfLegends().champion()
|
||||
);
|
||||
}
|
||||
|
||||
public static UpdateRoleEvent randomUpdateRoleEvent(long group_id, String user_id, Role role) {
|
||||
Faker faker = new Faker();
|
||||
|
||||
return new UpdateRoleEvent(
|
||||
faker.random().nextLong(),
|
||||
group_id,
|
||||
user_id,
|
||||
role
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,41 @@
|
||||
package mops.gruppen2.service;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
import mops.gruppen2.domain.event.AddUserEvent;
|
||||
import mops.gruppen2.domain.event.Event;
|
||||
import mops.gruppen2.repository.EventRepository;
|
||||
import org.junit.jupiter.api.BeforeEach;
|
||||
import org.junit.jupiter.api.Disabled;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import static org.assertj.core.api.Assertions.assertThat;
|
||||
import static org.junit.jupiter.api.Assertions.*;
|
||||
|
||||
class SerializationServiceTest {
|
||||
|
||||
EventRepository eventRepository;
|
||||
Event event;
|
||||
|
||||
@BeforeEach
|
||||
public void setUp(){
|
||||
}
|
||||
|
||||
|
||||
@Disabled
|
||||
@Test
|
||||
void applyEvent() {
|
||||
}
|
||||
|
||||
@Test
|
||||
void serializeEventTest() {
|
||||
event = new Event(1,1,"1");
|
||||
SerializationService serializationService = new SerializationService(eventRepository);
|
||||
try {
|
||||
assertThat(serializationService.serializeEvent(event)).isEqualTo("{\"Event\":{\"event_id\":1,\"group_id\":1,\"user_id\":\"1\"}}");
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user