From 4a6a0f225793d90646af40e22cb0731db3cd16e9 Mon Sep 17 00:00:00 2001 From: Belen Pruvost Date: Thu, 16 Sep 2021 18:34:42 +0200 Subject: [PATCH] SONAR-15143 - Using ISO8601 for DateTimes --- .../main/java/org/sonar/db/audit/model/UserNewValue.java | 4 +++- .../java/org/sonar/db/audit/model/UserTokenNewValue.java | 5 +++-- .../java/org/sonar/db/user/UserDaoWithPersisterTest.java | 5 ++++- .../org/sonar/db/user/UserTokenDaoWithPersisterTest.java | 9 +++++++-- 4 files changed, 17 insertions(+), 6 deletions(-) diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/audit/model/UserNewValue.java b/server/sonar-db-dao/src/main/java/org/sonar/db/audit/model/UserNewValue.java index a63af8f85710..f78f046bd978 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/audit/model/UserNewValue.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/audit/model/UserNewValue.java @@ -22,6 +22,7 @@ import javax.annotation.CheckForNull; import javax.annotation.Nullable; import org.apache.commons.lang.ObjectUtils; +import org.sonar.api.utils.DateUtils; import org.sonar.db.user.UserDto; import static java.util.Objects.requireNonNull; @@ -162,7 +163,8 @@ public String toString() { addField(sb, "\"local\": ", ObjectUtils.toString(this.local), false); addField(sb, "\"onboarded\": ", ObjectUtils.toString(this.onboarded), false); addField(sb, "\"root\": ", ObjectUtils.toString(this.root), false); - addField(sb, "\"lastConnectionDate\": ", ObjectUtils.toString(this.lastConnectionDate), false); + addField(sb, "\"lastConnectionDate\": ", this.lastConnectionDate == null ? + "" : DateUtils.formatDateTime(this.lastConnectionDate), false); endString(sb); return sb.toString(); } diff --git a/server/sonar-db-dao/src/main/java/org/sonar/db/audit/model/UserTokenNewValue.java b/server/sonar-db-dao/src/main/java/org/sonar/db/audit/model/UserTokenNewValue.java index 05f39e63e8db..ac0b13e25f59 100644 --- a/server/sonar-db-dao/src/main/java/org/sonar/db/audit/model/UserTokenNewValue.java +++ b/server/sonar-db-dao/src/main/java/org/sonar/db/audit/model/UserTokenNewValue.java @@ -21,7 +21,7 @@ import javax.annotation.CheckForNull; import javax.annotation.Nullable; -import org.apache.commons.lang.ObjectUtils; +import org.sonar.api.utils.DateUtils; import org.sonar.db.user.UserDto; import org.sonar.db.user.UserTokenDto; @@ -89,7 +89,8 @@ public String toString() { addField(sb, "\"userUuid\": ", this.userUuid, true); addField(sb, "\"userLogin\": ", this.userLogin, true); addField(sb, "\"tokenName\": ", this.tokenName, true); - addField(sb, "\"lastConnectionDate\": ", ObjectUtils.toString(this.lastConnectionDate), false); + addField(sb, "\"lastConnectionDate\": ", this.lastConnectionDate == null ? + "" : DateUtils.formatDateTime(this.lastConnectionDate), false); endString(sb); return sb.toString(); } diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDaoWithPersisterTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDaoWithPersisterTest.java index c4db20ec07f1..8202733da4f3 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDaoWithPersisterTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserDaoWithPersisterTest.java @@ -25,6 +25,7 @@ import org.junit.runner.RunWith; import org.mockito.ArgumentCaptor; import org.sonar.api.impl.utils.TestSystem2; +import org.sonar.api.utils.DateUtils; import org.sonar.db.DbClient; import org.sonar.db.DbTester; import org.sonar.db.audit.AuditPersister; @@ -114,7 +115,9 @@ public void updateUserIsPersisted() { .containsExactly(updatedUser.getUuid(), updatedUser.getLogin(), updatedUser.getName(), updatedUser.getEmail(), updatedUser.isActive(), updatedUser.getScmAccounts(), updatedUser.getExternalId(), updatedUser.getExternalLogin(), updatedUser.getExternalIdentityProvider(), updatedUser.isLocal(), updatedUser.isOnboarded(), updatedUser.isRoot(), updatedUser.getLastConnectionDate()); - assertThat(newValue.toString()).contains("name"); + assertThat(newValue.toString()) + .contains("name") + .contains(DateUtils.formatDateTime(updatedUser.getLastConnectionDate())); } @Test diff --git a/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserTokenDaoWithPersisterTest.java b/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserTokenDaoWithPersisterTest.java index 4aca0d5f93ea..16eed5e1f01e 100644 --- a/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserTokenDaoWithPersisterTest.java +++ b/server/sonar-db-dao/src/test/java/org/sonar/db/user/UserTokenDaoWithPersisterTest.java @@ -23,6 +23,7 @@ import org.junit.Test; import org.junit.rules.ExpectedException; import org.mockito.ArgumentCaptor; +import org.sonar.api.utils.DateUtils; import org.sonar.api.utils.System2; import org.sonar.db.DbClient; import org.sonar.db.DbSession; @@ -30,6 +31,7 @@ import org.sonar.db.audit.AuditPersister; import org.sonar.db.audit.model.UserTokenNewValue; +import static org.apache.commons.lang.math.RandomUtils.nextLong; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.eq; @@ -53,7 +55,8 @@ public class UserTokenDaoWithPersisterTest { @Test public void insert_token_is_persisted() { - UserTokenDto userToken = newUserToken(); + UserTokenDto userToken = newUserToken() + .setLastConnectionDate(nextLong()); underTest.insert(db.getSession(), userToken, "login"); verify(auditPersister).addUserToken(eq(db.getSession()), newValueCaptor.capture()); @@ -68,7 +71,9 @@ public void insert_token_is_persisted() { assertThat(newValue) .extracting(UserTokenNewValue::getTokenUuid, UserTokenNewValue::getTokenName, UserTokenNewValue::getUserUuid, UserTokenNewValue::getLastConnectionDate) .containsExactly(userToken.getUuid(), userToken.getName(), userToken.getUserUuid(), userToken.getLastConnectionDate()); - assertThat(newValue.toString()).contains("tokenUuid"); + assertThat(newValue.toString()) + .contains("tokenUuid") + .contains(DateUtils.formatDateTime(userToken.getLastConnectionDate())); } @Test