Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

5795 Refactoring Unit Tests #5775

Merged
merged 18 commits into from
May 1, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,96 +1,49 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package edu.harvard.iq.dataverse.authorization;

import edu.harvard.iq.dataverse.util.BundleUtil;
import java.util.AbstractMap.SimpleEntry;
import java.util.Collections;
import java.util.Map;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;

/**
*
* @author rmp553
*/
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

import static org.junit.jupiter.api.Assertions.assertEquals;

public class AuthenticationProviderTest {

public AuthenticationProviderTest() {
}

@BeforeClass
public static void setUpClass() {
}

@AfterClass
public static void tearDownClass() {
}

@Before
public void setUp() {
}

@After
public void tearDown() {
}

/**
* Create a map used to test known AuthenticationProvider ids
*
* @return
*/
private Map<String, String> getBundleTestMap(){
return Collections.unmodifiableMap(Stream.of(
new SimpleEntry<>("builtin", "authenticationProvider.name.builtin"),
new SimpleEntry<>("github", "authenticationProvider.name.github"),
new SimpleEntry<>("google", "authenticationProvider.name.google"),
new SimpleEntry<>("orcid", "authenticationProvider.name.orcid"),
new SimpleEntry<>("orcid-sandbox", "authenticationProvider.name.orcid-sandbox"),
new SimpleEntry<>("shib", "authenticationProvider.name.shib"))
.collect(Collectors.toMap((e) -> e.getKey(), (e) -> e.getValue())));
private final static String[] authProviders = {"null", "builtin", "github", "google", "orcid", "orcid-sandbox", "shib"};
private static Map<String, String> bundleTestMap;

@BeforeAll
static void setup() {
bundleTestMap = Stream.of(authProviders)
.map(authProviderId -> new SimpleEntry<>(
authProviderId,
BundleUtil.getStringFromBundle("authenticationProvider.name." + authProviderId)
)
).collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
}

/**
* Test of getFriendlyName method, of class AuthenticationProvider.
*/

@Test
public void testGetFriendlyName() {
System.out.println("getFriendlyName");

Map<String, String> bundleTestMap = this.getBundleTestMap();

// ------------------------------------------
// Test a null
// ------------------------------------------
String expResult = BundleUtil.getStringFromBundle("authenticationProvider.name.null");
void testGetFriendlyName_withNullInput() {
String expResult = bundleTestMap.get("null");
assertEquals(expResult, AuthenticationProvider.getFriendlyName(null));

// ------------------------------------------
// Test an id w/o a bundle entry--should default to id
// ------------------------------------------
String idNotInBundle = "id-not-in-bundle-so-use-id";
String expResult2 = AuthenticationProvider.getFriendlyName(idNotInBundle);
assertEquals(expResult2, idNotInBundle);

// ------------------------------------------
// Iterate through the map and test each item
// ------------------------------------------
bundleTestMap.forEach((authProviderId, bundleName)->{
String expectedResult = BundleUtil.getStringFromBundle(bundleName);
assertEquals(expectedResult, AuthenticationProvider.getFriendlyName(authProviderId));
});

}

@Test
void getFriendlyName_withoutMatchingId() {
String idNotInBundle = "id-not-in-bundle-so-use-id";
assertEquals(idNotInBundle, AuthenticationProvider.getFriendlyName(idNotInBundle));
}


@ParameterizedTest
@ValueSource(strings = {"builtin", "github", "google", "orcid", "orcid-sandbox", "shib"})
void testGetFriendlyName_withTestMap(String authProviderId) {
String expectedResult = bundleTestMap.get(authProviderId);
assertEquals(expectedResult, AuthenticationProvider.getFriendlyName(authProviderId));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package edu.harvard.iq.dataverse.authorization.users;

import edu.harvard.iq.dataverse.authorization.RoleAssigneeDisplayInfo;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import static org.junit.jupiter.api.Assertions.*;

public class PrivateUrlUserTest {

private PrivateUrlUser privateUrlUser;

@BeforeEach
void setup() {
privateUrlUser = new PrivateUrlUser(42L);
}

@Test
void testGetDatasetId() {
assertEquals(42L, privateUrlUser.getDatasetId());
}

@Test
void testIsAuthenticated() {
assertFalse(privateUrlUser.isAuthenticated());
}

@Test
void testIsSuperuser() {
assertFalse(privateUrlUser.isSuperuser());
}

@Test
void getIdentifier() {
assertEquals(PrivateUrlUser.PREFIX + 42L, privateUrlUser.getIdentifier());
}

@Test
void testGetDisplayInfo() {
RoleAssigneeDisplayInfo displayInfo = privateUrlUser.getDisplayInfo();
assertEquals("Private URL Enabled", displayInfo.getTitle());
assertNull(displayInfo.getEmailAddress());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -15,60 +15,33 @@
import java.util.Arrays;
import java.util.List;
import org.junit.Assert;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import org.junit.Test;
import static org.junit.Assert.assertNull;
import org.junit.Before;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.params.ParameterizedTest;
import org.junit.jupiter.params.provider.ValueSource;

import static org.junit.jupiter.api.Assertions.*;

public class PrivateUrlUtilTest {

@Before
public void setUp() {
@BeforeAll
public static void setUp() {
new PrivateUrlUtil();
}

@Test
public void testIdentifier2roleAssignee() {
RoleAssignee returnValueFromEmptyString = null;
try {
returnValueFromEmptyString = PrivateUrlUtil.identifier2roleAssignee("");
} catch (Exception ex) {
assertEquals(ex.getClass(), IllegalArgumentException.class);
assertEquals(ex.getMessage(), "Could not find dataset id in ''");
}
@ParameterizedTest
@ValueSource(strings = {"", "@pete", PrivateUrlUser.PREFIX + "nonNumber"})
void testIdentifier2roleAssignee_returnsNullForInvalidIdentifier(String identifier) {
RoleAssignee returnValueFromEmptyString = PrivateUrlUtil.identifier2roleAssignee(identifier);
assertNull(returnValueFromEmptyString);
}

RoleAssignee returnValueFromNonColon = null;
String peteIdentifier = "@pete";
try {
returnValueFromNonColon = PrivateUrlUtil.identifier2roleAssignee(peteIdentifier);
} catch (Exception ex) {
assertEquals(ex.getClass(), IllegalArgumentException.class);
assertEquals(ex.getMessage(), "Could not find dataset id in '" + peteIdentifier + "'");
}
assertNull(returnValueFromNonColon);

RoleAssignee returnValueFromNonNumber = null;
String nonNumberIdentifier = PrivateUrlUser.PREFIX + "nonNumber";
try {
returnValueFromNonNumber = PrivateUrlUtil.identifier2roleAssignee(nonNumberIdentifier);
} catch (Exception ex) {
assertEquals(ex.getClass(), IllegalArgumentException.class);
assertEquals(ex.getMessage(), "Could not find dataset id in '" + nonNumberIdentifier + "'");
}
assertNull(returnValueFromNonNumber);

RoleAssignee returnFromValidIdentifier = null;
@Test
void testIdentifier2roleAssignee_fromValidIdentifier() {
String validIdentifier = PrivateUrlUser.PREFIX + 42;
returnFromValidIdentifier = PrivateUrlUtil.identifier2roleAssignee(validIdentifier);
assertNotNull(returnFromValidIdentifier);
assertEquals("#42", returnFromValidIdentifier.getIdentifier());
assertEquals("Private URL Enabled", returnFromValidIdentifier.getDisplayInfo().getTitle());
Assert.assertTrue(returnFromValidIdentifier instanceof PrivateUrlUser);
PrivateUrlUser privateUrlUser42 = (PrivateUrlUser) returnFromValidIdentifier;
assertEquals(42, privateUrlUser42.getDatasetId());

RoleAssignee returnFromValidIdentifier = PrivateUrlUtil.identifier2roleAssignee(validIdentifier);
assertTrue(returnFromValidIdentifier instanceof PrivateUrlUser);
assertEquals(validIdentifier, returnFromValidIdentifier.getIdentifier());
}

@Test
Expand Down
53 changes: 22 additions & 31 deletions src/test/java/edu/harvard/iq/dataverse/search/SearchUtilTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -9,33 +9,15 @@
import java.sql.Timestamp;
import java.util.Arrays;
import org.apache.solr.common.SolrInputDocument;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import static org.junit.Assert.*;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

public class SearchUtilTest {

public SearchUtilTest() {
}

@BeforeClass
public static void setUpClass() {
}

@AfterClass
public static void tearDownClass() {
}

@Before
public void setUp() {
SearchUtil searchUtil = new SearchUtil();
}

@After
public void tearDown() {
@BeforeAll
static void setup() {
new SearchUtil();
}

@Test
Expand Down Expand Up @@ -69,29 +51,38 @@ public void testGetTimestampOrNull() {
}

@Test
public void testGetSortBy() throws Exception {
void testGetSortBy_throwsOnInvalidInput() {
assertThrows(Exception.class, () -> {
SearchUtil.getSortBy(null, "unsortable");
});
}

@Test
void testGetSortBy_unspecifiedFieldAndOrder() throws Exception {
SortBy sortByUnspecified = SearchUtil.getSortBy(null, null);
assertEquals(SearchFields.RELEVANCE, sortByUnspecified.getField());
assertEquals(SortBy.DESCENDING, sortByUnspecified.getOrder());
}

@Test
void testGetSortBy_sortByName() throws Exception {
SortBy sortByName = SearchUtil.getSortBy("name", null);
assertEquals(SearchFields.NAME_SORT, sortByName.getField());
assertEquals(SortBy.ASCENDING, sortByName.getOrder());
}

@Test
void testGetSortBy_sortByDate() throws Exception {
SortBy sortByDate = SearchUtil.getSortBy("date", null);
assertEquals(SearchFields.RELEASE_OR_CREATE_DATE, sortByDate.getField());
assertEquals(SortBy.DESCENDING, sortByDate.getOrder());
}

@Test
void testGetSortBy_sortByAuthorName() throws Exception {
SortBy sortByAuthorName = SearchUtil.getSortBy(DatasetFieldConstant.authorName, null);
assertEquals(DatasetFieldConstant.authorName, sortByAuthorName.getField());
assertEquals(SortBy.ASCENDING, sortByAuthorName.getOrder());

try {
SortBy sortByExceptionExpected = SearchUtil.getSortBy(null, "unsortable");
} catch (Exception ex) {
assertEquals(Exception.class, ex.getClass());
}
}

@Test
Expand Down