From d6559dd758a474a21a4e042b1fcc2f4286c2b616 Mon Sep 17 00:00:00 2001 From: tudtianus <tudtianus@gmail.com> Date: Fri, 31 Aug 2018 16:23:04 +0200 Subject: [PATCH] #76 feat: unitTests for LinkDAO --- .../journal/model/dao/LinkDAOImplTest.java | 166 ++++++++++++++++++ 1 file changed, 166 insertions(+) create mode 100644 gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImplTest.java diff --git a/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImplTest.java b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImplTest.java new file mode 100644 index 00000000..82b1b95d --- /dev/null +++ b/gemeinsamforschen/src/test/java/unipotsdam/gf/modules/journal/model/dao/LinkDAOImplTest.java @@ -0,0 +1,166 @@ +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 -- GitLab