Skip to content
Snippets Groups Projects
TestView.java 2.45 KiB
package com.ic.er;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.ic.er.common.Cardinality;
import com.ic.er.common.DataType;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;

import java.sql.SQLException;
import java.util.List;

public class TestView {

    @Before
    public void init() {
        try {
            ER.connectDB();
            ER.createTables();
        } catch (SQLException e) {
            System.out.println(e);
            throw new RuntimeException(e);
        }
    }

    @Test
    public void createViewTest() {
        View testView = ER.createView("testView", "wt22");

        Entity teacher = testView.addEntity("teacher");
        teacher.addAttribute("teacher_id", DataType.VARCHAR, 1, 0);
        teacher.addAttribute("name", DataType.VARCHAR, 0, 0);
        teacher.addAttribute("age", DataType.INTEGER, 0, 0);

        Entity student = testView.addEntity("student");
        student.addAttribute("student_id", DataType.VARCHAR, 1, 0);
        student.addAttribute("name", DataType.VARCHAR, 0, 0);
        student.addAttribute("grade", DataType.INTEGER, 0, 0);

        Relationship ts = testView.createRelationship("teaches", teacher.getID(), student.getID(), Cardinality.OneToMany);

        View dbView = View.queryByID(testView.getID());
        Assert.assertNotNull(dbView);
        Assert.assertEquals(dbView.getEntityList().size(), 2);
        Assert.assertEquals(dbView.getRelationshipList().size(), 1);
    }

    @Test
    public void updateViewTest() {
        View firstView = ER.createView("first view", "tw");
        String newViewName = "new view name";
        firstView.setName(newViewName);
        firstView.updateDB();

        View newView = View.queryByID(1L);
        Assert.assertEquals(newView.getName(), newViewName);
    }

    @Test
    public void deleteViewTest() {
        View firstView = ER.createView("first view", "tw");
        firstView = View.queryByID(1L);
        Assert.assertNotNull(firstView);

        firstView.deleteDB();

        View newView = View.queryByID(1L);
        Assert.assertNull(newView);
    }
    @Test
    public void queryViewTest() {
        View firstView = ER.createView("first view", "tw");
        View secondView = ER.createView("first view", "tw");

        List<View> views = View.queryAll();
        Assert.assertEquals(views.size(), 2);

        ER.useDB = false;
        views = View.queryAll();
        Assert.assertEquals(views.size(), 2);
    }
}