Added expiration time check for member invitation.
Change-Id: Id119811e7cae6e9418d29618bd89e4f6812bc95a
diff --git a/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java b/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java
index 537f299..818f215 100644
--- a/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java
+++ b/full/src/test/java/de/ids_mannheim/korap/web/controller/UserGroupControllerTest.java
@@ -236,6 +236,7 @@
node.at("/errors/0/1").asText());
}
+ // EM: same as cancel invitation
private void testDeletePendingMember () throws UniformInterfaceException,
ClientHandlerException, KustvaktException {
// dory delete pearl
@@ -270,14 +271,14 @@
.delete(ClientResponse.class);
String entity = response.getEntity(String.class);
- System.out.println(entity);
+ // System.out.println(entity);
JsonNode node = JsonUtils.readTree(entity);
assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
- assertEquals(StatusCodes.DB_ENTRY_DELETED,
+ assertEquals(StatusCodes.GROUP_MEMBER_DELETED,
node.at("/errors/0/0").asInt());
- assertEquals("pearl has already been deleted from the group.",
+ assertEquals("pearl has already been deleted from the group dory group",
node.at("/errors/0/1").asText());
- assertEquals("pearl", node.at("/errors/0/2").asText());
+ assertEquals("[pearl, dory group]", node.at("/errors/0/2").asText());
}
private void testDeleteGroup (String groupId)
@@ -442,7 +443,7 @@
// System.out.println(entity);
JsonNode node = JsonUtils.readTree(entity);
assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
- assertEquals(StatusCodes.DB_ENTRY_EXISTS,
+ assertEquals(StatusCodes.GROUP_MEMBER_EXISTS,
node.at("/errors/0/0").asInt());
assertEquals("Username marlin with status PENDING exists in user-group "
+ "dory group", node.at("/errors/0/1").asText());
@@ -469,8 +470,8 @@
"pass"))
.entity(userGroup).post(ClientResponse.class);
-// String entity = response.getEntity(String.class);
-// System.out.println(entity);
+ String entity = response.getEntity(String.class);
+ System.out.println(entity);
assertEquals(Status.OK.getStatusCode(), response.getStatus());
// check member
@@ -625,4 +626,62 @@
assertEquals(1, node.size());
}
+ @Test
+ public void testUnsubscribeDeletedMember ()
+ throws UniformInterfaceException, ClientHandlerException,
+ KustvaktException {
+ // pearl unsubscribes from dory group
+ MultivaluedMap<String, String> form = new MultivaluedMapImpl();
+ // dory group
+ form.add("groupId", "2");
+
+ ClientResponse response = resource().path("group").path("unsubscribe")
+ .type(MediaType.APPLICATION_FORM_URLENCODED)
+ .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
+ .header(Attributes.AUTHORIZATION,
+ handler.createBasicAuthorizationHeaderValue("pearl",
+ "pass"))
+ .entity(form).post(ClientResponse.class);
+
+ String entity = response.getEntity(String.class);
+ // System.out.println(entity);
+ JsonNode node = JsonUtils.readTree(entity);
+ assertEquals(Status.BAD_REQUEST.getStatusCode(), response.getStatus());
+ assertEquals(StatusCodes.GROUP_MEMBER_DELETED,
+ node.at("/errors/0/0").asInt());
+ assertEquals("pearl has already been deleted from the group dory group",
+ node.at("/errors/0/1").asText());
+ assertEquals("[pearl, dory group]", node.at("/errors/0/2").asText());
+ }
+
+ @Test
+ public void testUnsubscribePendingMember ()
+ throws UniformInterfaceException, ClientHandlerException,
+ KustvaktException {
+
+ JsonNode node = retrieveUserGroups("marlin");
+ assertEquals(2, node.size());
+
+ MultivaluedMap<String, String> form = new MultivaluedMapImpl();
+ // dory group
+ form.add("groupId", "2");
+
+ ClientResponse response = resource().path("group").path("unsubscribe")
+ .type(MediaType.APPLICATION_FORM_URLENCODED)
+ .header(HttpHeaders.X_FORWARDED_FOR, "149.27.0.32")
+ .header(Attributes.AUTHORIZATION,
+ handler.createBasicAuthorizationHeaderValue("marlin",
+ "pass"))
+ .entity(form).post(ClientResponse.class);
+
+ String entity = response.getEntity(String.class);
+ // System.out.println(entity);
+ assertEquals(Status.OK.getStatusCode(), response.getStatus());
+
+ node = retrieveUserGroups("marlin");
+ assertEquals(1, node.size());
+
+ // invite marlin to dory group to set back the GroupMemberStatus.PENDING
+ testInviteDeletedMember();
+ }
}
diff --git a/full/src/test/resources/test-config.xml b/full/src/test/resources/test-config.xml
index b416f1c..01f4e75 100644
--- a/full/src/test/resources/test-config.xml
+++ b/full/src/test/resources/test-config.xml
@@ -75,6 +75,12 @@
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
+ <property name="connectionProperties">
+ <props>
+ <prop key="date_string_format">yyyy-MM-dd HH:mm:ss</prop>
+ </props>
+ </property>
+
<!-- Sqlite can only have a single connection -->
<property name="suppressClose">
<value>true</value>