From dc96368417f19fe7c9064ca0c57bb87cc0009ba6 Mon Sep 17 00:00:00 2001 From: Brian Major <major.brian@gmail.com> Date: Tue, 22 Nov 2016 15:20:09 -0800 Subject: [PATCH] issue-10 - fix to GroupURI equals() --- .../main/java/ca/nrc/cadc/ac/GroupURI.java | 26 ++++++++++++------- .../java/ca/nrc/cadc/ac/GroupURITest.java | 12 +++++++++ 2 files changed, 29 insertions(+), 9 deletions(-) diff --git a/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java b/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java index 16265fbf..870639d1 100644 --- a/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java +++ b/cadc-access-control/src/main/java/ca/nrc/cadc/ac/GroupURI.java @@ -156,16 +156,19 @@ public class GroupURI } @Override - public boolean equals(Object rhs) + public boolean equals(Object other) { - if (rhs == null) + if (other == null) return false; - if (this == rhs) + if (this == other) return true; - if (rhs instanceof GroupURI) + if (other instanceof GroupURI) { - GroupURI vu = (GroupURI) rhs; - return uri.toString().equals(vu.uri.toString()); + + GroupURI oID = (GroupURI) other; + String otherURI = getServiceIDString() + "?" + oID.getName(); + String thisURI = getServiceIDString() + "?" + this.getName(); + return thisURI.equals(otherURI); } return false; } @@ -200,15 +203,20 @@ public class GroupURI return name; } - public URI getServiceID() + public String getServiceIDString() { - String serviceID = uri.getScheme() + + return uri.getScheme() + "://" + uri.getAuthority() + uri.getPath(); + } + + public URI getServiceID() + { + String serviceIDString = getServiceIDString(); try { - return new URI(serviceID); + return new URI(serviceIDString); } catch (URISyntaxException e) { diff --git a/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java b/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java index 423f7df9..16b658bb 100644 --- a/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java +++ b/cadc-access-control/src/test/java/ca/nrc/cadc/ac/GroupURITest.java @@ -18,6 +18,18 @@ public class GroupURITest Log4jInit.setLevel("ca.nrc.cadc.ac", Level.DEBUG); } + @Test + public void testEquals() + { + GroupURI uri1 = new GroupURI("ivo://example.org/gms?name"); + GroupURI uri2 = new GroupURI("ivo://example.org/gms?name"); + Assert.assertTrue(uri1.equals(uri2)); + + uri1 = new GroupURI("ivo://example.org/gms?name"); + uri2 = new GroupURI("ivo://example.org/gms#name"); + Assert.assertTrue(uri1.equals(uri2)); + } + @Test public void testMalformed() { -- GitLab