From c897457716cdb3619cd1d60e89845728e69eb2bf Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 05 Jan 2012 17:02:56 -0500
Subject: [PATCH] Added ArrayUtils class and unit test

---
 src/com/gitblit/utils/ArrayUtils.java       |   36 ++++++++++++++++++
 tests/com/gitblit/tests/ArrayUtilsTest.java |   67 +++++++++++++++++++++++++++++++++
 tests/com/gitblit/tests/GitBlitSuite.java   |   11 +++--
 3 files changed, 109 insertions(+), 5 deletions(-)

diff --git a/src/com/gitblit/utils/ArrayUtils.java b/src/com/gitblit/utils/ArrayUtils.java
new file mode 100644
index 0000000..635d27a
--- /dev/null
+++ b/src/com/gitblit/utils/ArrayUtils.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright 2012 gitblit.com.
+ *
+ * Licensed 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 com.gitblit.utils;
+
+import java.util.Collection;
+
+
+/**
+ * Utility class for arrays and collections.
+ * 
+ * @author James Moger
+ * 
+ */
+public class ArrayUtils {
+
+	public static boolean isEmpty(Object [] array) {
+		return array == null || array.length == 0;
+	}
+	
+	public static boolean isEmpty(Collection<?> collection) {
+		return collection == null || collection.size() == 0;
+	}
+}
diff --git a/tests/com/gitblit/tests/ArrayUtilsTest.java b/tests/com/gitblit/tests/ArrayUtilsTest.java
new file mode 100644
index 0000000..8a38afb
--- /dev/null
+++ b/tests/com/gitblit/tests/ArrayUtilsTest.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright 2012 gitblit.com.
+ *
+ * Licensed 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 com.gitblit.tests;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+
+import org.junit.Test;
+
+import com.gitblit.utils.ArrayUtils;
+
+public class ArrayUtilsTest {
+
+	@Test
+	public void testArrays() {
+		Object [] nullArray = null;
+		assertTrue(ArrayUtils.isEmpty(nullArray));
+
+		Object [] emptyArray = new Object[0];
+		assertTrue(ArrayUtils.isEmpty(emptyArray));
+		
+		assertFalse(ArrayUtils.isEmpty(new String [] { "" }));
+	}
+	
+	@Test
+	public void testLists() {
+		List<?> nullList = null;
+		assertTrue(ArrayUtils.isEmpty(nullList));
+
+		List<?> emptyList = new ArrayList<Object>();
+		assertTrue(ArrayUtils.isEmpty(emptyList));
+		
+		List<?> list = Arrays.asList("");
+		assertFalse(ArrayUtils.isEmpty(list));
+	}
+	
+	@Test
+	public void testSets() {
+		Set<?> nullSet = null;
+		assertTrue(ArrayUtils.isEmpty(nullSet));
+
+		Set<?> emptySet = new HashSet<Object>();
+		assertTrue(ArrayUtils.isEmpty(emptySet));
+		
+		Set<?> set = new HashSet<Object>(Arrays.asList(""));
+		assertFalse(ArrayUtils.isEmpty(set));
+	}
+}
\ No newline at end of file
diff --git a/tests/com/gitblit/tests/GitBlitSuite.java b/tests/com/gitblit/tests/GitBlitSuite.java
index f094a85..f697c17 100644
--- a/tests/com/gitblit/tests/GitBlitSuite.java
+++ b/tests/com/gitblit/tests/GitBlitSuite.java
@@ -47,11 +47,12 @@
  * 
  */
 @RunWith(Suite.class)
-@SuiteClasses({ FileUtilsTest.class, TimeUtilsTest.class, StringUtilsTest.class, Base64Test.class,
-		JsonUtilsTest.class, ByteFormatTest.class, ObjectCacheTest.class, UserServiceTest.class,
-		MarkdownUtilsTest.class, JGitUtilsTest.class, SyndicationUtilsTest.class,
-		DiffUtilsTest.class, MetricUtilsTest.class, TicgitUtilsTest.class, GitBlitTest.class,
-		FederationTests.class, RpcTests.class, GitServletTest.class, GroovyScriptTest.class })
+@SuiteClasses({ ArrayUtilsTest.class, FileUtilsTest.class, TimeUtilsTest.class,
+		StringUtilsTest.class, Base64Test.class, JsonUtilsTest.class, ByteFormatTest.class,
+		ObjectCacheTest.class, UserServiceTest.class, MarkdownUtilsTest.class, JGitUtilsTest.class,
+		SyndicationUtilsTest.class, DiffUtilsTest.class, MetricUtilsTest.class,
+		TicgitUtilsTest.class, GitBlitTest.class, FederationTests.class, RpcTests.class,
+		GitServletTest.class, GroovyScriptTest.class })
 public class GitBlitSuite {
 
 	public static final File REPOSITORIES = new File("git");

--
Gitblit v1.9.1