package com.sonymobile.jenkins.plugins.gitlab.gitlabauth.helpers;
import com.sonymobile.gitlab.model.FullGitLabUserInfo;
import com.sonymobile.gitlab.model.GitLabGroupInfo;
import com.sonymobile.gitlab.model.GitLabGroupMemberInfo;
import com.sonymobile.gitlab.model.GitLabUserInfo;
import java.util.List;
import static com.sonymobile.gitlab.helpers.JsonFileLoader.jsonFile;
/**
* Helper methods for loading mock data from JSON files for tests.
*
* @author Emil Nilsson
*/
public class MockDataLoaders {
public MockDataLoaders() { /* empty */ }
/**
* Loads a JSON file with a user.
*
* @param variant the variant name
* @return a user
* @throws Exception if loading the file failed
*/
public static GitLabUserInfo loadUser(String variant) throws Exception {
return jsonFile("api/v3/users/1")
.withVariant(variant)
.withType(FullGitLabUserInfo.class)
.loadAsObject();
}
/**
* Load a JSON file with a normal user.
*
* @see #loadUser(String)
*/
public static GitLabUserInfo loadUser() throws Exception {
return loadUser(null);
}
/**
* Load a JSON file with an admin user.
*
* @see #loadUser(String)
*/
public static GitLabUserInfo loadAdminUser() throws Exception {
return loadUser("admin");
}
/**
* Loads a JSON file with group members.
*
* @param variant the variant name
* @param groupId the group ID
* @return a list of group members
* @throws Exception if loading the file failed
*/
public static List<GitLabGroupMemberInfo> loadGroupMembers(int groupId, String variant) throws Exception {
return jsonFile("api/v3/groups/1/members")
.withVariant(variant)
.withType(GitLabGroupMemberInfo.class)
.andParameters(groupId)
.loadAsArray();
}
/**
* Loads a JSON file with group members.
*
* @see #loadGroupMembers(int, String)
*/
public static List<GitLabGroupMemberInfo> loadGroupMembers(int groupId) throws Exception {
return loadGroupMembers(groupId, null);
}
/**
* Loads a JSON file with all groups.
*
* @param variant the variant name
* @return a list of groups
* @throws Exception if loading the file failed
*/
public static List<GitLabGroupInfo> loadGroups(String variant) throws Exception {
return jsonFile("api/v3/groups")
.withVariant(variant)
.withType(GitLabGroupInfo.class)
.loadAsArray();
}
/**
* Loads the JSON file with all groups.
*
* @see #loadGroups(String)
*/
public static List<GitLabGroupInfo> loadGroups() throws Exception {
return loadGroups(null);
}
}