Author: matthieu
Date: Fri Dec 11 12:31:43 2015
New Revision: 1719375
URL: http://svn.apache.org/viewvc?rev=1719375&view=rev
Log:
JAMES-1644 Use in memory UsersRepository when testing
Added:
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserCredentials.java
Modified:
james/project/trunk/server/protocols/jmap/pom.xml
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
Modified: james/project/trunk/server/protocols/jmap/pom.xml
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/pom.xml?rev=1719375&r1=1719374&r2=1719375&view=diff
==============================================================================
--- james/project/trunk/server/protocols/jmap/pom.xml (original)
+++ james/project/trunk/server/protocols/jmap/pom.xml Fri Dec 11 12:31:43 2015
@@ -171,6 +171,17 @@
</dependency>
<dependency>
<groupId>org.apache.james</groupId>
+ <artifactId>james-server-data-library</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
+ <artifactId>james-server-data-library</artifactId>
+ <scope>test</scope>
+ <type>test-jar</type>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.james</groupId>
<artifactId>james-server-jetty</artifactId>
</dependency>
<dependency>
Modified:
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java?rev=1719375&r1=1719374&r2=1719375&view=diff
==============================================================================
---
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
(original)
+++
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
Fri Dec 11 12:31:43 2015
@@ -47,7 +47,7 @@ import org.apache.james.jmap.model.Conti
import org.apache.james.jmap.utils.ZonedDateTimeProvider;
import org.apache.james.mailbox.MailboxManager;
import org.apache.james.user.api.UsersRepository;
-import org.apache.james.user.api.UsersRepositoryException;
+import org.apache.james.user.lib.mock.InMemoryUsersRepository;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@@ -64,20 +64,21 @@ public class JMAPAuthenticationTest {
private JettyHttpServer server;
- private UsersRepository mockedUsersRepository;
+ private UsersRepository usersRepository;
private ZonedDateTimeProvider mockedZonedDateTimeProvider;
private AccessTokenManager accessTokenManager;
private SignedContinuationTokenManager continuationTokenManager;
+ private UserCredentials userCredentials;
@Before
public void setup() throws Exception {
- mockedUsersRepository = mock(UsersRepository.class);
+ usersRepository = new InMemoryUsersRepository();
mockedZonedDateTimeProvider = mock(ZonedDateTimeProvider.class);
MailboxManager mockedMailboxManager = mock(MailboxManager.class);
accessTokenManager = new AccessTokenManagerImpl(new
MemoryAccessTokenRepository(TimeUnit.MILLISECONDS.convert(1, TimeUnit.HOURS)));
continuationTokenManager = new SignedContinuationTokenManager(new
JamesSignatureHandlerProvider().provide(), mockedZonedDateTimeProvider);
- AuthenticationServlet authenticationServlet = new
AuthenticationServlet(mockedUsersRepository, continuationTokenManager,
accessTokenManager);
+ AuthenticationServlet authenticationServlet = new
AuthenticationServlet(usersRepository, continuationTokenManager,
accessTokenManager);
AuthenticationFilter authenticationFilter = new
AuthenticationFilter(accessTokenManager, mockedMailboxManager);
Filter getAuthenticationFilter = new
BypassOnPostFilter(authenticationFilter);
@@ -95,13 +96,19 @@ public class JMAPAuthenticationTest {
server.start();
RestAssured.port = server.getPort();
RestAssured.config =
newConfig().encoderConfig(encoderConfig().defaultContentCharset(Charsets.UTF_8));
+
+ userCredentials = UserCredentials.builder()
+ .username("user")
+ .password("password")
+ .build();
+ usersRepository.addUser(userCredentials.getUsername(),
userCredentials.getPassword());
}
-
+
@After
public void teardown() throws Exception {
server.stop();
}
-
+
@Test
public void mustReturnMalformedRequestWhenContentTypeIsMissing() {
given()
@@ -186,7 +193,7 @@ public class JMAPAuthenticationTest {
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
- .body("{\"username\": \"[email protected]\", \"clientName\":
\"Mozilla Thunderbird\", \"clientVersion\": \"42.0\", \"deviceName\": \"Joe
Bloggâs iPhone\"}")
+ .body("{\"username\": \"" + userCredentials.getUsername() + "\",
\"clientName\": \"Mozilla Thunderbird\", \"clientVersion\": \"42.0\",
\"deviceName\": \"Joe Bloggâs iPhone\"}")
.when()
.post("/authentication")
.then()
@@ -202,12 +209,12 @@ public class JMAPAuthenticationTest {
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
- .body("{\"username\": \"[email protected]\", \"clientName\":
\"Mozilla Thunderbird\", \"clientVersion\": \"42.0\", \"deviceName\": \"Joe
Bloggâs iPhone\"}")
+ .body("{\"username\": \"" + userCredentials.getUsername() + "\",
\"clientName\": \"Mozilla Thunderbird\", \"clientVersion\": \"42.0\",
\"deviceName\": \"Joe Bloggâs iPhone\"}")
.when()
.post("/authentication")
.then()
.statusCode(200)
- .body("methods", hasItem("password"));
+ .body("methods", hasItem(userCredentials.getPassword()));
}
@Test
@@ -218,7 +225,7 @@ public class JMAPAuthenticationTest {
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
- .body("{\"username\": \"[email protected]\", \"clientName\":
\"Mozilla Thunderbird\", \"clientVersion\": \"42.0\", \"deviceName\": \"Joe
Bloggâs iPhone\"}")
+ .body("{\"username\": \"" + userCredentials.getUsername() + "\",
\"clientName\": \"Mozilla Thunderbird\", \"clientVersion\": \"42.0\",
\"deviceName\": \"Joe Bloggâs iPhone\"}")
.when()
.post("/authentication")
.then()
@@ -245,17 +252,15 @@ public class JMAPAuthenticationTest {
@Test
public void
mustReturnAuthenticationFailedWhenContinuationTokenIsRejectedByTheContinuationTokenManager()
throws Exception {
- ContinuationToken badContinuationToken = new
ContinuationToken("[email protected]", newDate, "badSignature");
+ ContinuationToken badContinuationToken = new
ContinuationToken(userCredentials.getUsername(), newDate, "badSignature");
- when(mockedUsersRepository.test("[email protected]", "password"))
- .thenReturn(true);
when(mockedZonedDateTimeProvider.get())
.thenReturn(oldDate);
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
- .body("{\"token\": \"" + badContinuationToken.serialize() + "\",
\"method\": \"password\", \"password\": \"password\"}")
+ .body("{\"token\": \"" + badContinuationToken.serialize() + "\",
\"method\": \"password\", \"password\": \"" + userCredentials.getPassword() +
"\"}")
.when()
.post("/authentication")
.then()
@@ -269,15 +274,13 @@ public class JMAPAuthenticationTest {
String continuationToken = fromGoodContinuationTokenRequest();
- when(mockedUsersRepository.test("[email protected]", "password"))
- .thenReturn(true);
when(mockedZonedDateTimeProvider.get())
.thenReturn(afterExpirationDate);
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
- .body("{\"token\": \"" + continuationToken + "\", \"method\":
\"password\", \"password\": \"password\"}")
+ .body("{\"token\": \"" + continuationToken + "\", \"method\":
\"password\", \"password\": \"" + userCredentials.getPassword() + "\"}")
.when()
.post("/authentication")
.then()
@@ -291,13 +294,12 @@ public class JMAPAuthenticationTest {
String continuationToken = fromGoodContinuationTokenRequest();
- when(mockedUsersRepository.test("[email protected]", "password"))
- .thenThrow(new UsersRepositoryException("test"));
+ usersRepository.removeUser(userCredentials.getUsername());
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
- .body("{\"token\": \"" + continuationToken + "\", \"method\":
\"password\", \"password\": \"password\"}")
+ .body("{\"token\": \"" + continuationToken + "\", \"method\":
\"password\", \"password\": \"" + userCredentials.getPassword() + "\"}")
.when()
.post("/authentication")
.then()
@@ -311,15 +313,13 @@ public class JMAPAuthenticationTest {
String continuationToken = fromGoodContinuationTokenRequest();
- when(mockedUsersRepository.test("[email protected]", "password"))
- .thenReturn(true);
when(mockedZonedDateTimeProvider.get())
.thenReturn(newDate);
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
- .body("{\"token\": \"" + continuationToken + "\", \"method\":
\"password\", \"password\": \"password\"}")
+ .body("{\"token\": \"" + continuationToken + "\", \"method\":
\"password\", \"password\": \"" + userCredentials.getPassword() + "\"}")
.when()
.post("/authentication")
.then()
@@ -333,15 +333,13 @@ public class JMAPAuthenticationTest {
String continuationToken = fromGoodContinuationTokenRequest();
- when(mockedUsersRepository.test("[email protected]", "password"))
- .thenReturn(true);
when(mockedZonedDateTimeProvider.get())
.thenReturn(newDate);
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
- .body("{\"token\": \"" + continuationToken + "\", \"method\":
\"password\", \"password\": \"password\"}")
+ .body("{\"token\": \"" + continuationToken + "\", \"method\":
\"password\", \"password\": \"" + userCredentials.getPassword() + "\"}")
.when()
.post("/authentication")
.then()
@@ -386,8 +384,6 @@ public class JMAPAuthenticationTest {
String continuationToken = fromGoodContinuationTokenRequest();
- when(mockedUsersRepository.test("[email protected]", "password"))
- .thenReturn(true);
when(mockedZonedDateTimeProvider.get())
.thenReturn(newDate);
@@ -448,8 +444,6 @@ public class JMAPAuthenticationTest {
String continuationToken = fromGoodContinuationTokenRequest();
- when(mockedUsersRepository.test("[email protected]", "password"))
- .thenReturn(true);
when(mockedZonedDateTimeProvider.get())
.thenReturn(newDate);
@@ -469,7 +463,7 @@ public class JMAPAuthenticationTest {
return with()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
- .body("{\"username\": \"[email protected]\", \"clientName\":
\"Mozilla Thunderbird\", \"clientVersion\": \"42.0\", \"deviceName\": \"Joe
Bloggâs iPhone\"}")
+ .body("{\"username\": \"" + userCredentials.getUsername() + "\",
\"clientName\": \"Mozilla Thunderbird\", \"clientVersion\": \"42.0\",
\"deviceName\": \"Joe Bloggâs iPhone\"}")
.post("/authentication")
.body()
.path("continuationToken")
@@ -480,7 +474,7 @@ public class JMAPAuthenticationTest {
return with()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
- .body("{\"token\": \"" + continuationToken + "\", \"method\":
\"password\", \"password\": \"password\"}")
+ .body("{\"token\": \"" + continuationToken + "\", \"method\":
\"password\", \"password\": \"" + userCredentials.getPassword() + "\"}")
.post("/authentication")
.path("accessToken")
.toString();
Added:
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserCredentials.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserCredentials.java?rev=1719375&view=auto
==============================================================================
---
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserCredentials.java
(added)
+++
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/UserCredentials.java
Fri Dec 11 12:31:43 2015
@@ -0,0 +1,66 @@
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one *
+ * or more contributor license agreements. See the NOTICE file *
+ * distributed with this work for additional information *
+ * regarding copyright ownership. The ASF licenses this file *
+ * to you under the Apache License, Version 2.0 (the *
+ * "License"); you may not use this file except in compliance *
+ * with the License. You may obtain a copy of the License at *
+ * *
+ * http://www.apache.org/licenses/LICENSE-2.0 *
+ * *
+ * Unless required by applicable law or agreed to in writing, *
+ * software distributed under the License is distributed on an *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY *
+ * KIND, either express or implied. See the License for the *
+ * specific language governing permissions and limitations *
+ * under the License. *
+ ****************************************************************/
+
+package org.apache.james.jmap;
+
+public class UserCredentials {
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+
+ private String username;
+ private String password;
+
+ private Builder() {
+ }
+
+ public Builder username(String username) {
+ this.username = username;
+ return this;
+ }
+
+ public Builder password(String password) {
+ this.password = password;
+ return this;
+ }
+
+ public UserCredentials build() {
+ return new UserCredentials(username, password);
+ }
+ }
+
+ private final String username;
+ private final String password;
+
+ private UserCredentials(String username, String password) {
+ this.username = username;
+ this.password = password;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]