Author: matthieu
Date: Fri Dec 11 12:31:50 2015
New Revision: 1719376
URL: http://svn.apache.org/viewvc?rev=1719376&view=rev
Log:
JAMES-1644 Remove mocks on ZoneDateTimeProvider
Added:
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/FixedDateZonedDateTimeProvider.java
Modified:
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/JMAPAuthenticationTest.java
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/SignedContinuationTokenManagerTest.java
Added:
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/FixedDateZonedDateTimeProvider.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/FixedDateZonedDateTimeProvider.java?rev=1719376&view=auto
==============================================================================
---
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/FixedDateZonedDateTimeProvider.java
(added)
+++
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/FixedDateZonedDateTimeProvider.java
Fri Dec 11 12:31:50 2015
@@ -0,0 +1,39 @@
+/****************************************************************
+ * 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;
+
+import java.time.ZonedDateTime;
+
+import org.apache.james.jmap.utils.ZonedDateTimeProvider;
+
+public class FixedDateZonedDateTimeProvider implements ZonedDateTimeProvider {
+
+ private ZonedDateTime zonedDateTime;
+
+ public void setFixedDateTime(ZonedDateTime zonedDateTime) {
+ this.zonedDateTime = zonedDateTime;
+ }
+
+ @Override
+ public ZonedDateTime get() {
+ return zonedDateTime;
+ }
+
+}
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=1719376&r1=1719375&r2=1719376&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:50 2015
@@ -26,7 +26,6 @@ import static org.assertj.core.api.Asser
import static org.hamcrest.Matchers.hasItem;
import static org.hamcrest.Matchers.isA;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
@@ -44,7 +43,6 @@ import org.apache.james.jmap.crypto.Jame
import org.apache.james.jmap.crypto.SignedContinuationTokenManager;
import org.apache.james.jmap.memory.access.MemoryAccessTokenRepository;
import org.apache.james.jmap.model.ContinuationToken;
-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.lib.mock.InMemoryUsersRepository;
@@ -65,7 +63,7 @@ public class JMAPAuthenticationTest {
private JettyHttpServer server;
private UsersRepository usersRepository;
- private ZonedDateTimeProvider mockedZonedDateTimeProvider;
+ private FixedDateZonedDateTimeProvider zonedDateTimeProvider;
private AccessTokenManager accessTokenManager;
private SignedContinuationTokenManager continuationTokenManager;
private UserCredentials userCredentials;
@@ -73,10 +71,10 @@ public class JMAPAuthenticationTest {
@Before
public void setup() throws Exception {
usersRepository = new InMemoryUsersRepository();
- mockedZonedDateTimeProvider = mock(ZonedDateTimeProvider.class);
+ zonedDateTimeProvider = new FixedDateZonedDateTimeProvider();
MailboxManager mockedMailboxManager = mock(MailboxManager.class);
accessTokenManager = new AccessTokenManagerImpl(new
MemoryAccessTokenRepository(TimeUnit.MILLISECONDS.convert(1, TimeUnit.HOURS)));
- continuationTokenManager = new SignedContinuationTokenManager(new
JamesSignatureHandlerProvider().provide(), mockedZonedDateTimeProvider);
+ continuationTokenManager = new SignedContinuationTokenManager(new
JamesSignatureHandlerProvider().provide(), zonedDateTimeProvider);
AuthenticationServlet authenticationServlet = new
AuthenticationServlet(usersRepository, continuationTokenManager,
accessTokenManager);
@@ -102,6 +100,7 @@ public class JMAPAuthenticationTest {
.password("password")
.build();
usersRepository.addUser(userCredentials.getUsername(),
userCredentials.getPassword());
+ zonedDateTimeProvider.setFixedDateTime(oldDate);
}
@After
@@ -187,9 +186,6 @@ public class JMAPAuthenticationTest {
@Test
public void mustReturnJsonResponse() throws Exception {
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
-
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
@@ -203,9 +199,6 @@ public class JMAPAuthenticationTest {
@Test
public void methodShouldContainPasswordWhenValidResquest() throws
Exception {
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
-
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
@@ -219,9 +212,6 @@ public class JMAPAuthenticationTest {
@Test
public void mustReturnContinuationTokenWhenValidResquest() throws
Exception {
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
-
given()
.contentType(ContentType.JSON)
.accept(ContentType.JSON)
@@ -235,9 +225,6 @@ public class JMAPAuthenticationTest {
@Test
public void mustReturnAuthenticationFailedWhenBadPassword() throws
Exception {
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
-
String continuationToken = fromGoodContinuationTokenRequest();
given()
@@ -253,9 +240,6 @@ public class JMAPAuthenticationTest {
@Test
public void
mustReturnAuthenticationFailedWhenContinuationTokenIsRejectedByTheContinuationTokenManager()
throws Exception {
ContinuationToken badContinuationToken = new
ContinuationToken(userCredentials.getUsername(), newDate, "badSignature");
-
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
given()
.contentType(ContentType.JSON)
@@ -269,13 +253,8 @@ public class JMAPAuthenticationTest {
@Test
public void
mustReturnRestartAuthenticationWhenContinuationTokenIsExpired() throws
Exception {
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
-
String continuationToken = fromGoodContinuationTokenRequest();
-
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(afterExpirationDate);
+ zonedDateTimeProvider.setFixedDateTime(afterExpirationDate);
given()
.contentType(ContentType.JSON)
@@ -289,9 +268,6 @@ public class JMAPAuthenticationTest {
@Test
public void mustReturnAuthenticationFailedWhenUsersRepositoryException()
throws Exception {
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
-
String continuationToken = fromGoodContinuationTokenRequest();
usersRepository.removeUser(userCredentials.getUsername());
@@ -308,13 +284,8 @@ public class JMAPAuthenticationTest {
@Test
public void mustReturnCreatedWhenGoodPassword() throws Exception {
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
-
String continuationToken = fromGoodContinuationTokenRequest();
-
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(newDate);
+ zonedDateTimeProvider.setFixedDateTime(newDate);
given()
.contentType(ContentType.JSON)
@@ -328,13 +299,8 @@ public class JMAPAuthenticationTest {
@Test
public void mustSendJsonContainingAccessTokenWhenGoodPassword() throws
Exception {
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
-
String continuationToken = fromGoodContinuationTokenRequest();
-
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(newDate);
+ zonedDateTimeProvider.setFixedDateTime(newDate);
given()
.contentType(ContentType.JSON)
@@ -379,13 +345,8 @@ public class JMAPAuthenticationTest {
@Test
public void getMustReturnEndpointsWhenCorrectAuthentication() throws
Exception {
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
-
String continuationToken = fromGoodContinuationTokenRequest();
-
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(newDate);
+ zonedDateTimeProvider.setFixedDateTime(newDate);
String accessToken = fromGoodAccessTokenRequest(continuationToken);
@@ -439,13 +400,8 @@ public class JMAPAuthenticationTest {
@Test
public void deleteMustInvalidAuthorizationOnCorrectAuthorization() throws
Exception {
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(oldDate);
-
String continuationToken = fromGoodContinuationTokenRequest();
-
- when(mockedZonedDateTimeProvider.get())
- .thenReturn(newDate);
+ zonedDateTimeProvider.setFixedDateTime(newDate);
String accessToken = fromGoodAccessTokenRequest(continuationToken);
Modified:
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/SignedContinuationTokenManagerTest.java
URL:
http://svn.apache.org/viewvc/james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/SignedContinuationTokenManagerTest.java?rev=1719376&r1=1719375&r2=1719376&view=diff
==============================================================================
---
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/SignedContinuationTokenManagerTest.java
(original)
+++
james/project/trunk/server/protocols/jmap/src/test/java/org/apache/james/jmap/crypto/SignedContinuationTokenManagerTest.java
Fri Dec 11 12:31:50 2015
@@ -20,15 +20,13 @@
package org.apache.james.jmap.crypto;
import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.when;
import java.time.ZonedDateTime;
import java.time.format.DateTimeFormatter;
+import org.apache.james.jmap.FixedDateZonedDateTimeProvider;
import
org.apache.james.jmap.api.ContinuationTokenManager.ContinuationTokenStatus;
import org.apache.james.jmap.model.ContinuationToken;
-import org.apache.james.jmap.utils.ZonedDateTimeProvider;
import org.junit.Before;
import org.junit.Test;
@@ -39,12 +37,12 @@ public class SignedContinuationTokenMana
private static final ZonedDateTime DATE =
ZonedDateTime.parse(EXPIRATION_DATE_STRING,
DateTimeFormatter.ISO_OFFSET_DATE_TIME);
private SignedContinuationTokenManager toKenManager;
- private ZonedDateTimeProvider zonedDateTimeProvider;
+ private FixedDateZonedDateTimeProvider zonedDateTimeProvider;
@Before
public void setUp() throws Exception {
JamesSignatureHandler signatureHandler = new
JamesSignatureHandlerProvider().provide();
- zonedDateTimeProvider = mock(ZonedDateTimeProvider.class);
+ zonedDateTimeProvider = new FixedDateZonedDateTimeProvider();
toKenManager = new SignedContinuationTokenManager(signatureHandler,
zonedDateTimeProvider);
}
@@ -55,7 +53,7 @@ public class SignedContinuationTokenMana
@Test
public void isValidShouldRecognizeValidTokens() throws Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
assertThat(
toKenManager.isValid(
toKenManager.generateToken("user")))
@@ -64,7 +62,7 @@ public class SignedContinuationTokenMana
@Test
public void isValidShouldRecognizeTokenWhereUsernameIsModified() throws
Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
ContinuationToken continuationToken =
toKenManager.generateToken("user");
ContinuationToken pirateContinuationToken = new
ContinuationToken("pirate",
continuationToken.getExpirationDate(),
@@ -74,7 +72,7 @@ public class SignedContinuationTokenMana
@Test
public void isValidShouldRecognizeTokenWhereExpirationDateIsModified()
throws Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
ContinuationToken continuationToken =
toKenManager.generateToken("user");
ContinuationToken pirateContinuationToken = new
ContinuationToken(continuationToken.getUsername(),
continuationToken.getExpirationDate().plusHours(1),
@@ -84,7 +82,7 @@ public class SignedContinuationTokenMana
@Test
public void isValidShouldRecognizeTokenWhereSignatureIsModified() throws
Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
ContinuationToken continuationToken =
toKenManager.generateToken("user");
ContinuationToken pirateContinuationToken = new
ContinuationToken(continuationToken.getUsername(),
continuationToken.getExpirationDate(),
@@ -94,15 +92,15 @@ public class SignedContinuationTokenMana
@Test
public void isValidShouldReturnFalseWhenTokenIsOutdated() throws Exception
{
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
ContinuationToken continuationToken =
toKenManager.generateToken("user");
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock ->
DATE.plusHours(1));
+ zonedDateTimeProvider.setFixedDateTime(DATE.plusHours(1));
assertThat(toKenManager.isValid(continuationToken)).isFalse();
}
@Test
public void isValidShouldReturnFalseOnNonValidSignatures() throws
Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
ContinuationToken pirateContinuationToken = new
ContinuationToken("user", DATE.plusMinutes(15), "fake");
assertThat(toKenManager.isValid(pirateContinuationToken)).isFalse();
}
@@ -114,7 +112,7 @@ public class SignedContinuationTokenMana
@Test
public void getValidityShouldRecognizeValidTokens() throws Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
assertThat(
toKenManager.getValidity(
toKenManager.generateToken("user")))
@@ -123,7 +121,7 @@ public class SignedContinuationTokenMana
@Test
public void getValidityShouldRecognizeTokenWhereUsernameIsModified()
throws Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
ContinuationToken continuationToken =
toKenManager.generateToken("user");
ContinuationToken pirateContinuationToken = new
ContinuationToken("pirate",
continuationToken.getExpirationDate(),
@@ -133,7 +131,7 @@ public class SignedContinuationTokenMana
@Test
public void getValidityhouldRecognizeTokenWhereExpirationDateIsModified()
throws Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
ContinuationToken continuationToken =
toKenManager.generateToken("user");
ContinuationToken pirateContinuationToken = new
ContinuationToken(continuationToken.getUsername(),
continuationToken.getExpirationDate().plusHours(1),
@@ -143,7 +141,7 @@ public class SignedContinuationTokenMana
@Test
public void getValidityShouldRecognizeTokenWhereSignatureIsModified()
throws Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
ContinuationToken continuationToken =
toKenManager.generateToken("user");
ContinuationToken pirateContinuationToken = new
ContinuationToken(continuationToken.getUsername(),
continuationToken.getExpirationDate(),
@@ -153,15 +151,15 @@ public class SignedContinuationTokenMana
@Test
public void getValidityShouldReturnFalseWhenTokenIsOutdated() throws
Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
ContinuationToken continuationToken =
toKenManager.generateToken("user");
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock ->
DATE.plusHours(1));
+ zonedDateTimeProvider.setFixedDateTime(DATE.plusHours(1));
assertThat(toKenManager.getValidity(continuationToken)).isEqualTo(ContinuationTokenStatus.EXPIRED);
}
@Test
public void getValidityShouldReturnFalseOnNonValidSignatures() throws
Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
ContinuationToken pirateContinuationToken = new
ContinuationToken("user", DATE.plusMinutes(15), "fake");
assertThat(toKenManager.getValidity(pirateContinuationToken)).isEqualTo(ContinuationTokenStatus.INVALID);
}
@@ -173,7 +171,7 @@ public class SignedContinuationTokenMana
@Test
public void generateTokenShouldHaveTheRightOutPut() throws Exception {
- when(zonedDateTimeProvider.get()).thenAnswer(invocationOnMock -> DATE);
+ zonedDateTimeProvider.setFixedDateTime(DATE);
assertThat(toKenManager.generateToken("user").serialize())
.isEqualTo("user_2011-12-03T10:30:30+01:00_eOvOqTmV3dPrhIkbuQSj2sno3YJMxWl6J1sH1JhwYcaNgMX9twm98/WSF9uyDkvJgvBxFokDr53AbxQ3DsJysB2dAzCC0tUM4u8ZMvl/hQrFXhVCdpVMyHRvixKCxnHsVXAr9g3WMn2vbIVq5i3HPgA6/p9FB1+N4WA06B8ueoCrdxT2w1ITEm8p+QZvje3n1F344SgrqgIYqvt0yUvzxnB24f3ccjAKidlBj4wZkcXgUTMbZ7MdnCbDGbp10+tgJqxiv1S0rXZMeJLJ+vBt5TyqEhsJUmUQ84qctlB4yR5FS+ncbAOyZAxs2dWsHqiQjedb3IR77N7CASzqO2mmVw==");
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]