From 4e3c152fa7e97200855ba0d2716362dbe7976920 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 04 Jan 2013 17:23:23 -0500
Subject: [PATCH] Support local accounts with LdapUserService and RedmineUserService (issue-183)

---
 tests/com/gitblit/tests/RedmineUserServiceTest.java |   24 ++++++++++++++++++++++--
 1 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/tests/com/gitblit/tests/RedmineUserServiceTest.java b/tests/com/gitblit/tests/RedmineUserServiceTest.java
index 30a8fb2..0e12542 100644
--- a/tests/com/gitblit/tests/RedmineUserServiceTest.java
+++ b/tests/com/gitblit/tests/RedmineUserServiceTest.java
@@ -1,9 +1,10 @@
 package com.gitblit.tests;
 
 import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
 
 import java.util.HashMap;
 
@@ -12,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 {
 
@@ -29,7 +31,7 @@
         redmineUserService.setup(new MemorySettings(new HashMap<String, Object>()));
         redmineUserService.setTestingCurrentUserAsJson(JSON);
         UserModel userModel = redmineUserService.authenticate("RedmineUserId", "RedmineAPIKey".toCharArray());
-        assertThat(userModel.getName(), is("RedmineUserId"));
+        assertThat(userModel.getName(), is("redmineuserid"));
         assertThat(userModel.getDisplayName(), is("baz foo"));
         assertThat(userModel.emailAddress, is("baz@example.com"));
         assertNotNull(userModel.cookie);
@@ -48,5 +50,23 @@
         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