From 0895cc612ab32b37603fde79de107312889534dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B1=A4=E4=BC=9F?= <tang@dyn3140-236.wlan.ic.ac.uk> Date: Tue, 1 Nov 2022 16:45:26 +0000 Subject: [PATCH] add postgre support --- pom.xml | 6 +- src/main/java/com/ic/er/Attribute.java | 11 +--- src/main/java/com/ic/er/ER.java | 20 +++--- src/main/java/com/ic/er/Entity.java | 20 ++---- src/main/java/com/ic/er/LayoutInfo.java | 10 +-- src/main/java/com/ic/er/Relationship.java | 13 ++-- src/main/java/com/ic/er/View.java | 29 +++++---- src/main/java/com/ic/er/common/Utils.java | 17 ----- .../java/com/ic/er/entity/RelationshipDO.java | 8 --- src/main/resources/jdbc-postgre.properties | 4 ++ src/main/resources/mybatis-config-postgre.xml | 33 ++++++++++ src/main/resources/mybatis-config.xml | 3 + src/test/java/com/ic/er/TestAttribute.java | 15 +++-- src/test/java/com/ic/er/TestCommon.java | 5 ++ src/test/java/com/ic/er/TestER.java | 11 ++-- src/test/java/com/ic/er/TestEntity.java | 8 +-- src/test/java/com/ic/er/TestRelationship.java | 26 +++++--- src/test/java/com/ic/er/TestView.java | 62 +++++-------------- .../com/ic/er/mapper/attributeMapperTest.java | 9 +-- .../com/ic/er/mapper/entityMapperTest.java | 54 ++++------------ .../com/ic/er/mapper/testGraphInfoMapper.java | 4 -- .../com/ic/er/mapper/testRelationMapper.java | 42 ++++--------- .../java/com/ic/er/mapper/testViewMapper.java | 44 ++++--------- 23 files changed, 181 insertions(+), 273 deletions(-) delete mode 100644 src/main/java/com/ic/er/common/Utils.java create mode 100644 src/main/resources/jdbc-postgre.properties create mode 100644 src/main/resources/mybatis-config-postgre.xml create mode 100644 src/test/java/com/ic/er/TestCommon.java delete mode 100644 src/test/java/com/ic/er/mapper/testGraphInfoMapper.java diff --git a/pom.xml b/pom.xml index 11eaec4..7c670cc 100644 --- a/pom.xml +++ b/pom.xml @@ -29,7 +29,6 @@ <artifactId>jackson-databind</artifactId> <version>2.13.3</version> </dependency> - <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> @@ -53,6 +52,11 @@ <artifactId>junit</artifactId> <version>4.12</version> </dependency> + <dependency> + <groupId>org.postgresql</groupId> + <artifactId>postgresql</artifactId> + <version>42.2.10</version> + </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> diff --git a/src/main/java/com/ic/er/Attribute.java b/src/main/java/com/ic/er/Attribute.java index 8b09ca6..abe3f68 100644 --- a/src/main/java/com/ic/er/Attribute.java +++ b/src/main/java/com/ic/er/Attribute.java @@ -1,11 +1,10 @@ package com.ic.er; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.ic.er.exception.ERException; +import com.ic.er.common.DataType; import com.ic.er.common.RelatedObjType; import com.ic.er.entity.AttributeDO; -import com.ic.er.common.DataType; -import com.ic.er.common.Utils; +import com.ic.er.exception.ERException; import lombok.Getter; import org.apache.ibatis.exceptions.PersistenceException; @@ -39,11 +38,7 @@ public class Attribute { this.gmtCreate = gmtCreate; this.gmtModified = gmtModified; if (this.ID == 0) { - if (ER.useDB) { - this.insertDB(); - } else { - this.ID = Utils.generateID(); - } + this.insertDB(); } if (this.layoutInfo == null) { this.layoutInfo = new LayoutInfo(0L, this.ID, RelatedObjType.ATTRIBUTE, layoutX, layoutY, 0.0, 0.0); diff --git a/src/main/java/com/ic/er/ER.java b/src/main/java/com/ic/er/ER.java index db1936b..13167a3 100644 --- a/src/main/java/com/ic/er/ER.java +++ b/src/main/java/com/ic/er/ER.java @@ -2,8 +2,8 @@ package com.ic.er; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import com.ic.er.exception.ERException; import com.ic.er.dao.*; +import com.ic.er.exception.ERException; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; @@ -15,19 +15,24 @@ import java.nio.charset.StandardCharsets; import java.sql.Connection; import java.sql.SQLException; import java.sql.Statement; -import java.util.*; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; public class ER { public static SqlSession sqlSession; - public static boolean useDB = false; public static AttributeMapper attributeMapper; public static EntityMapper entityMapper; public static RelationshipMapper relationshipMapper; public static ViewMapper viewMapper; public static LayoutInfoMapper layoutInfoMapper; - public static void initialize(boolean useDBLog) throws SQLException, IOException { - InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); + public static void initialize(boolean usePostgre) throws SQLException, IOException { + String XMLPath = "mybatis-config.xml"; + if (usePostgre) { + XMLPath = "mybatis-config-postgre.xml"; + } + InputStream is = Resources.getResourceAsStream(XMLPath); SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is); sqlSession = sqlSessionFactory.openSession(true); @@ -36,8 +41,9 @@ public class ER { relationshipMapper = sqlSession.getMapper(RelationshipMapper.class); viewMapper = sqlSession.getMapper(ViewMapper.class); layoutInfoMapper = sqlSession.getMapper(LayoutInfoMapper.class); - createTables(); - useDB = true; + if (!usePostgre) { + createTables(); + } } private static void createTables() throws SQLException, IOException { diff --git a/src/main/java/com/ic/er/Entity.java b/src/main/java/com/ic/er/Entity.java index 68acc72..5cc337a 100644 --- a/src/main/java/com/ic/er/Entity.java +++ b/src/main/java/com/ic/er/Entity.java @@ -1,13 +1,11 @@ package com.ic.er; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.ic.er.exception.ERException; +import com.ic.er.common.DataType; import com.ic.er.common.RelatedObjType; import com.ic.er.entity.AttributeDO; import com.ic.er.entity.EntityDO; -import com.ic.er.common.DataType; -import com.ic.er.common.Utils; +import com.ic.er.exception.ERException; import lombok.Getter; import org.apache.ibatis.exceptions.PersistenceException; @@ -34,11 +32,7 @@ public class Entity { this.gmtCreate = gmtCreate; this.gmtModified = gmtModified; if (this.ID == 0) { - if (ER.useDB) { - this.insertDB(); - } else { - this.ID = Utils.generateID(); - } + this.insertDB(); } if (this.layoutInfo == null) { this.layoutInfo = new LayoutInfo(0L, this.ID, RelatedObjType.ENTITY, layoutX, layoutY, 0.0, 0.0); @@ -72,9 +66,7 @@ public class Entity { public boolean deleteAttribute(Attribute attribute) { this.attributeList.remove(attribute); - if (ER.useDB) { - attribute.deleteDB(); - } + attribute.deleteDB(); return false; } @@ -101,9 +93,7 @@ public class Entity { public void updateInfo(String name) { if (name != null) { this.name = name; - } - if (name != null) { - List<Entity> entities = Entity.queryByEntity(new EntityDO(null, name, this.ID, null, null, null)); + List<Entity> entities = Entity.queryByEntity(new EntityDO(null, name, this.viewID, null, null, null)); if (entities.size() != 0 && !entities.get(0).getID().equals(this.ID)) { throw new ERException(String.format("entity with name: %s already exists", name)); } diff --git a/src/main/java/com/ic/er/LayoutInfo.java b/src/main/java/com/ic/er/LayoutInfo.java index 10f7963..2bd74c6 100644 --- a/src/main/java/com/ic/er/LayoutInfo.java +++ b/src/main/java/com/ic/er/LayoutInfo.java @@ -1,11 +1,9 @@ package com.ic.er; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.ic.er.exception.ERException; import com.ic.er.common.RelatedObjType; -import com.ic.er.common.Utils; import com.ic.er.entity.LayoutInfoDO; +import com.ic.er.exception.ERException; import lombok.Getter; import org.apache.ibatis.exceptions.PersistenceException; @@ -31,11 +29,7 @@ public class LayoutInfo { this.height = height; this.width = width; if (this.ID == 0) { - if (ER.useDB) { - this.insertDB(); - } else { - this.ID = Utils.generateID(); - } + this.insertDB(); } } diff --git a/src/main/java/com/ic/er/Relationship.java b/src/main/java/com/ic/er/Relationship.java index 6e9aa49..ad2ed15 100644 --- a/src/main/java/com/ic/er/Relationship.java +++ b/src/main/java/com/ic/er/Relationship.java @@ -1,11 +1,12 @@ package com.ic.er; -import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.ic.er.exception.ERException; -import com.ic.er.common.*; +import com.ic.er.common.Cardinality; +import com.ic.er.common.RelatedObjType; +import com.ic.er.common.RelationshipSerializer; import com.ic.er.entity.RelationshipDO; +import com.ic.er.exception.ERException; import lombok.Getter; import org.apache.ibatis.exceptions.PersistenceException; @@ -39,11 +40,7 @@ public class Relationship { this.gmtCreate = gmtCreate; this.gmtModified = gmtModified; if (this.ID == 0) { - if (ER.useDB) { - insertDB(); - } else { - this.ID = Utils.generateID(); - } + insertDB(); } if (this.layoutInfo == null) { this.layoutInfo = new LayoutInfo(0L, this.ID, RelatedObjType.RELATIONSHIP, 0.0, 0.0, 0.0, 0.0); diff --git a/src/main/java/com/ic/er/View.java b/src/main/java/com/ic/er/View.java index a24c3a3..baf457f 100644 --- a/src/main/java/com/ic/er/View.java +++ b/src/main/java/com/ic/er/View.java @@ -2,16 +2,15 @@ package com.ic.er; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.ObjectWriter; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.ic.er.exception.ERException; +import com.ic.er.common.Cardinality; import com.ic.er.common.ViewDeserializer; import com.ic.er.entity.EntityDO; import com.ic.er.entity.RelationshipDO; import com.ic.er.entity.ViewDO; -import com.ic.er.common.Cardinality; -import com.ic.er.common.Utils; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.databind.ObjectWriter; +import com.ic.er.exception.ERException; import lombok.Getter; import org.apache.ibatis.exceptions.PersistenceException; @@ -40,11 +39,7 @@ public class View { this.gmtCreate = gmtCreate; this.gmtModified = gmtModified; if (this.ID == 0) { - if (ER.useDB) { - insertDB(); - } else { - this.ID = Utils.generateID(); - } + insertDB(); } } @@ -67,9 +62,15 @@ public class View { public void deleteEntity(Entity entity) { this.entityList.remove(entity); - if (ER.useDB) { - entity.deleteDB(); + List<Relationship> relationships = Relationship.queryByRelationship(new RelationshipDO(null, null, this.ID, entity.getID(), null, null, null, null, null, null)); + for (Relationship relationship : relationships) { + deleteRelationship(relationship); } + relationships = Relationship.queryByRelationship(new RelationshipDO(null, null, this.ID, null, entity.getID(), null, null, null, null, null)); + for (Relationship relationship : relationships) { + deleteRelationship(relationship); + } + entity.deleteDB(); } public Relationship createRelationship(String relationshipName, Entity firstEntity, Entity secondEntity, @@ -105,9 +106,7 @@ public class View { public void deleteRelationship(Relationship relationship) { this.relationshipList.remove(relationship); - if (ER.useDB) { - relationship.deleteDB(); - } + relationship.deleteDB(); } private void insertDB() { diff --git a/src/main/java/com/ic/er/common/Utils.java b/src/main/java/com/ic/er/common/Utils.java deleted file mode 100644 index c4b1a0f..0000000 --- a/src/main/java/com/ic/er/common/Utils.java +++ /dev/null @@ -1,17 +0,0 @@ -package com.ic.er.common; - -import com.fasterxml.jackson.core.JsonGenerator; -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.JsonSerializer; -import com.fasterxml.jackson.databind.SerializerProvider; - -import java.io.IOException; -import java.util.UUID; - -public class Utils { - public static Long generateID() { - return UUID.randomUUID().getMostSignificantBits() & Long.MAX_VALUE; - } -} - - diff --git a/src/main/java/com/ic/er/entity/RelationshipDO.java b/src/main/java/com/ic/er/entity/RelationshipDO.java index 1deec13..46f2bb0 100644 --- a/src/main/java/com/ic/er/entity/RelationshipDO.java +++ b/src/main/java/com/ic/er/entity/RelationshipDO.java @@ -12,22 +12,14 @@ import java.util.Date; @NoArgsConstructor public class RelationshipDO { private Long ID; - private String name; - private Long viewID; - private Long firstEntityID; - private Long secondEntityID; - private Cardinality firstCardinality; private Cardinality secondCardinality; - private Integer isDelete; - private Date gmtCreate; - private Date gmtModified; public RelationshipDO(Long ID) { diff --git a/src/main/resources/jdbc-postgre.properties b/src/main/resources/jdbc-postgre.properties new file mode 100644 index 0000000..22a722a --- /dev/null +++ b/src/main/resources/jdbc-postgre.properties @@ -0,0 +1,4 @@ +jdbc.driverClassName=org.postgresql.Driver +jdbc.url=jdbc:postgresql://db.doc.ic.ac.uk:5432/wh722 +jdbc.username=wh722 +jdbc.password=4jC@A3528>0N6 diff --git a/src/main/resources/mybatis-config-postgre.xml b/src/main/resources/mybatis-config-postgre.xml new file mode 100644 index 0000000..1f2e32f --- /dev/null +++ b/src/main/resources/mybatis-config-postgre.xml @@ -0,0 +1,33 @@ +<?xml version='1.0' encoding='UTF-8' ?> +<!DOCTYPE configuration + PUBLIC '-//mybatis.org//DTD Config 3.0//EN' + 'http://mybatis.org/dtd/mybatis-3-config.dtd'> +<configuration> + <properties resource='jdbc-postgre.properties'/> + <settings> + <setting name="logImpl" value="LOG4J2"/> + </settings> + <typeHandlers> + <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" + javaType="com.ic.er.common.RelatedObjType"/> + <typeHandler handler="com.ic.er.common.CardinalityEnumTypeHandler"/> + </typeHandlers> + <environments default='development'> + <environment id='development'> + <transactionManager type='JDBC'/> + <dataSource type='POOLED'> + <property name='driver' value='${jdbc.driverClassName}'/> + <property name='url' value='${jdbc.url}'/> + <property name='username' value='${jdbc.username}'/> + <property name='password' value='${jdbc.password}'/> + </dataSource> + </environment> + </environments> + <mappers> + <mapper resource='mapper/AttributeMapper.xml'/> + <mapper resource='mapper/EntityMapper.xml'/> + <mapper resource='mapper/RelationshipMapper.xml'/> + <mapper resource='mapper/ViewMapper.xml'/> + <mapper resource='mapper/LayoutInfoMapper.xml'/> + </mappers> +</configuration> \ No newline at end of file diff --git a/src/main/resources/mybatis-config.xml b/src/main/resources/mybatis-config.xml index c672999..e5c2e9a 100644 --- a/src/main/resources/mybatis-config.xml +++ b/src/main/resources/mybatis-config.xml @@ -4,6 +4,9 @@ 'http://mybatis.org/dtd/mybatis-3-config.dtd'> <configuration> <properties resource='jdbc.properties'/> + <settings> + <setting name="logImpl" value="LOG4J2"/> + </settings> <typeHandlers> <typeHandler handler="org.apache.ibatis.type.EnumOrdinalTypeHandler" javaType="com.ic.er.common.RelatedObjType"/> diff --git a/src/test/java/com/ic/er/TestAttribute.java b/src/test/java/com/ic/er/TestAttribute.java index f9ccd8a..a4d98a5 100644 --- a/src/test/java/com/ic/er/TestAttribute.java +++ b/src/test/java/com/ic/er/TestAttribute.java @@ -1,16 +1,16 @@ package com.ic.er; -import com.ic.er.exception.ERException; -import com.ic.er.entity.AttributeDO; import com.ic.er.common.DataType; +import com.ic.er.entity.AttributeDO; +import com.ic.er.exception.ERException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import static org.junit.jupiter.api.Assertions.assertThrows; - import java.util.List; +import static org.junit.jupiter.api.Assertions.assertThrows; + public class TestAttribute { private View testView; @@ -18,7 +18,7 @@ public class TestAttribute { @Before public void init() throws Exception { - ER.initialize(true); + ER.initialize(TestCommon.usePostgre); testView = ER.createView("testView", "wt22"); testEntity = testView.addEntity("teacher"); } @@ -66,14 +66,13 @@ public class TestAttribute { Assert.assertNotNull(attribute); } - @Test(expected = ERException.class) + @Test public void deleteByIDTest() { Attribute a1 = testEntity.addAttribute("teacher_id", DataType.VARCHAR, true, false); // delete a1.deleteDB(); - Attribute attribute = Attribute.queryByID(a1.getID()); - Assert.assertNull(attribute); + assertThrows(ERException.class, () -> Attribute.queryByID(a1.getID())); } } diff --git a/src/test/java/com/ic/er/TestCommon.java b/src/test/java/com/ic/er/TestCommon.java new file mode 100644 index 0000000..f58fe9e --- /dev/null +++ b/src/test/java/com/ic/er/TestCommon.java @@ -0,0 +1,5 @@ +package com.ic.er; + +public class TestCommon { + public static final boolean usePostgre = false; +} diff --git a/src/test/java/com/ic/er/TestER.java b/src/test/java/com/ic/er/TestER.java index 7b7aaa1..a256fec 100644 --- a/src/test/java/com/ic/er/TestER.java +++ b/src/test/java/com/ic/er/TestER.java @@ -2,6 +2,7 @@ package com.ic.er; import com.ic.er.common.Cardinality; import com.ic.er.common.DataType; +import com.ic.er.exception.ERException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -9,25 +10,27 @@ import org.junit.Test; import java.io.FileWriter; import java.io.IOException; +import static org.junit.jupiter.api.Assertions.assertThrows; + public class TestER { @Before public void setUp() throws Exception { - ER.initialize(true); + ER.initialize(TestCommon.usePostgre); } @Test public void createViewTest() { View testView = ER.createView("testView", "wt22"); - Assert.assertEquals(ER.queryAllView().size(), 1); + Assert.assertNotNull(ER.queryViewByID(testView.getID())); } @Test public void deleteViewTest() { View testView = ER.createView("testView", "wt22"); - Assert.assertEquals(ER.queryAllView().size(), 1); + Assert.assertNotEquals(ER.queryAllView().size(), 0); ER.deleteView(testView); - Assert.assertEquals(ER.queryAllView().size(), 0); + assertThrows(ERException.class, () -> ER.queryViewByID(testView.getID())); } @Test diff --git a/src/test/java/com/ic/er/TestEntity.java b/src/test/java/com/ic/er/TestEntity.java index 99f43ab..f4b7d89 100644 --- a/src/test/java/com/ic/er/TestEntity.java +++ b/src/test/java/com/ic/er/TestEntity.java @@ -1,8 +1,8 @@ package com.ic.er; -import com.ic.er.exception.ERException; import com.ic.er.common.DataType; +import com.ic.er.exception.ERException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; @@ -15,7 +15,7 @@ public class TestEntity { @Before public void init() throws Exception { - ER.initialize(true); + ER.initialize(TestCommon.usePostgre); testView = ER.createView("testView", "wt22"); } @@ -58,7 +58,7 @@ public class TestEntity { assertThrows(ERException.class, () -> teacher.updateInfo("student")); } - @Test(expected = ERException.class) + @Test public void attributeTest() { Entity teacher = testView.addEntity("teacher"); Attribute teacherID = teacher.addAttribute("teacher_id", DataType.INT, true, false); @@ -68,6 +68,6 @@ public class TestEntity { teacher.deleteAttribute(teacherID); Assert.assertEquals(teacher.getAttributeList().size(), 0); - Assert.assertNull(Attribute.queryByID(teacherID.getID())); + assertThrows(ERException.class, () -> Attribute.queryByID(teacherID.getID())); } } \ No newline at end of file diff --git a/src/test/java/com/ic/er/TestRelationship.java b/src/test/java/com/ic/er/TestRelationship.java index d60c516..cabbe4a 100644 --- a/src/test/java/com/ic/er/TestRelationship.java +++ b/src/test/java/com/ic/er/TestRelationship.java @@ -1,16 +1,16 @@ package com.ic.er; -import com.ic.er.exception.ERException; -import com.ic.er.entity.RelationshipDO; import com.ic.er.common.Cardinality; +import com.ic.er.entity.RelationshipDO; +import com.ic.er.exception.ERException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import static org.junit.jupiter.api.Assertions.assertThrows; - import java.util.List; +import static org.junit.jupiter.api.Assertions.assertThrows; + public class TestRelationship { private View testView; @@ -23,7 +23,7 @@ public class TestRelationship { @Before public void init() throws Exception { - ER.initialize(true); + ER.initialize(TestCommon.usePostgre); testView = ER.createView("testView", "wt22"); secondView = ER.createView("secondView", "wt22"); teacher = testView.addEntity("teacher"); @@ -42,18 +42,24 @@ public class TestRelationship { Relationship relationship = testView.createRelationship("teaches", teacher, student, Cardinality.ZeroToMany, Cardinality.ZeroToMany); Assert.assertNotNull(relationship); - Assert.assertEquals(relationship.getID(), Long.valueOf(1L)); assertThrows(ERException.class, () -> testView.createRelationship("teaches", teacher, student, Cardinality.ZeroToMany, Cardinality.ZeroToMany)); assertThrows(ERException.class, () -> testView.createRelationship("teaches", student, teacher, Cardinality.ZeroToMany, Cardinality.ZeroToMany)); } - @Test(expected = ERException.class) + @Test public void deleteRelationshipTest() { + Relationship testEntityCascadeDelete = testView.createRelationship("teaches", teacher, student, Cardinality.ZeroToMany, Cardinality.ZeroToMany); + Assert.assertNotNull(testEntityCascadeDelete); + testView.deleteEntity(teacher); + assertThrows(ERException.class, () -> Entity.queryByID(teacher.getID())); + assertThrows(ERException.class, () -> Relationship.queryByID(testEntityCascadeDelete.getID())); + + teacher = testView.addEntity("teacher"); Relationship relationship = testView.createRelationship("teaches", teacher, student, Cardinality.ZeroToMany, Cardinality.ZeroToMany); Assert.assertNotNull(relationship); relationship.deleteDB(); - Relationship relationship1 = Relationship.queryByID(1L); + assertThrows(ERException.class, () -> Relationship.queryByID(relationship.getID())); } @Test @@ -65,7 +71,7 @@ public class TestRelationship { Cardinality newCardi = Cardinality.OneToMany; relationship.updateInfo(newName, null, null, newCardi, newCardi); - Relationship relationship1 = Relationship.queryByID(1L); + Relationship relationship1 = Relationship.queryByID(relationship.getID()); Assert.assertNotNull(relationship1); Assert.assertEquals(relationship1.getName(), newName); Assert.assertEquals(relationship1.getFirstCardinality(), newCardi); @@ -81,7 +87,7 @@ public class TestRelationship { Assert.assertNotNull(relationship); assertThrows(ERException.class, () -> testView.createRelationship("teaches2", teacher, student, Cardinality.ZeroToMany, Cardinality.ZeroToMany)); - Relationship relationship1 = Relationship.queryByID(1L); + Relationship relationship1 = Relationship.queryByID(relationship.getID()); Assert.assertNotNull(relationship1); List<Relationship> results = Relationship.queryByRelationship(new RelationshipDO(relationship.getFirstEntity().getID(), relationship.getSecondEntity().getID())); Assert.assertEquals(results.size(), 1); diff --git a/src/test/java/com/ic/er/TestView.java b/src/test/java/com/ic/er/TestView.java index e192ccc..dd3db38 100644 --- a/src/test/java/com/ic/er/TestView.java +++ b/src/test/java/com/ic/er/TestView.java @@ -1,19 +1,21 @@ package com.ic.er; -import com.ic.er.exception.ERException; import com.ic.er.common.Cardinality; import com.ic.er.common.DataType; +import com.ic.er.exception.ERException; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import java.util.List; +import static org.junit.jupiter.api.Assertions.assertThrows; + public class TestView { @Before public void init() throws Exception { - ER.initialize(true); + ER.initialize(TestCommon.usePostgre); } @Test @@ -44,23 +46,23 @@ public class TestView { String newViewName = "new view name"; firstView.updateInfo(newViewName); - View newView = View.queryByID(1L); + View newView = View.queryByID(firstView.getID()); Assert.assertEquals(newView.getName(), newViewName); } - @Test(expected = ERException.class) + @Test public void deleteViewTest() { - View firstView = ER.createView("first view", "tw"); - firstView = View.queryByID(1L); - Assert.assertNotNull(firstView); + View testDeleteView = ER.createView("first view", "tw"); + testDeleteView = View.queryByID(testDeleteView.getID()); + Assert.assertNotNull(testDeleteView); - firstView.deleteDB(); + testDeleteView.deleteDB(); - View newView = View.queryByID(1L); - Assert.assertNull(newView); + View finalTestDeleteView = testDeleteView; + assertThrows(ERException.class, () -> View.queryByID(finalTestDeleteView.getID())); } - @Test(expected = ERException.class) + @Test public void deleteEntityTest() { View firstView = ER.createView("first view", "tw"); Entity firstEntity = firstView.addEntity("teacher"); @@ -68,47 +70,15 @@ public class TestView { firstView.deleteEntity(firstEntity); - View newView = View.queryByID(1L); + View newView = View.queryByID(firstView.getID()); Assert.assertEquals(newView.getEntityList().size(), 0); - Assert.assertNull(Entity.queryByID(firstEntity.getID())); + assertThrows(ERException.class, () -> Entity.queryByID(firstEntity.getID())); } @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); - } - - @Test(expected = ERException.class) - public void relationshipTest() { - View firstView = ER.createView("first view", "tw"); - - Entity teacher = firstView.addEntity("teacher"); - teacher.addAttribute("teacher_id", DataType.VARCHAR, true, false); - teacher.addAttribute("name", DataType.VARCHAR, false, false); - teacher.addAttribute("age", DataType.INT, false, false); - - Entity student = firstView.addEntity("student"); - student.addAttribute("student_id", DataType.VARCHAR, true, false); - student.addAttribute("name", DataType.VARCHAR, false, false); - student.addAttribute("grade", DataType.INT, false, false); - - Relationship ts = firstView.createRelationship("teaches", teacher, student, Cardinality.ZeroToMany, Cardinality.ZeroToMany); - Assert.assertNotNull(ts); - - ts.updateInfo("new relationship name", null, null, null, null); - 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())); + Assert.assertNotEquals(views.size(), 0); } } diff --git a/src/test/java/com/ic/er/mapper/attributeMapperTest.java b/src/test/java/com/ic/er/mapper/attributeMapperTest.java index dd3ba13..f0a936f 100644 --- a/src/test/java/com/ic/er/mapper/attributeMapperTest.java +++ b/src/test/java/com/ic/er/mapper/attributeMapperTest.java @@ -1,14 +1,14 @@ package com.ic.er.mapper; import com.ic.er.ER; -import com.ic.er.entity.AttributeDO; +import com.ic.er.TestCommon; import com.ic.er.common.DataType; +import com.ic.er.entity.AttributeDO; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import java.util.Date; - import java.util.List; @@ -19,7 +19,7 @@ import java.util.List; public class attributeMapperTest { @Before public void init() throws Exception { - ER.initialize(true); + ER.initialize(TestCommon.usePostgre); } @Test @@ -50,9 +50,6 @@ public class attributeMapperTest { int ret = ER.attributeMapper.insert(attributeDO); int ret2 = ER.attributeMapper.insert(attributeDO2); int ret3 = ER.attributeMapper.insert(attributeDO3); - System.out.printf("ret: %d, ID: %d\n", ret, attributeDO.getID()); - System.out.printf("ret2: %d, ID: %d\n", ret2, attributeDO2.getID()); - System.out.printf("ret3: %d, ID: %d\n", ret3, attributeDO3.getID()); } @Test diff --git a/src/test/java/com/ic/er/mapper/entityMapperTest.java b/src/test/java/com/ic/er/mapper/entityMapperTest.java index 651b78f..bd9ed88 100644 --- a/src/test/java/com/ic/er/mapper/entityMapperTest.java +++ b/src/test/java/com/ic/er/mapper/entityMapperTest.java @@ -1,38 +1,23 @@ package com.ic.er.mapper; +import com.ic.er.ER; +import com.ic.er.TestCommon; import com.ic.er.entity.EntityDO; -import com.ic.er.dao.EntityMapper; -import org.apache.ibatis.io.Resources; -import org.apache.ibatis.session.SqlSession; -import org.apache.ibatis.session.SqlSessionFactory; -import org.apache.ibatis.session.SqlSessionFactoryBuilder; -import org.junit.Assert; import org.junit.Before; import org.junit.Test; -import java.util.Date; - import java.io.IOException; -import java.io.InputStream; -import java.sql.Connection; +import java.sql.SQLException; +import java.util.Date; /** * @author wendi * @data 15/10/2022 */ public class entityMapperTest { - public static SqlSession sqlSession; - public static Connection connection; - public static EntityMapper entityMapper; - @Before - public void init() throws IOException { - InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); - SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); - SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is); - sqlSession = sqlSessionFactory.openSession(true); - connection = sqlSession.getConnection(); - System.out.println(connection); + public void init() throws IOException, SQLException { + ER.initialize(TestCommon.usePostgre); } @Test @@ -47,9 +32,7 @@ public class entityMapperTest { EntityDO entity = new EntityDO(id, name, viewID, isDelete, create, modify); - Assert.assertNotNull(sqlSession); - EntityMapper entityMapper = sqlSession.getMapper(EntityMapper.class); - entityMapper.insert(entity); + ER.entityMapper.insert(entity); } @Test @@ -64,9 +47,7 @@ public class entityMapperTest { EntityDO entity = new EntityDO(id, name, viewID, isDelete, create, modify); - Assert.assertNotNull(sqlSession); - EntityMapper entityMapper = sqlSession.getMapper(EntityMapper.class); - entityMapper.insert(entity); + ER.entityMapper.insert(entity); } @Test @@ -81,19 +62,14 @@ public class entityMapperTest { EntityDO entity = new EntityDO(id, name, viewID, isDelete, create, modify); - - Assert.assertNotNull(sqlSession); - EntityMapper entityMapper = sqlSession.getMapper(EntityMapper.class); - entityMapper.selectByEntity(entity); + ER.entityMapper.selectByEntity(entity); } @Test public void selectByIDTest() { Long id = Long.valueOf(123); - Assert.assertNotNull(sqlSession); - EntityMapper entityMapper = sqlSession.getMapper(EntityMapper.class); - entityMapper.selectByID(id); + ER.entityMapper.selectByID(id); } @@ -109,9 +85,7 @@ public class entityMapperTest { EntityDO entityDo = new EntityDO(id, name, viewID, isDelete, create, modify); - Assert.assertNotNull(sqlSession); - EntityMapper entityMapper = sqlSession.getMapper(EntityMapper.class); - entityMapper.updateByID(entityDo); + ER.entityMapper.updateByID(entityDo); } @Test @@ -119,10 +93,6 @@ public class entityMapperTest { long id = Long.valueOf(123); - Assert.assertNotNull(sqlSession); - EntityMapper entityMapper = sqlSession.getMapper(EntityMapper.class); - entityMapper.deleteByID(id); + ER.entityMapper.deleteByID(id); } - - } diff --git a/src/test/java/com/ic/er/mapper/testGraphInfoMapper.java b/src/test/java/com/ic/er/mapper/testGraphInfoMapper.java deleted file mode 100644 index f62fdb6..0000000 --- a/src/test/java/com/ic/er/mapper/testGraphInfoMapper.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.ic.er.mapper; - -public class testGraphInfoMapper { -} diff --git a/src/test/java/com/ic/er/mapper/testRelationMapper.java b/src/test/java/com/ic/er/mapper/testRelationMapper.java index 0f1360e..9a99f90 100644 --- a/src/test/java/com/ic/er/mapper/testRelationMapper.java +++ b/src/test/java/com/ic/er/mapper/testRelationMapper.java @@ -1,76 +1,58 @@ package com.ic.er.mapper; -import com.ic.er.entity.RelationshipDO; +import com.ic.er.ER; +import com.ic.er.TestCommon; import com.ic.er.common.Cardinality; -import com.ic.er.dao.RelationshipMapper; -import org.apache.ibatis.io.Resources; -import org.apache.ibatis.session.SqlSession; -import org.apache.ibatis.session.SqlSessionFactory; -import org.apache.ibatis.session.SqlSessionFactoryBuilder; +import com.ic.er.entity.RelationshipDO; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import java.io.IOException; -import java.io.InputStream; -import java.sql.Connection; +import java.sql.SQLException; import java.util.Date; import java.util.List; public class testRelationMapper { - public static SqlSession sqlSession; - public static Connection connection; - public static RelationshipMapper relationMapper; - @Before - public void init() throws IOException { - InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); - SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); - SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is); - sqlSession = sqlSessionFactory.openSession(true); - connection = sqlSession.getConnection(); - System.out.println(connection); - relationMapper = sqlSession.getMapper(RelationshipMapper.class); + public void init() throws IOException, SQLException { + ER.initialize(TestCommon.usePostgre); } + @Test public void testQueryRelation() { - Assert.assertNotNull(sqlSession); - RelationshipDO relationshipDO = relationMapper.selectByID(Long.valueOf(3)); + RelationshipDO relationshipDO = ER.relationshipMapper.selectByID(Long.valueOf(3)); System.out.println(relationshipDO); } @Test public void testQueryRelationByRelation() { - Assert.assertNotNull(sqlSession); RelationshipDO relationshipDO = new RelationshipDO(null, "relation4", null, null, null, Cardinality.ZeroToMany, Cardinality.ZeroToMany, 0, null, null); - List<RelationshipDO> res = relationMapper.selectByRelationship(relationshipDO); + List<RelationshipDO> res = ER.relationshipMapper.selectByRelationship(relationshipDO); System.out.println(res); } @Test public void testCreateRelation() { - Assert.assertNotNull(sqlSession); RelationshipDO relationshipDO = new RelationshipDO(Long.valueOf(11), "relation4", Long.valueOf(4), Long.valueOf(4), Long.valueOf(3), Cardinality.ZeroToMany, Cardinality.ZeroToMany, 0, new Date(), new Date()); - Assert.assertEquals(relationMapper.insert(relationshipDO), 1); + Assert.assertEquals(ER.relationshipMapper.insert(relationshipDO), 1); } @Test public void testDeleteRelation() { - Assert.assertNotNull(sqlSession); - Assert.assertEquals(relationMapper.deleteByID(Long.valueOf(11)), 1); + Assert.assertEquals(ER.relationshipMapper.deleteByID(Long.valueOf(11)), 1); } @Test public void testUpdateRelation() { - Assert.assertNotNull(sqlSession); RelationshipDO relationshipDO = new RelationshipDO(Long.valueOf(4), "relation4update", Long.valueOf(3), Long.valueOf(4), Long.valueOf(3), Cardinality.ZeroToMany, Cardinality.ZeroToMany, 0, new Date(), new Date()); - Assert.assertEquals(relationMapper.updateByID(relationshipDO), 1); + Assert.assertEquals(ER.relationshipMapper.updateByID(relationshipDO), 1); } } diff --git a/src/test/java/com/ic/er/mapper/testViewMapper.java b/src/test/java/com/ic/er/mapper/testViewMapper.java index c34ad7c..9d93d17 100644 --- a/src/test/java/com/ic/er/mapper/testViewMapper.java +++ b/src/test/java/com/ic/er/mapper/testViewMapper.java @@ -1,78 +1,58 @@ package com.ic.er.mapper; +import com.ic.er.ER; +import com.ic.er.TestCommon; import com.ic.er.entity.ViewDO; -import com.ic.er.dao.ViewMapper; -import org.apache.ibatis.io.Resources; -import org.apache.ibatis.session.SqlSession; -import org.apache.ibatis.session.SqlSessionFactory; -import org.apache.ibatis.session.SqlSessionFactoryBuilder; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import java.io.IOException; -import java.io.InputStream; -import java.sql.Connection; +import java.sql.SQLException; import java.util.Date; import java.util.List; public class testViewMapper { - public static SqlSession sqlSession; - public static Connection connection; - public static ViewMapper viewMapper; - @Before - public void init() throws IOException { - InputStream is = Resources.getResourceAsStream("mybatis-config.xml"); - SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder(); - SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is); - sqlSession = sqlSessionFactory.openSession(true); - connection = sqlSession.getConnection(); - System.out.println(connection); - viewMapper = sqlSession.getMapper(ViewMapper.class); + public void init() throws IOException, SQLException { + ER.initialize(TestCommon.usePostgre); } + @Test public void testQueryAllViews() { - Assert.assertNotNull(sqlSession); - List<ViewDO> viewDOList = viewMapper.selectAll(); + List<ViewDO> viewDOList = ER.viewMapper.selectAll(); Assert.assertEquals(1, viewDOList.size()); } @Test public void testQueryByID() { - Assert.assertNotNull(sqlSession); - ViewDO viewDO = viewMapper.selectByID(Long.valueOf(3)); + ViewDO viewDO = ER.viewMapper.selectByID(Long.valueOf(3)); System.out.println(viewDO); } @Test public void testCreateView() { - Assert.assertNotNull(sqlSession); ViewDO viewDO = new ViewDO(Long.valueOf(2), "view3", "creator3", Long.valueOf(1), 0, new Date(), new Date()); - Assert.assertEquals(viewMapper.insert(viewDO), 1); + Assert.assertEquals(ER.viewMapper.insert(viewDO), 1); } @Test public void testDeleteView() { - Assert.assertNotNull(sqlSession); - Assert.assertEquals(viewMapper.deleteByID(Long.valueOf(2)), 1); + Assert.assertEquals(ER.viewMapper.deleteByID(Long.valueOf(2)), 1); } @Test public void testQueryView() { - Assert.assertNotNull(sqlSession); ViewDO viewDO = new ViewDO(null, "view1", null, null, 0, null, null); - List<ViewDO> res = viewMapper.selectByView(viewDO); + List<ViewDO> res = ER.viewMapper.selectByView(viewDO); System.out.println(res); } @Test public void testUpdateView() { - Assert.assertNotNull(sqlSession); ViewDO viewDO = new ViewDO(Long.valueOf(3), "view3update", "creator3update", Long.valueOf(1), 0, new Date(), new Date()); - Assert.assertEquals(viewMapper.updateByID(viewDO), 1); + Assert.assertEquals(ER.viewMapper.updateByID(viewDO), 1); } - } -- GitLab