Skip to content
Snippets Groups Projects
Commit d6559dd7 authored by tudtianus's avatar tudtianus
Browse files

#76 feat: unitTests for LinkDAO

parent 15f6e093
No related branches found
No related tags found
No related merge requests found
package unipotsdam.gf.modules.journal.model.dao;
import org.junit.Test;
import unipotsdam.gf.core.database.mysql.MysqlConnect;
import unipotsdam.gf.core.database.mysql.VereinfachtesResultSet;
import unipotsdam.gf.modules.journal.model.Link;
import java.util.ArrayList;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
public class LinkDAOImplTest {
MysqlConnect connection = new MysqlConnect();
LinkDAO linkDAO = new LinkDAOImpl();
String testId = "-1";
String testProjectDescription = "testproject";
String testName = "testname";
String testLink = "https://www.test.de";
Link testLinkObj = new Link(testId, testProjectDescription, testName, testLink);
@Test
public void addLink() {
connection.connect();
//add Link
Link addLink = testLinkObj;
linkDAO.addLink(addLink);
//check if added
ArrayList<Link> resultLinks = getLinks(addLink.getProjectDescription());
assertEquals(1, resultLinks.size());
//check data
Link resultLink = resultLinks.get(0);
assertEquals(testLink, resultLink.getLink());
assertEquals(testName, resultLink.getName());
assertEquals(testProjectDescription, resultLink.getProjectDescription());
assertFalse(testId.equals(resultLink.getId()));
//cleanup
cleanup(resultLink.getId());
connection.close();
}
@Test
public void deleteLink() {
connection.connect();
//add Link
Link deleteLink = testLinkObj;
create(deleteLink);
//check if Link was created
ArrayList<Link> reultLinks = getLinks(deleteLink.getProjectDescription());
assertEquals(1, reultLinks.size());
//delete link
linkDAO.deleteLink(deleteLink.getId());
//check if Link deleted
reultLinks = getLinks(deleteLink.getProjectDescription());
assertEquals(0, reultLinks.size());
//cleanup
cleanup(deleteLink.getId());
connection.close();
}
@Test
public void getLink() {
connection.connect();
//addLink
Link getLink = testLinkObj;
create(getLink);
//get Link
Link resultLink = linkDAO.getLink(getLink.getId());
//check Data
assertEquals(testLink, resultLink.getLink());
assertEquals(testName, resultLink.getName());
assertEquals(testProjectDescription, resultLink.getProjectDescription());
//cleanup
cleanup(getLink.getId());
connection.close();
}
@Test
public void getAllLinks() {
connection.connect();
//addLinks
Link l = testLinkObj;
create(l);
l.setId("-2");
l.setName("othername");
create(l);
l.setId("-3");
l.setLink("404");
create(l);
//gettLinks
ArrayList<Link> resultLinks = getLinks(testProjectDescription);
//check
assertEquals(3, resultLinks.size());
//cleanup
cleanup("-1", "-2", "-3");
connection.close();
}
//Utility
private void create(Link deleteLink) {
String request = "INSERT INTO links (`id`, `projecdesription`, `name`, `link`) VALUES (?,?,?,?);";
connection.issueInsertOrDeleteStatement(request, deleteLink.getId(), deleteLink.getProjectDescription(), deleteLink.getName(), deleteLink.getLink());
}
private void cleanup(String... addLinks) {
for (String addLink : addLinks) {
String request = "DELETE FROM links WHERE id = ?;";
connection.issueInsertOrDeleteStatement(request, addLink);
}
}
private Link getLinkFromResultSet(VereinfachtesResultSet rs) {
String id = rs.getString("id");
String project = rs.getString("projecdesription");
String name = rs.getString("name");
String link = rs.getString("link");
return new Link(id, project, name, link);
}
private ArrayList<Link> getLinks(String addLink) {
ArrayList<Link> resultLinks = new ArrayList<>();
String request = "SELECT * FROM links WHERE projecdesription= ?;";
VereinfachtesResultSet rs = connection.issueSelectStatement(request, addLink);
while (rs.next()) {
resultLinks.add(getLinkFromResultSet(rs));
}
return resultLinks;
}
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment