I am currently using the following method and unit test for the method. I think the test could/should be broken down into more tests but I'm not sure how many tests to write for this or what the more important parts are especially considering the method deals with establishing a Connection
, using sql queries, etc... All help is appreciated.
JAVA Method:
public static ArrayList<HashMap<String, String>> executeSelect(
Connection conn, Statement stmt, Query query) {
ResultSet rs = null;
ArrayList<HashMap<String, String>> serviceRequests = new ArrayList<HashMap<String, String>>();
try {
long queryStart = System.nanoTime();
rs = stmt.executeQuery(query.getQuery());
long queryEnd = System.nanoTime();
long queryDuration = queryEnd-queryStart;
queryTime = String.valueOf(queryDuration);
while (rs.next()) {
HashMap<String, String> serviceRequestData = new HashMap<>();
if (QueryUtil.hasColumn(rs, "ID")) {
String id = rs.getString("ID");
serviceRequestData.put("ID", id);
}
else{
serviceRequestData.put("ID", " ");
}
if (QueryUtil.hasColumn(rs, "FN_Contact")) {
String firstName = rs.getString("FN_Contact");
serviceRequestData.put("FN_Contact", firstName);
}
else{
serviceRequestData.put("FN_Contact", " ");
}
if (QueryUtil.hasColumn(rs, "LN_Contact")) {
String lastName = rs.getString("LN_Contact");
serviceRequestData.put("LN_Contact", lastName);
}
else{
serviceRequestData.put("LN_Contact", " ");
}
if (QueryUtil.hasColumn(rs, "Notes")) {
String notes = rs.getString("Notes");
serviceRequestData.put("Notes", notes);
}
else{
serviceRequestData.put("Notes", " ");
}
if (QueryUtil.hasColumn(rs, "Email")) {
String email = rs.getString("Email");
serviceRequestData.put("Email", email);
}
else{
serviceRequestData.put("Email", " ");
}
serviceRequests.add(serviceRequestData);
}
} catch (SQLException e) {
e.printStackTrace();
sqlException = true;
}
return serviceRequests;
}
JUnit Test:
@Test
public void testFirstName() {
ArrayList<HashMap<String, String>> testMap = new ArrayList<HashMap<String,String>>();
Connection conn = null;
Statement stmt = null;
try {
Class.forName("com.mysql.jdbc.Driver");
String connectionUrl = "jdbc:mysql://localhost:3306/gc_image";
String connectionUser = "root";
String connectionPassword = "GCImage";
conn = DriverManager.getConnection(connectionUrl, connectionUser,
connectionPassword);
conn.
stmt = conn.createStatement();
Query testQuery = new Query();
testQuery
.setQuery("select * from service_request where FN_contact = 'Trevor'");
testMap = QueryController.executeSelect(conn, stmt, testQuery);
assertEquals("Janke", testMap.get(0).get("LN_Contact"));
assertEquals("Hello World", testMap.get(0).get("Notes"));
assertEquals("janke@gmail.com", testMap.get(0).get("Email"));
assertEquals("ID", testMap.get(0).get("7"));
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
try {
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Aucun commentaire:
Enregistrer un commentaire