From 9effe1630d97039b3e01cd9b58ed07e75be1d63c Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 25 Feb 2013 08:40:30 -0500
Subject: [PATCH] Merge pull request #75 from thefake/master

---
 tests/com/gitblit/tests/RedmineUserServiceTest.java |   45 ++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 38 insertions(+), 7 deletions(-)

diff --git a/tests/com/gitblit/tests/RedmineUserServiceTest.java b/tests/com/gitblit/tests/RedmineUserServiceTest.java
index a6a8a5e..12fa73f 100644
--- a/tests/com/gitblit/tests/RedmineUserServiceTest.java
+++ b/tests/com/gitblit/tests/RedmineUserServiceTest.java
@@ -1,8 +1,10 @@
 package com.gitblit.tests;
 
 import static org.hamcrest.CoreMatchers.is;
-import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 import java.util.HashMap;
 
@@ -11,6 +13,7 @@
 import com.gitblit.RedmineUserService;
 import com.gitblit.models.UserModel;
 import com.gitblit.tests.mock.MemorySettings;
+import com.gitblit.utils.StringUtils;
 
 public class RedmineUserServiceTest {
 
@@ -18,24 +21,52 @@
         + "\"last_login_on\":\"2012-09-06T23:59:26Z\",\"firstname\":\"baz\","
         + "\"id\":4,\"login\":\"RedmineUserId\",\"mail\":\"baz@example.com\"}}";
 
+    private static final String NOT_ADMIN_JSON = "{\"user\":{\"lastname\":\"foo\","
+        + "\"last_login_on\":\"2012-09-08T13:59:01Z\",\"created_on\":\"2009-03-17T14:25:50Z\","
+        + "\"mail\":\"baz@example.com\",\"id\":5,\"firstname\":\"baz\"}}";
+
     @Test
     public void testAuthenticate() throws Exception {
         RedmineUserService redmineUserService = new RedmineUserService();
         redmineUserService.setup(new MemorySettings(new HashMap<String, Object>()));
         redmineUserService.setTestingCurrentUserAsJson(JSON);
-        UserModel userModel = redmineUserService.authenticate("RedmineUserId", "RedmineAPIKey".toCharArray());
-        assertThat(userModel.getName(), is("RedmineUserId"));
+        UserModel userModel = redmineUserService.authenticate("RedmineAdminId", "RedmineAPIKey".toCharArray());
+        assertThat(userModel.getName(), is("redmineadminid"));
         assertThat(userModel.getDisplayName(), is("baz foo"));
         assertThat(userModel.emailAddress, is("baz@example.com"));
+        assertNotNull(userModel.cookie);
+        assertThat(userModel.canAdmin, is(true));
     }
 
     @Test
-    public void testAuthenticateWithWronId() throws Exception {
+    public void testAuthenticateNotAdminUser() throws Exception {
         RedmineUserService redmineUserService = new RedmineUserService();
         redmineUserService.setup(new MemorySettings(new HashMap<String, Object>()));
-        redmineUserService.setTestingCurrentUserAsJson(JSON);
-        UserModel userModel = redmineUserService.authenticate("WrongRedmineUserId", "RedmineAPIKey".toCharArray());
-        assertNull(userModel);
+        redmineUserService.setTestingCurrentUserAsJson(NOT_ADMIN_JSON);
+        UserModel userModel = redmineUserService.authenticate("RedmineUserId", "RedmineAPIKey".toCharArray());
+        assertThat(userModel.getName(), is("redmineuserid"));
+        assertThat(userModel.getDisplayName(), is("baz foo"));
+        assertThat(userModel.emailAddress, is("baz@example.com"));
+        assertNotNull(userModel.cookie);
+        assertThat(userModel.canAdmin, is(false));
     }
+    
+    @Test
+	public void testLocalAccount() {
+        RedmineUserService redmineUserService = new RedmineUserService();
+        redmineUserService.setup(new MemorySettings(new HashMap<String, Object>()));
+
+		UserModel localAccount = new UserModel("bruce");
+		localAccount.displayName = "Bruce Campbell";
+		localAccount.password = StringUtils.MD5_TYPE + StringUtils.getMD5("gimmesomesugar");
+		redmineUserService.deleteUser(localAccount.username);
+		assertTrue("Failed to add local account",
+				redmineUserService.updateUserModel(localAccount));
+		assertEquals("Accounts are not equal!", 
+				localAccount, 
+				redmineUserService.authenticate(localAccount.username, "gimmesomesugar".toCharArray()));
+		assertTrue("Failed to delete local account!",
+				redmineUserService.deleteUser(localAccount.username));
+	}
 
 }

--
Gitblit v1.9.1