package de.superx; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.time.Year; import org.junit.Ignore; import de.superx.common.SxUser; import de.superx.servlet.UserInitializer; @Ignore public class TestUtils { public static final String USER_NAME = "admin"; public static SxUser initUser(Connection conn, Statement stmt) throws Exception { SxUser user = null; try (ResultSet rs = stmt.executeQuery("select tid from userinfo where benutzer='" + USER_NAME + "';")) { rs.next(); Integer userTid = Integer.valueOf(rs.getInt("tid")); String magic_admin_indicator = "1"; UserInitializer ui = new UserInitializer(BaseDbTest.MANDANTEN_ID, USER_NAME, userTid, magic_admin_indicator); ui.initUser(conn, null); user = ui.getUser(); user.setMandantenID(BaseDbTest.MANDANTEN_ID); } return user; } public static SxUser initUser(Connection conn, Statement stmt, String orgunit) throws Exception { SxUser user = initUser(conn, stmt); // hier ordnen wir den eingeloggten Benutzer der einer Organisationseinheit zu - die sollte dann später vorbelegt sein try (ResultSet rs_lid = stmt.executeQuery("SELECT lid FROM organigramm WHERE key_apnr = '" + orgunit + "';")) { rs_lid.next(); Integer lid = Integer.valueOf(rs_lid.getInt("lid")); user.setHisInOneOrgUnitLidOfRole(lid); } return user; } public static int getYearFromBranchName() { try { String branchName = getCurrentGitBranch(); int year; if (branchName.startsWith("RELEASE_")) { String[] parts = branchName.split("_"); year = Integer.parseInt(parts[1]); } else { year = Year.now().getValue(); } return year; } catch (IOException | InterruptedException | IllegalArgumentException e) { e.printStackTrace(); throw new RuntimeException("Failed to get year from current Git branch"); } } public static String getCurrentGitBranch() throws IOException, InterruptedException { ProcessBuilder processBuilder = new ProcessBuilder("git", "rev-parse", "--abbrev-ref", "HEAD"); processBuilder.redirectErrorStream(true); Process process = processBuilder.start(); BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream())); String branchName = reader.readLine(); process.waitFor(); return branchName; } }