Skip to content
Snippets Groups Projects
TestView.java 3.92 KiB
Newer Older
  • Learn to ignore specific revisions
  • 汤伟's avatar
    汤伟 committed
    package com.ic.er;
    
    
    import com.ic.er.Exception.ERException;
    
    汤伟's avatar
    汤伟 committed
    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.io.IOException;
    import java.nio.charset.Charset;
    import java.nio.file.Files;
    import java.nio.file.Path;
    
    汤伟's avatar
    汤伟 committed
    import java.util.List;
    
    public class TestView {
    
        @Before
    
    汤伟's avatar
    汤伟 committed
        public void init() throws Exception {
    
            ER.connectDB(true);
    
    汤伟's avatar
    汤伟 committed
        }
    
        @Test
        public void createViewTest() {
            View testView = ER.createView("testView", "wt22");
    
            Entity teacher = testView.addEntity("teacher");
    
    汤伟's avatar
    汤伟 committed
            teacher.addAttribute("teacher_id", DataType.VARCHAR, 1);
            teacher.addAttribute("name", DataType.VARCHAR, 0);
    
    汤伟's avatar
    汤伟 committed
            teacher.addAttribute("age", DataType.INT, 0);
    
    汤伟's avatar
    汤伟 committed
    
            Entity student = testView.addEntity("student");
    
    汤伟's avatar
    汤伟 committed
            student.addAttribute("student_id", DataType.VARCHAR, 1);
            student.addAttribute("name", DataType.VARCHAR, 0);
    
    汤伟's avatar
    汤伟 committed
            student.addAttribute("grade", DataType.INT, 0);
    
    汤伟's avatar
    汤伟 committed
    
    
    汤伟's avatar
    汤伟 committed
            Relationship ts = testView.createRelationship("teaches", teacher, student, Cardinality.ZeroToMany, Cardinality.ZeroToMany);
    
    汤伟's avatar
    汤伟 committed
    
            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.updateInfo(newViewName);
    
    汤伟's avatar
    汤伟 committed
    
            View newView = View.queryByID(1L);
            Assert.assertEquals(newView.getName(), newViewName);
        }
    
    
        @Test(expected = ERException.class)
    
    汤伟's avatar
    汤伟 committed
        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(expected = ERException.class)
    
    汤伟's avatar
    汤伟 committed
        public void deleteEntityTest() {
            View firstView = ER.createView("first view", "tw");
            Entity firstEntity = firstView.addEntity("teacher");
            Assert.assertNotNull(firstEntity);
    
            firstView.deleteEntity(firstEntity);
    
            View newView = View.queryByID(1L);
            Assert.assertEquals(newView.getEntityList().size(), 0);
            Assert.assertNull(Entity.queryByID(firstEntity.getID()));
        }
    
    
    汤伟's avatar
    汤伟 committed
        @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);
        }
    
    汤伟's avatar
    汤伟 committed
    
    
        @Test(expected = ERException.class)
    
    汤伟's avatar
    汤伟 committed
        public void relationshipTest() {
            View firstView = ER.createView("first view", "tw");
    
            Entity teacher = firstView.addEntity("teacher");
    
    汤伟's avatar
    汤伟 committed
            teacher.addAttribute("teacher_id", DataType.VARCHAR, 1);
            teacher.addAttribute("name", DataType.VARCHAR, 0);
    
    汤伟's avatar
    汤伟 committed
            teacher.addAttribute("age", DataType.INT, 0);
    
    汤伟's avatar
    汤伟 committed
    
            Entity student = firstView.addEntity("student");
    
    汤伟's avatar
    汤伟 committed
            student.addAttribute("student_id", DataType.VARCHAR, 1);
            student.addAttribute("name", DataType.VARCHAR, 0);
    
    汤伟's avatar
    汤伟 committed
            student.addAttribute("grade", DataType.INT, 0);
    
    汤伟's avatar
    汤伟 committed
    
    
    汤伟's avatar
    汤伟 committed
            Relationship ts = firstView.createRelationship("teaches", teacher, student, Cardinality.ZeroToMany, Cardinality.ZeroToMany);
    
    汤伟's avatar
    汤伟 committed
            Assert.assertNotNull(ts);
    
    
    汤伟's avatar
    汤伟 committed
            ts.updateInfo("new relationship name", null, null, null, null);
    
    汤伟's avatar
    汤伟 committed
            Assert.assertEquals(Relationship.queryByID(ts.getID()).getName(), "new relationship name");
    
    
            firstView.deleteRelationship(ts);
            Assert.assertEquals(firstView.getRelationshipList().size(), 0);
            Assert.assertNull(Relationship.queryByID(ts.getID()));
        }
    
    汤伟's avatar
    汤伟 committed
    }