Skip to content

Commit 9a014db

Browse files
committed
Ensure unique ARP attributes
1 parent 80b7c3d commit 9a014db

5 files changed

Lines changed: 31 additions & 19 deletions

File tree

client/src/connection/Testing.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1226,7 +1226,7 @@ export const Testing = ({
12261226
return (
12271227
<>
12281228
<div className="testing-header">
1229-
<h2>{I18n.t(`connection.${isComplete ? "existing" : "new"}Connection${isProduction ? "Prod" : ""}`)}</h2>
1229+
<h2>{I18n.t(`connection.${isComplete ? "existing" : "new"}Connection${isProduction ? "Prod" : ""}`, {name: connection.name})}</h2>
12301230
{(isProduction && application.signedContract && (connection.status === CONNECTION_STATUSES.COMPLETE || connection.status === CONNECTION_STATUSES.IN_PROGRESS)) &&
12311231
<div className="action-button">
12321232
<Button txt={I18n.t("connection.connections.requestProductionStatus")}

client/src/locale/en.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -342,9 +342,9 @@ const en = {
342342
productionActivationAction: "Do it now",
343343
productActivationPending: "The request for activation of your production connection has been received. SURF will contact you within three business days.",
344344
newConnection: "New connection to the test environment",
345-
existingConnection: "Testkoppeling bewerken",
345+
existingConnection: "Edit test connection {{name}}",
346346
newConnectionProd: "New connection to the production environment",
347-
existingConnectionProd: "Edit connection",
347+
existingConnectionProd: "Edit connection {{name}}",
348348
copyConnection: "Copy from other connection",
349349
technical: "Technical details",
350350
informationProfile: "Attribute profile",

client/src/pages/Policies.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ const Policies = () => {
134134
refreshPolicies={refreshPolicies}
135135
/>
136136
}
137-
{showPolicyOverview &&
137+
{(showPolicyOverview || showNewPolicyChoice) &&
138138
<PolicyOverview
139139
policies={policies}
140140
currentOrganization={currentOrganization}

server/src/main/java/access/manage/ListMerger.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,13 @@
22

33
import java.util.ArrayList;
44
import java.util.HashMap;
5+
import java.util.HashSet;
6+
import java.util.LinkedHashSet;
7+
import java.util.LinkedList;
58
import java.util.List;
69
import java.util.Map;
710
import java.util.Objects;
11+
import java.util.Set;
812

913
public class ListMerger {
1014

@@ -61,7 +65,7 @@ public static List<String> threeWayMerge(
6165
}
6266
}
6367

64-
return result;
68+
return new LinkedHashSet<>(result).stream().toList();
6569
}
6670

6771
/**

server/src/test/java/access/manage/ListMergerTest.java

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,28 +11,36 @@ class ListMergerTest {
1111

1212
@Test
1313
void threeWayMerge() {
14-
List<String> list1 = List.of("alpha", "beta", "gamma", "delta");
14+
List<String> base = List.of("alpha", "beta", "gamma", "delta");
1515

16-
// list2: changed "beta"→"BETA", removed "delta", added "epsilon"
17-
List<String> list2 = List.of("alpha", "BETA", "gamma", "epsilon");
16+
// left: changed "beta"→"BETA", removed "delta", added "epsilon"
17+
List<String> left = List.of("alpha", "BETA", "gamma", "epsilon");
1818

19-
// list3: changed "alpha"→"ALPHA", changed "gamma"→"GAMMA"
20-
List<String> list3 = List.of("ALPHA", "beta", "GAMMA", "delta");
19+
// right: changed "alpha"→"ALPHA", changed "gamma"→"GAMMA"
20+
List<String> right = List.of("ALPHA", "beta", "GAMMA", "delta");
2121

22-
List<String> list4 = ListMerger.threeWayMerge(list1, list2, list3);
23-
assertEquals(list4, List.of("ALPHA", "BETA", "GAMMA", "epsilon"));
22+
List<String> list4 = ListMerger.threeWayMerge(base, left, right);
23+
assertEquals(List.of("ALPHA", "BETA", "GAMMA", "epsilon"), list4);
2424

25-
list1 = List.of("red1", "red2");
25+
base = List.of("red1", "red2");
2626

27-
// list2: changed "beta"→"BETA", removed "delta", added "epsilon"
28-
list2 = List.of("red1", "red2", "red3");
27+
// left: changed "beta"→"BETA", removed "delta", added "epsilon"
28+
left = List.of("red1", "red2", "red3");
2929

30-
// list3: changed "alpha"→"ALPHA", changed "gamma"→"GAMMA"
31-
list3 = List.of("red1", "red2", "red4");
30+
// right: changed "alpha"→"ALPHA", changed "gamma"→"GAMMA"
31+
right = List.of("red1", "red2", "red4");
3232

33-
list4 = ListMerger.threeWayMerge(list1, list2, list3);
34-
assertEquals(list4, List.of("red1", "red2", "red3", "red4"));
33+
list4 = ListMerger.threeWayMerge(base, left, right);
34+
assertEquals(List.of("red1", "red2", "red3", "red4"), list4);
3535
}
3636

37+
@Test
38+
void threeWayMergeDuplicates() {
39+
List<String> base = List.of("a");
40+
List<String> left = List.of("a", "b");
41+
List<String> right = List.of("c", "b", "b", "b");
3742

43+
List<String> list4 = ListMerger.threeWayMerge(base, left, right);
44+
assertEquals(List.of("c","b"), list4);
45+
}
3846
}

0 commit comments

Comments
 (0)