Skip to content

Commit

Permalink
Added ArrayUtils class and unit test
Browse files Browse the repository at this point in the history
  • Loading branch information
gitblit committed Jan 5, 2012
1 parent 59ee927 commit c897457
Show file tree
Hide file tree
Showing 3 changed files with 109 additions and 5 deletions.
36 changes: 36 additions & 0 deletions src/com/gitblit/utils/ArrayUtils.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
67 changes: 67 additions & 0 deletions tests/com/gitblit/tests/ArrayUtilsTest.java
Original file line number Diff line number Diff line change
@@ -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));
}
}
11 changes: 6 additions & 5 deletions tests/com/gitblit/tests/GitBlitSuite.java
Original file line number Diff line number Diff line change
Expand Up @@ -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");
Expand Down

0 comments on commit c897457

Please sign in to comment.