From 72c8d2b9b0f00f6d9eb6ff438609017e596d2352 Mon Sep 17 00:00:00 2001 From: Mahgs Date: Mon, 9 Mar 2020 14:39:46 +0100 Subject: [PATCH] added Tests and fix addUserEvent --- src/main/java/mops/gruppen2/domain/Group.java | 4 ++- src/main/java/mops/gruppen2/domain/User.java | 6 +++- .../java/mops/gruppen2/domain/GroupTest.java | 33 +++++++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) diff --git a/src/main/java/mops/gruppen2/domain/Group.java b/src/main/java/mops/gruppen2/domain/Group.java index 2716aeb..843a1b1 100644 --- a/src/main/java/mops/gruppen2/domain/Group.java +++ b/src/main/java/mops/gruppen2/domain/Group.java @@ -52,7 +52,9 @@ public class Group extends Aggregate { private void applyEvent(AddUserEvent event) { User user = new User(event.getUser_id(), event.getGivenname(), event.getFamilyname(), event.getEmail()); - this.members.add(user); + if (!this.members.contains(user)){ + this.members.add(user); + } } private void applyEvent(UpdateGroupTitleEvent event) { diff --git a/src/main/java/mops/gruppen2/domain/User.java b/src/main/java/mops/gruppen2/domain/User.java index d162b94..efb14b9 100644 --- a/src/main/java/mops/gruppen2/domain/User.java +++ b/src/main/java/mops/gruppen2/domain/User.java @@ -2,12 +2,16 @@ package mops.gruppen2.domain; import lombok.AllArgsConstructor; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.Value; -@Data +@Value @AllArgsConstructor +@EqualsAndHashCode(exclude = {"givenname", "familyname", "email"}) public class User { String user_id; + String givenname; String familyname; String email; diff --git a/src/test/java/mops/gruppen2/domain/GroupTest.java b/src/test/java/mops/gruppen2/domain/GroupTest.java index 3901fe0..2d814aa 100644 --- a/src/test/java/mops/gruppen2/domain/GroupTest.java +++ b/src/test/java/mops/gruppen2/domain/GroupTest.java @@ -2,6 +2,7 @@ package mops.gruppen2.domain; import mops.gruppen2.domain.event.AddUserEvent; import mops.gruppen2.domain.event.CreateGroupEvent; +import mops.gruppen2.domain.event.DeleteUserEvent; import mops.gruppen2.domain.event.UpdateRoleEvent; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Disabled; @@ -47,6 +48,38 @@ class GroupTest { assertThat(group.getMembers().get(0)).isEqualTo(user); } + @Test + void addExistingUser() { + CreateGroupEvent createGroupEvent = new CreateGroupEvent(1,1,"prof1", "hi", "foo"); + Group group = new Group(); + group.applyEvent(createGroupEvent); + + User user1 = new User("prof", "jens", "bendi", "hi@gmail.com"); + AddUserEvent addUserEvent1 = new AddUserEvent(2,1, user1); + group.applyEvent(addUserEvent1); + + User user2 = new User("prof", "olga", "bendi", "hi@gmail.com"); + AddUserEvent addUserEvent2 = new AddUserEvent(3,1, user2); + group.applyEvent(addUserEvent2); + + assertThat(group.getMembers().size()).isEqualTo(1); + } + + @Test + void deleteSingleUser() { + CreateGroupEvent createGroupEvent = new CreateGroupEvent(1, 2, "Prof", "Tolle Gruppe", "Tolle Beshreibung"); + User user = new User("Prof", "Pro", "fessor", "pro@fessor.de"); + AddUserEvent addUserEvent = new AddUserEvent(2, 2, user); + Group group = new Group(); + group.applyEvent(createGroupEvent); + group.applyEvent(addUserEvent); + + DeleteUserEvent deleteUserEvent = new DeleteUserEvent(3, 2, "Prof"); + group.applyEvent(deleteUserEvent); + + assertThat(group.getMembers().size()).isEqualTo(0); + } + // Verwendet CreateGroupEvent und AddUserEvent @Test void updateRoleForExistingUser() {