|
1 |
| -/* Copyright (c) 2022-2024, RTE (http://www.rte-france.com) |
| 1 | +/* Copyright (c) 2022-2025, RTE (http://www.rte-france.com) |
2 | 2 | * See AUTHORS.txt
|
3 | 3 | * This Source Code Form is subject to the terms of the Mozilla Public
|
4 | 4 | * License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
11 | 11 |
|
12 | 12 | import static org.assertj.core.api.Assertions.assertThat;
|
13 | 13 |
|
14 |
| -import java.util.ArrayList; |
15 |
| -import java.util.Arrays; |
16 |
| -import java.util.HashSet; |
17 |
| -import java.util.List; |
18 |
| -import java.util.Optional; |
19 |
| -import java.util.Set; |
20 |
| -import java.util.SortedSet; |
21 |
| -import java.util.TreeSet; |
| 14 | +import java.util.*; |
22 | 15 |
|
23 | 16 | import org.junit.jupiter.api.BeforeEach;
|
24 | 17 | import org.junit.jupiter.api.DisplayName;
|
@@ -131,6 +124,55 @@ void GIVEN_A_Valid_Entity_WHEN_Create_An_Already_Existing_Entity_THEN_Entity_Is_
|
131 | 124 | assertThat(entityRepositoryStub.findById("entity1").get().getName()).isEqualTo("newEntityName");
|
132 | 125 | }
|
133 | 126 |
|
| 127 | + @Test |
| 128 | + void GIVEN_A_Valid_Entity_WHEN_Create_An_Already_Existing_Entity_With_Users_Field_THEN_Entity_Is_Updated_And_Users_Are_Updated() { |
| 129 | + Entity entity = new Entity("entity1", "newEntityName", null, null, null, null); |
| 130 | + entity.setUsers(Arrays.asList("user2")); |
| 131 | + |
| 132 | + OperationResult<EntityCreationReport<Entity>> result = entitiesService.createEntity(entity); |
| 133 | + assertThat(result.isSuccess()).isTrue(); |
| 134 | + assertThat(result.getResult().isUpdate()).isTrue(); |
| 135 | + assertThat(result.getResult().getEntity().getId()).isEqualTo("entity1"); |
| 136 | + assertThat(result.getResult().getEntity().getUsers()).hasSize(1); |
| 137 | + assertThat(result.getResult().getEntity().getUsers()).contains("user2"); |
| 138 | + assertThat(userRepositoryStub.findById("user1").get().getEntities()).hasSize(1); |
| 139 | + assertThat(userRepositoryStub.findById("user1").get().getEntities()).contains("entity2"); |
| 140 | + assertThat(userRepositoryStub.findById("user2").get().getEntities()).hasSize(2); |
| 141 | + assertThat(userRepositoryStub.findById("user2").get().getEntities()).contains("entity2", "entity1"); |
| 142 | + } |
| 143 | + |
| 144 | + @Test |
| 145 | + void GIVEN_A_Valid_Entity_WHEN_Create_An_Already_Existing_Entity_Without_Users_Field_THEN_Entity_Is_Updated_And_Users_Are_Not_Deleted() { |
| 146 | + Entity entity = new Entity("entity1", "newEntityName", null, null, null, null); |
| 147 | + entity.setUsers(null); |
| 148 | + |
| 149 | + OperationResult<EntityCreationReport<Entity>> result = entitiesService.createEntity(entity); |
| 150 | + assertThat(result.isSuccess()).isTrue(); |
| 151 | + assertThat(result.getResult().isUpdate()).isTrue(); |
| 152 | + assertThat(result.getResult().getEntity().getId()).isEqualTo("entity1"); |
| 153 | + assertThat(result.getResult().getEntity().getUsers()).isNull(); |
| 154 | + assertThat(userRepositoryStub.findById("user1").get().getEntities()).hasSize(2); |
| 155 | + assertThat(userRepositoryStub.findById("user1").get().getEntities()).contains("entity1", "entity2"); |
| 156 | + assertThat(userRepositoryStub.findById("user2").get().getEntities()).hasSize(1); |
| 157 | + assertThat(userRepositoryStub.findById("user2").get().getEntities()).contains("entity2"); |
| 158 | + } |
| 159 | + |
| 160 | + @Test |
| 161 | + void GIVEN_A_Valid_Entity_WHEN_Create_An_Already_Existing_Entity_With_Users_Field_Empty_THEN_Entity_Is_Updated_And_Users_Are_Empty() { |
| 162 | + Entity entity = new Entity("entity1", "newEntityName", null, null, null, null); |
| 163 | + entity.setUsers(Collections.emptyList()); |
| 164 | + |
| 165 | + OperationResult<EntityCreationReport<Entity>> result = entitiesService.createEntity(entity); |
| 166 | + assertThat(result.isSuccess()).isTrue(); |
| 167 | + assertThat(result.getResult().isUpdate()).isTrue(); |
| 168 | + assertThat(result.getResult().getEntity().getId()).isEqualTo("entity1"); |
| 169 | + assertThat(result.getResult().getEntity().getUsers()).isEmpty(); |
| 170 | + assertThat(userRepositoryStub.findById("user1").get().getEntities()).hasSize(1); |
| 171 | + assertThat(userRepositoryStub.findById("user1").get().getEntities()).contains("entity2"); |
| 172 | + assertThat(userRepositoryStub.findById("user2").get().getEntities()).hasSize(1); |
| 173 | + assertThat(userRepositoryStub.findById("user2").get().getEntities()).contains("entity2"); |
| 174 | + } |
| 175 | + |
134 | 176 | @Test
|
135 | 177 | void GIVEN_A_Valid_Entity_WHEN_Update_Description_With_Same_Name_THEN_Entity_Is_Updated() {
|
136 | 178 | Entity entity = new Entity("entity1", "Entity 1", "new description", null, null, null);
|
|
0 commit comments