[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] [taler-schemafuzz] branch master updated: Trying to work ar
From: |
gnunet |
Subject: |
[GNUnet-SVN] [taler-schemafuzz] branch master updated: Trying to work around @BeforeClass JUnit limits |
Date: |
Tue, 12 Jun 2018 16:27:31 +0200 |
This is an automated email from the git hooks/post-receive script.
erwan-ulrich pushed a commit to branch master
in repository schemafuzz.
The following commit(s) were added to refs/heads/master by this push:
new bffa8bb Trying to work around @BeforeClass JUnit limits
bffa8bb is described below
commit bffa8bb0862c0394230693ced5d33c1518644362
Author: Feideus <address@hidden>
AuthorDate: Tue Jun 12 16:27:21 2018 +0200
Trying to work around @BeforeClass JUnit limits
---
TODO.txt | 3 +-
.../java/org/schemaspy/model/GenericTreeNode.java | 170 ++----
.../org/schemaspy/model/GenericTreeNodeTest.java | 597 +++++++++++----------
.../java/org/schemaspy/model/GenericTreeTest.java | 12 +-
4 files changed, 390 insertions(+), 392 deletions(-)
diff --git a/TODO.txt b/TODO.txt
index 33b36bd..eeecd60 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -3,6 +3,5 @@ MANUAL FOR USE
WEBSITE
TEST CASES/ UNIT TESTING INTEGRATION TESTING
VARCHAR CLASSIFIER (LATER)
-MORE TYPES
-MORE DB TYPES
+MORE DB TYPES
diff --git a/src/main/java/org/schemaspy/model/GenericTreeNode.java
b/src/main/java/org/schemaspy/model/GenericTreeNode.java
index 5a5025c..36d932b 100644
--- a/src/main/java/org/schemaspy/model/GenericTreeNode.java
+++ b/src/main/java/org/schemaspy/model/GenericTreeNode.java
@@ -1,16 +1,8 @@
package org.schemaspy.model;
-
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStreamReader;
import java.sql.*;
-
-import java.text.SimpleDateFormat;
import java.util.*;
import java.util.ArrayList;
import java.util.List;
-import java.util.logging.Logger;
-
import org.schemaspy.*;
import org.schemaspy.service.SqlService;
@@ -25,8 +17,6 @@ public class GenericTreeNode {
private Row initial_state_row;
private Row post_change_row;
private ArrayList<SingleChange> potential_changes = new
ArrayList<SingleChange>();
- //private ArrayList<SingleChange> cascadeFK = new
ArrayList<SingleChange>(); // a integrer
- //private boolean cascadingFK;
private GenericTreeNode parent;
private ArrayList<GenericTreeNode> children = new
ArrayList<GenericTreeNode>();
private SingleChange chosenChange;
@@ -247,9 +237,6 @@ public class GenericTreeNode {
String typeName = tableColumn.getTypeName();
GenericTreeNode rootForThisMutation = FirstApperanceOf(this);
- System.out.println(typeName);
-
-
switch (typeName) {
case "smallint":
case "integer":
@@ -265,7 +252,7 @@ public class GenericTreeNode {
break;
}
case "character":
- case "character varying": // MIXED CHARACTERS/NUMBERS STRINGS MAKE
CHARAT CRASH AT 0 IF FIRST CHAR IS NUMBER. USE REGEX TO FIND FIRST ACTUAL
LETTER ?
+ case "character varying":
case "varchar":
@@ -383,28 +370,14 @@ public class GenericTreeNode {
if (undo)
{
- if
(chosenChange.getParentTableColumn().getTypeName().equals("varchar")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("bool")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("timestamp")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("date")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("_text")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("text")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("fulltext")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("email"))
+ if (requireQuotes(chosenChange.getParentTableColumn()) ==1)
theQuery = "UPDATE " +
initial_state_row.getParentTable().getName() + " SET " +
chosenChange.getParentTableColumn().getName() + "='" +
chosenChange.getOldValue().toString() + "', ";
else
theQuery = "UPDATE " +
initial_state_row.getParentTable().getName() + " SET " +
chosenChange.getParentTableColumn().getName() + " = " +
chosenChange.getOldValue().toString() + ", ";
}
else
{
- if
(chosenChange.getParentTableColumn().getTypeName().equals("varchar")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("bool")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("timestamp")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("date")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("_text")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("text")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("fulltext")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("email"))
+ if (requireQuotes(chosenChange.getParentTableColumn()) ==1)
theQuery = "UPDATE " +
initial_state_row.getParentTable().getName() + " SET " +
chosenChange.getParentTableColumn().getName() + "='" +
chosenChange.getNewValue().toString() + "', ";
else
theQuery = "UPDATE " +
initial_state_row.getParentTable().getName() + " SET " +
chosenChange.getParentTableColumn().getName() + "=" +
chosenChange.getNewValue().toString() + ", ";
@@ -418,20 +391,15 @@ public class GenericTreeNode {
if
(!entry.getKey().equals(chosenChange.getParentTableColumn().getName()))
{
if(chosenChange.getParentTableColumn().getTable().getColumn(entry.getKey()) !=
null) {// not very good, check why the field is null in the first place
- if
(chosenChange.getParentTableColumn().getTable().getColumn(entry.getKey()).getTypeName().equals("varchar")
- ||
chosenChange.getParentTableColumn().getTable().getColumn(entry.getKey()).getTypeName().equals("bool")
- ||
chosenChange.getParentTableColumn().getTable().getColumn(entry.getKey()).getTypeName().equals("timestamp")
- ||
chosenChange.getParentTableColumn().getTable().getColumn(entry.getKey()).getTypeName().equals("date")
- ||
chosenChange.getParentTableColumn().getTable().getColumn(entry.getKey()).getTypeName().equals("_text")
- ||
chosenChange.getParentTableColumn().getTable().getColumn(entry.getKey()).getTypeName().equals("text")
- ||
chosenChange.getParentTableColumn().getTable().getColumn(entry.getKey()).getTypeName().equals("fulltext")
- ||
chosenChange.getParentTableColumn().getTable().getColumn(entry.getKey()).getTypeName().equals("email"))
{
+ if
(requireQuotes(chosenChange.getParentTableColumn().getTable().getColumn(entry.getKey()))
== 1)
+ {
if (entry.getValue() != null)
theQuery = theQuery + (entry.getKey() + "='" +
entry.getValue().toString() + "' AND ");
else
theQuery = theQuery + (entry.getKey() + "=
null AND ");
}
}
+
}
else
{
@@ -441,8 +409,14 @@ public class GenericTreeNode {
theQuery = theQuery + (entry.getKey() + "='" +
chosenChange.getOldValue().toString() + "' AND ");
}
}
- theQuery = theQuery.substring(0, theQuery.lastIndexOf(" AND "));
+ try
+ {
+ theQuery = theQuery.substring(0, theQuery.lastIndexOf(" AND
"));
+ }
+ catch(Exception e)
+ {
+ }
System.out.println(theQuery);
return theQuery;
@@ -717,9 +691,6 @@ public class GenericTreeNode {
{
TableColumn sgParentColumn = chosenChange.getParentTableColumn();
- QueryResponseParser qrp;
- QueryResponse response = null;
-
Collection<ForeignKeyConstraint> lesFk=
db.getLesForeignKeys().get(sgParentColumn.getTable().getName().toUpperCase());
for(ForeignKeyConstraint fk : lesFk)
{
@@ -730,59 +701,29 @@ public class GenericTreeNode {
}
String semiQuery = "SELECT * FROM " +
chosenChange.getParentTableColumn().getTable().getName() ;
- if (chosenChange.getParentTableColumn().getTypeName().equals("varchar")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("bool")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("timestamp")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("date")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("_text")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("text")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("fulltext")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("email"))
+ if (requireQuotes(chosenChange.getParentTableColumn()) == 1)
semiQuery = semiQuery + " WHERE " +
chosenChange.getParentTableColumn().getName() + "=
'"+chosenChange.getOldValue() + " '";
else
semiQuery = semiQuery + " WHERE " +
chosenChange.getParentTableColumn().getName() + "="+chosenChange.getOldValue();
- try {
- Statement stmt = sqlService.getConnection().createStatement();
- ResultSet res = stmt.executeQuery(semiQuery);
- qrp = new QueryResponseParser();
- ArrayList<Row> rows = new ArrayList<Row>(qrp.parse(res,
chosenChange.getParentTableColumn().getTable()).getRows());
- response = new QueryResponse(rows);
- } catch (Exception e) {
- e.printStackTrace();
- }
+ System.out.println(semiQuery);
- setInitial_state_row(response.getRows().get(0)); // there should be
only one row. post change row ?
+ QueryResponse response =
fetchingDataFromDatabase(semiQuery,chosenChange.getParentTableColumn().getTable(),sqlService);
+ setInitial_state_row(response.getRows().get(0)); // there should be
only one row. post change row ?
semiQuery = "SELECT * FROM " +
chosenChange.getParentTableColumn().getTable().getName() ;
- if (chosenChange.getParentTableColumn().getTypeName().equals("varchar")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("bool")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("timestamp")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("date")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("_text")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("text")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("fulltext")
- ||
chosenChange.getParentTableColumn().getTypeName().equals("email"))
+
+ if (requireQuotes(chosenChange.getParentTableColumn()) == 1)
semiQuery = semiQuery + " WHERE " +
chosenChange.getParentTableColumn().getName() + "=
'"+chosenChange.getNewValue() + " '";
else
semiQuery = semiQuery + " WHERE " +
chosenChange.getParentTableColumn().getName() + "="+chosenChange.getNewValue();
- try {
- Statement stmt = sqlService.getConnection().createStatement();
- ResultSet res = stmt.executeQuery(semiQuery);
- qrp = new QueryResponseParser();
- ArrayList<Row> rows = new ArrayList<Row>(qrp.parse(res,
chosenChange.getParentTableColumn().getTable()).getRows());
- response = new QueryResponse(rows);
- } catch (Exception e) {
- e.printStackTrace();
- }
+ response =
fetchingDataFromDatabase(semiQuery,chosenChange.getParentTableColumn().getTable(),sqlService);
if(!response.getRows().isEmpty())
{
- try
- {
String columnName=
chosenChange.getParentTableColumn().getName();
String tableName =
chosenChange.getParentTableColumn().getTable().getName();
@@ -790,21 +731,13 @@ public class GenericTreeNode {
"UNION ALL SELECT * FROM ( SELECT
"+columnName+" + 1 FROM "+tableName+" t WHERE NOT EXISTS ( SELECT 1 FROM
"+tableName+" ti WHERE ti."+columnName+" = t."+columnName+" + 1) " +
"ORDER BY "+columnName+" LIMIT 1) q2 LIMIT 1";
- Statement stmt = sqlService.getConnection().createStatement();
- ResultSet res = stmt.executeQuery(semiQuery);
- qrp = new QueryResponseParser();
- ArrayList<Row> rows = new ArrayList<Row>(qrp.parse(res,
chosenChange.getParentTableColumn().getTable()).getRows());
- response = new QueryResponse(rows);
+ response =
fetchingDataFromDatabase(semiQuery,chosenChange.getParentTableColumn().getTable(),sqlService);
chosenChange.setNewValue(response.getRows().get(0).getValueOfColumn(columnName));
- }
- catch(Exception e)
- {
- e.printStackTrace();
- }
}
}
+
public void setInitial_state_row(Row initial_state_row) {
this.initial_state_row = initial_state_row;
initPostChangeRow();
@@ -823,8 +756,6 @@ public class GenericTreeNode {
public ArrayList<SingleChange>
removePotentialChangesThatDontMatchConstraints(ArrayList<SingleChange>
possibilities, SqlService sqlService)
{
- QueryResponseParser qrp;
- QueryResponse response = null;
ArrayList<SingleChange> newPossibilities = possibilities;
for(SingleChange sg : possibilities)
@@ -832,33 +763,14 @@ public class GenericTreeNode {
if(sg.getParentTableColumn().getTable().getPrimaryColumns().contains(sg.getParentTableColumn()))
// unique OR PK constraints
{
String semiQuery = "SELECT * FROM " +
sg.getParentTableColumn().getTable().getName();
- if (sg.getParentTableColumn().getTypeName().equals("varchar")
- ||
sg.getParentTableColumn().getTypeName().equals("bool")
- ||
sg.getParentTableColumn().getTypeName().equals("timestamp")
- ||
sg.getParentTableColumn().getTypeName().equals("date")
- ||
sg.getParentTableColumn().getTypeName().equals("_text")
- ||
sg.getParentTableColumn().getTypeName().equals("text")
- ||
sg.getParentTableColumn().getTypeName().equals("fulltext")
- ||
sg.getParentTableColumn().getTypeName().equals("email"))
+ if (requireQuotes(sg.getParentTableColumn()) == 1)
semiQuery = semiQuery + " WHERE " +
sg.getParentTableColumn().getName() + "= '" + sg.getNewValue() + " '";
else
semiQuery = semiQuery + " WHERE " +
sg.getParentTableColumn().getName() + "=" + sg.getNewValue();
System.out.println("removing = " + semiQuery);
- try
- {
- Statement stmt =
sqlService.getConnection().createStatement();
- ResultSet res = stmt.executeQuery(semiQuery);
- qrp = new QueryResponseParser();
- ArrayList<Row> rows = new ArrayList<Row>(qrp.parse(res,
sg.getParentTableColumn().getTable()).getRows());
- response = new QueryResponse(rows);
- }
- catch (Exception e)
- {
- e.printStackTrace();
- }
-
+ QueryResponse response =
fetchingDataFromDatabase(semiQuery,sg.getParentTableColumn().getTable(),sqlService);
SingleChange tmp = sg;
if(response.getRows() != null)
@@ -867,4 +779,38 @@ public class GenericTreeNode {
}
return newPossibilities;
}
+
+ public int requireQuotes(TableColumn column) // checks if column is of
"Stringish" (needs sql quotes) as 1 or "integerish" as 0. more typeishes can be
added in the future. existing lists can be edited
+ {
+ if (column.getTypeName().equals("varchar")
+ || column.getTypeName().equals("bool")
+ || column.getTypeName().equals("timestamp")
+ || column.getTypeName().equals("date")
+ || column.getTypeName().equals("_text")
+ || column.getTypeName().equals("text")
+ || column.getTypeName().equals("fulltext")
+ || column.getTypeName().equals("email"))
+ return 1;
+ else
+ return 0;
+ }
+
+ public QueryResponse fetchingDataFromDatabase(String semiQuery,Table
parentTable, SqlService sqlService)
+ {
+ QueryResponseParser qrp;
+ QueryResponse response = null;
+ try
+ {
+ Statement stmt = sqlService.getConnection().createStatement();
+ ResultSet res = stmt.executeQuery(semiQuery);
+ qrp = new QueryResponseParser();
+ ArrayList<Row> rows = new ArrayList<Row>(qrp.parse(res,
parentTable).getRows());
+ response = new QueryResponse(rows);
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ return response;
+ }
}
diff --git a/src/test/java/org/schemaspy/model/GenericTreeNodeTest.java
b/src/test/java/org/schemaspy/model/GenericTreeNodeTest.java
index 8f3d2b1..9eaaeb3 100644
--- a/src/test/java/org/schemaspy/model/GenericTreeNodeTest.java
+++ b/src/test/java/org/schemaspy/model/GenericTreeNodeTest.java
@@ -15,7 +15,11 @@ import org.junit.Test;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
+import org.springframework.test.context.TestContext;
+import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.junit4.SpringRunner;
+import org.springframework.test.context.support.AbstractTestExecutionListener;
+
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -24,15 +28,14 @@ import java.util.HashMap;
import java.util.Random;
address@hidden(SpringRunner.class)
address@hidden(SpringJUnit4ClassRunner.class)
@SpringBootTest
-public class GenericTreeNodeTest {
+public class GenericTreeNodeTest extends AbstractTestExecutionListener {
@Autowired
private SqlService sqlService;
@Autowired
private DatabaseService databaseService;
- private Database database;
@Mock
private ProgressListener progressListener;
@MockBean
@@ -40,297 +43,347 @@ public class GenericTreeNodeTest {
@MockBean
private CommandLineRunner commandLineRunner;
+ private Database database;
+ @Override
+ public void beforeTestClass(TestContext testContext) {
+
+ try {
+ String[] args = {
+ "-t", "pgsql",
+ "-db", "sample_database2",
+ "-hostOptionalPort", "127.0.0.1",
+ "-o", "target/integrationtesting/databaseServiceIT",
+ "-dp", "postgresql-42.2.2.jar",
+ "-u", "feideus",
+ "-p", "feideus"
+ };
+
+ Config config = new Config(args);
+ DatabaseMetaData databaseMetaData = sqlService.connect(config);
+ String schema = sqlService.getConnection().getSchema();
+ String catalog = sqlService.getConnection().getCatalog();
+ database = new Database(
+ databaseMetaData,
+ "DatabaseServiceIT",
+ catalog,
+ schema,
+ null
+ );
+ databaseService.gatheringSchemaDetails(config, database,
progressListener);
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
- @Ignore
@Test
public void WeightPropagationTest() throws AssertionException
{
Random rand = new Random();
+ String query = "SELECT * FROM customer WHERE store_id=2";
+ QueryResponse response = null;
- GenericTreeNode gtn1 = new GenericTreeNode(null,1,null,null,false);
- gtn1.setWeight(rand.nextInt(Integer.MAX_VALUE));
- GenericTreeNode gtn2 = new GenericTreeNode(null,2,null,gtn1,false);
- gtn2.setWeight(rand.nextInt(Integer.MAX_VALUE));
- GenericTreeNode gtn3 = new GenericTreeNode(null,3,null,gtn1,false);
- gtn3.setWeight(Integer.MAX_VALUE);
-
- gtn1.addChild(gtn2);
- gtn1.addChild(gtn3);
-
- gtn2.propagateWeight();
- gtn3.propagateWeight();
-
- Assert.assertEquals("Testing Weight propagation
",gtn1.getSubTreeWeight(),gtn2.getWeight()+gtn3.getWeight());
-
- gtn2.setWeight(10);
- gtn3.setWeight(10);
-
- gtn2.propagateWeight();
- gtn3.propagateWeight();
-
- gtn1.setSubTreeWeight(0);
-
- Assert.assertFalse(gtn1.getSubTreeWeight() ==
gtn2.getWeight()+gtn3.getWeight());
-
- }
-
- @Ignore
- @Test
- public void SingleChangeBasedOnWeightShouldNotReturnNull() throws
AssertionException
- {
- GenericTreeNode gtn1 = new GenericTreeNode(null,1,null,null,false);
- gtn1.setPotential_changes(new ArrayList<>());
-
- GenericTreeNode gtn2= new GenericTreeNode(null,2,null,gtn1,false);
- gtn2.setPotential_changes(new ArrayList<>());
- gtn2.setWeight(10);
-
- GenericTreeNode gtn3 = new GenericTreeNode(null,3,null,gtn1,false);
- gtn3.setPotential_changes(new ArrayList<>());
- gtn3.setWeight(10);
-
- SingleChange sg1 = new SingleChange(null,null,"1","2");
- SingleChange sg2 = new SingleChange(null,null,"1","3");
- SingleChange sg3 = new SingleChange(null,null,"hello","hella");
- SingleChange sg4 = new SingleChange(null,null,"f","t");
-
- gtn1.getPotential_changes().add(sg1);
- gtn2.getPotential_changes().add(sg2);
- gtn3.getPotential_changes().add(sg3);
- gtn3.getPotential_changes().add(sg4);
-
- Assert.assertNotNull(gtn1.singleChangeBasedOnWeight());
- }
-
- @Ignore
- @Test
- public void singleChangeAttachedMutationShouldMatch() // Not very Usefull
- {
- GenericTreeNode gtn1 = new GenericTreeNode(null,1,null,null,false);
- String s1 = "1";
- Object so1 = s1;
- String s2 = "2";
- Object so2 = s2;
- SingleChange sg1 = new SingleChange(null,null,so1,so2);
-
- gtn1.setChosenChange(sg1);
-
- Assert.assertEquals("Testing singleChange Attached Mutation
consistency",gtn1.getChosenChange().getAttachedToMutation().getId(),gtn1.getId());
-
- }
- @Ignore
- @Test
- public void NoNullMutationPossibilitiesTest() throws Exception
- {
-
- String[] args = {
- "-t", "pgsql",
- "-db","sample_database2",
- "-hostOptionalPort","127.0.0.1",
- "-o", "target/integrationtesting/databaseServiceIT",
- "-dp","postgresql-42.2.2.jar",
- "-u", "feideus",
- "-p", "feideus"
- };
-
- Config config = new Config(args);
- DatabaseMetaData databaseMetaData = sqlService.connect(config);
- String schema = sqlService.getConnection().getSchema();
- String catalog = sqlService.getConnection().getCatalog();
- database = new Database(
- databaseMetaData,
- "DatabaseServiceIT",
- catalog,
- schema,
- null
- );
- databaseService.gatheringSchemaDetails(config, database,
progressListener);
-
- PreparedStatement stmt = sqlService.prepareStatement("SELECT * FROM
test_table", database, null);
- ResultSet rs = stmt.executeQuery();
- QueryResponseParser parser = new QueryResponseParser();
-
- QueryResponse response =
parser.parse(rs,database.getTablesMap().get("test_table"));
- GenericTreeNode tmpMutation = new
GenericTreeNode(response.getRows().get(0),1);
-
Assert.assertFalse(tmpMutation.discoverMutationPossibilities(tmpMutation).contains("null"));
-
- }
- @Ignore
- @Test
- public void injectAndUndoConsistencyTest() throws Exception
- {
- String[] args = {
- "-t", "pgsql",
- "-db","sample_database2",
- "-hostOptionalPort","127.0.0.1",
- "-o", "target/integrationtesting/databaseServiceIT",
- "-dp","postgresql-42.2.2.jar",
- "-u", "feideus",
- "-p", "feideus"
- };
-
- Config config = new Config(args);
- DatabaseMetaData databaseMetaData = sqlService.connect(config);
- String schema = sqlService.getConnection().getSchema();
- String catalog = sqlService.getConnection().getCatalog();
- Database database = new Database(
- databaseMetaData,
- "DatabaseServiceIT",
- catalog,
- schema,
- null
- );
- databaseService.gatheringSchemaDetails(config, database,
progressListener);
-
-
- PreparedStatement stmt = sqlService.prepareStatement("SELECT * FROM
test_table", database, null);
- ResultSet rs = stmt.executeQuery();
- QueryResponseParser parser = new QueryResponseParser();
- QueryResponse response =
parser.parse(rs,database.getTablesMap().get("test_table"));
-
- Row row = response.getRows().get(0);
- GenericTreeNode tmpMutation = new GenericTreeNode(row,1);
- tmpMutation.setChosenChange(tmpMutation.getPotential_changes().get(0));
- tmpMutation.initPostChangeRow();
-
-
- Assert.assertTrue(tmpMutation.inject(sqlService,database,false));
//Test
-
- rs = stmt.executeQuery();
- response = parser.parse(rs,database.getTablesMap().get("test_table"));
-
-
Assert.assertTrue(response.getRows().get(0).compare(tmpMutation.getPost_change_row()));
-
- Assert.assertTrue(tmpMutation.undo(sqlService,database)); //Test
-
- rs = stmt.executeQuery();
- response = parser.parse(rs,database.getTablesMap().get("test_table"));
-
-
Assert.assertTrue(response.getRows().get(0).compare(tmpMutation.getInitial_state_row()));
-
- }
- @Ignore
- @Test
- public void compareTest() throws Exception
- {
- String[] args = {
- "-t", "pgsql",
- "-db","sample_database2",
- "-hostOptionalPort","127.0.0.1",
- "-o", "target/integrationtesting/databaseServiceIT",
- "-dp","postgresql-42.2.2.jar",
- "-u", "feideus",
- "-p", "feideus"
- };
+ try {
+ PreparedStatement stmt = sqlService.prepareStatement(query,
database, "customer");
+ ResultSet rs = stmt.executeQuery();
+ QueryResponseParser parser = new QueryResponseParser();
- Config config = new Config(args);
- DatabaseMetaData databaseMetaData = sqlService.connect(config);
- String schema = sqlService.getConnection().getSchema();
- String catalog = sqlService.getConnection().getCatalog();
- Database database = new Database(
- databaseMetaData,
- "DatabaseServiceIT",
- catalog,
- schema,
- null
- );
- databaseService.gatheringSchemaDetails(config, database,
progressListener);
+ response =
parser.parse(rs,database.getTablesMap().get("test_table"));
+ }
+ catch(Exception e)
+ {
+ e.printStackTrace();
+ }
- PreparedStatement stmt = sqlService.prepareStatement("SELECT * FROM
test_table", database, null);
- ResultSet rs = stmt.executeQuery();
- QueryResponseParser parser = new QueryResponseParser();
- QueryResponse response =
parser.parse(rs,database.getTablesMap().get("test_table"));
+ GenericTreeNode tmpMutation1 = new
GenericTreeNode(response.getRows().get(0),1,sqlService);
+ GenericTreeNode tmpMutation2 = new
GenericTreeNode(response.getRows().get(1),1,sqlService);
+ GenericTreeNode tmpMutation3 = new
GenericTreeNode(response.getRows().get(2),1,sqlService);
- Row row = response.getRows().get(0);
- Row row2 = row.clone();
+ tmpMutation1.setWeight(rand.nextInt(Integer.MAX_VALUE));
+ tmpMutation2.setWeight(rand.nextInt(Integer.MAX_VALUE));
+ tmpMutation3.setWeight(Integer.MAX_VALUE);
- GenericTreeNode tmpMutation = new GenericTreeNode(row,1);
- tmpMutation.setChosenChange(tmpMutation.getPotential_changes().get(0));
+ tmpMutation1.addChild(tmpMutation2);
+ tmpMutation1.addChild(tmpMutation3);
- GenericTreeNode tmpMutation2 = new GenericTreeNode(row2,2);
-
tmpMutation2.setChosenChange(tmpMutation.getPotential_changes().get(0)); //
taking potential change fron mut1 just to be sure
+ tmpMutation2.propagateWeight();
+ tmpMutation3.propagateWeight();
+ Assert.assertEquals("Testing Weight propagation
",tmpMutation1.getSubTreeWeight(),tmpMutation2.getWeight()+tmpMutation3.getWeight());
- Assert.assertTrue(tmpMutation.compare(tmpMutation2));
+ tmpMutation2.setWeight(10);
+ tmpMutation3.setWeight(10);
- tmpMutation.getInitial_state_row().getContent().replace("id","-20");
+ tmpMutation2.propagateWeight();
+ tmpMutation3.propagateWeight();
- Assert.assertFalse(tmpMutation.compare(tmpMutation2));
+ tmpMutation1.setSubTreeWeight(0);
- tmpMutation.setChosenChange(tmpMutation.getPotential_changes().get(1));
-
- Assert.assertFalse(tmpMutation.compare(tmpMutation2));
-
- }
- @Ignore
- @Test
- public void findPathToMutationTest ()
- {
- GenericTreeNode rootMutation = new GenericTreeNode(null,0);
- rootMutation.setParent(null);
- rootMutation.setDepth(0);
- GenericTreeNode tmpMutation = new GenericTreeNode(null,1);
- tmpMutation.setParent(rootMutation);
- rootMutation.setDepth(1);
- GenericTreeNode tmpMutation3 = new GenericTreeNode(null,3);
- tmpMutation3.setParent(rootMutation);
- rootMutation.setDepth(1);
- GenericTreeNode tmpMutation2 = new GenericTreeNode(null,2);
- tmpMutation2.setParent(tmpMutation);
- rootMutation.setDepth(2);
- GenericTreeNode tmpMutation4 = new GenericTreeNode(null,4);
- tmpMutation4.setParent(tmpMutation3);
- rootMutation.setDepth(2);
-
- ArrayList<GenericTreeNode> res1 = new ArrayList<>();
- res1.add(tmpMutation2);
- res1.add(tmpMutation);
-
- ArrayList<GenericTreeNode> res2 = new ArrayList<>();
- res2.add(tmpMutation3);
- res2.add(tmpMutation4);
-
- ArrayList<ArrayList<GenericTreeNode>> finalPath = new ArrayList<>();
- finalPath.add(res1);
- finalPath.add(res2);
-
-
Assert.assertTrue(tmpMutation2.findPathToMutation(tmpMutation4).equals(finalPath));
+ Assert.assertFalse(tmpMutation1.getSubTreeWeight() ==
tmpMutation2.getWeight()+tmpMutation3.getWeight());
}
- @Ignore
- @Test
- public void isSingleChangeOnPathTest ()
- {
- TableColumn tmpTableColumn1 = new
TableColumn("test_table_column","bool","test_table");
- TableColumn tmpTableColumn2 = new
TableColumn("test_table_column","bool","test_table");
-
-
- GenericTreeNode rootMutation = new GenericTreeNode(null,0);
- rootMutation.setParent(null);
- rootMutation.setChosenChange(new
SingleChange(tmpTableColumn1,null,"1","3"));
- rootMutation.setDepth(0);
-
- GenericTreeNode tmpMutation = new GenericTreeNode(null,1);
- tmpMutation.setParent(rootMutation);
- rootMutation.setDepth(1);
- GenericTreeNode tmpMutation2 = new GenericTreeNode(null,2);
- tmpMutation2.setChosenChange(new
SingleChange(tmpTableColumn2,null,"1","2"));
- tmpMutation2.setParent(tmpMutation);
- rootMutation.setDepth(2);
-
- GenericTreeNode tmpMutationInPath = new GenericTreeNode(null,3);
- tmpMutationInPath.setParent(tmpMutation2);
- tmpMutationInPath.setChosenChange(new
SingleChange(tmpTableColumn1,null,"1","3"));
- rootMutation.setDepth(3);
-
-
Assert.assertFalse(tmpMutation2.isSingleChangeOnCurrentPath(rootMutation));
-
Assert.assertTrue(tmpMutationInPath.isSingleChangeOnCurrentPath(rootMutation));
-
- }
+// @Ignore
+// @Test
+// public void SingleChangeBasedOnWeightShouldNotReturnNull() throws
AssertionException
+// {
+// GenericTreeNode gtn1 = new GenericTreeNode(null,1,null,null,false);
+// gtn1.setPotential_changes(new ArrayList<>());
+//
+// GenericTreeNode gtn2= new GenericTreeNode(null,2,null,gtn1,false);
+// gtn2.setPotential_changes(new ArrayList<>());
+// gtn2.setWeight(10);
+//
+// GenericTreeNode gtn3 = new GenericTreeNode(null,3,null,gtn1,false);
+// gtn3.setPotential_changes(new ArrayList<>());
+// gtn3.setWeight(10);
+//
+// SingleChange sg1 = new SingleChange(null,null,"1","2");
+// SingleChange sg2 = new SingleChange(null,null,"1","3");
+// SingleChange sg3 = new SingleChange(null,null,"hello","hella");
+// SingleChange sg4 = new SingleChange(null,null,"f","t");
+//
+// gtn1.getPotential_changes().add(sg1);
+// gtn2.getPotential_changes().add(sg2);
+// gtn3.getPotential_changes().add(sg3);
+// gtn3.getPotential_changes().add(sg4);
+//
+// Assert.assertNotNull(gtn1.singleChangeBasedOnWeight());
+// }
+//
+// @Ignore
+// @Test
+// public void singleChangeAttachedMutationShouldMatch() // Not very Usefull
+// {
+// GenericTreeNode gtn1 = new GenericTreeNode(null,1,null,null,false);
+// String s1 = "1";
+// Object so1 = s1;
+// String s2 = "2";
+// Object so2 = s2;
+// SingleChange sg1 = new SingleChange(null,null,so1,so2);
+//
+// gtn1.setChosenChange(sg1);
+//
+// Assert.assertEquals("Testing singleChange Attached Mutation
consistency",gtn1.getChosenChange().getAttachedToMutation().getId(),gtn1.getId());
+//
+// }
+// @Ignore
+// @Test
+// public void NoNullMutationPossibilitiesTest() throws Exception
+// {
+//
+// String[] args = {
+// "-t", "pgsql",
+// "-db","sample_database2",
+// "-hostOptionalPort","127.0.0.1",
+// "-o", "target/integrationtesting/databaseServiceIT",
+// "-dp","postgresql-42.2.2.jar",
+// "-u", "feideus",
+// "-p", "feideus"
+// };
+//
+// Config config = new Config(args);
+// DatabaseMetaData databaseMetaData = sqlService.connect(config);
+// String schema = sqlService.getConnection().getSchema();
+// String catalog = sqlService.getConnection().getCatalog();
+// database = new Database(
+// databaseMetaData,
+// "DatabaseServiceIT",
+// catalog,
+// schema,
+// null
+// );
+// databaseService.gatheringSchemaDetails(config, database,
progressListener);
+//
+// PreparedStatement stmt = sqlService.prepareStatement("SELECT * FROM
test_table", database, null);
+// ResultSet rs = stmt.executeQuery();
+// QueryResponseParser parser = new QueryResponseParser();
+//
+// QueryResponse response =
parser.parse(rs,database.getTablesMap().get("test_table"));
+// GenericTreeNode tmpMutation = new
GenericTreeNode(response.getRows().get(0),1);
+//
Assert.assertFalse(tmpMutation.discoverMutationPossibilities(tmpMutation).contains("null"));
+//
+// }
+// @Ignore
+// @Test
+// public void injectAndUndoConsistencyTest() throws Exception
+// {
+// String[] args = {
+// "-t", "pgsql",
+// "-db","sample_database2",
+// "-hostOptionalPort","127.0.0.1",
+// "-o", "target/integrationtesting/databaseServiceIT",
+// "-dp","postgresql-42.2.2.jar",
+// "-u", "feideus",
+// "-p", "feideus"
+// };
+//
+// Config config = new Config(args);
+// DatabaseMetaData databaseMetaData = sqlService.connect(config);
+// String schema = sqlService.getConnection().getSchema();
+// String catalog = sqlService.getConnection().getCatalog();
+// Database database = new Database(
+// databaseMetaData,
+// "DatabaseServiceIT",
+// catalog,
+// schema,
+// null
+// );
+// databaseService.gatheringSchemaDetails(config, database,
progressListener);
+//
+//
+// PreparedStatement stmt = sqlService.prepareStatement("SELECT * FROM
test_table", database, null);
+// ResultSet rs = stmt.executeQuery();
+// QueryResponseParser parser = new QueryResponseParser();
+// QueryResponse response =
parser.parse(rs,database.getTablesMap().get("test_table"));
+//
+// Row row = response.getRows().get(0);
+// GenericTreeNode tmpMutation = new GenericTreeNode(row,1);
+//
tmpMutation.setChosenChange(tmpMutation.getPotential_changes().get(0));
+// tmpMutation.initPostChangeRow();
+//
+//
+// Assert.assertTrue(tmpMutation.inject(sqlService,database,false));
//Test
+//
+// rs = stmt.executeQuery();
+// response =
parser.parse(rs,database.getTablesMap().get("test_table"));
+//
+//
Assert.assertTrue(response.getRows().get(0).compare(tmpMutation.getPost_change_row()));
+//
+// Assert.assertTrue(tmpMutation.undo(sqlService,database)); //Test
+//
+// rs = stmt.executeQuery();
+// response =
parser.parse(rs,database.getTablesMap().get("test_table"));
+//
+//
Assert.assertTrue(response.getRows().get(0).compare(tmpMutation.getInitial_state_row()));
+//
+// }
+// @Ignore
+// @Test
+// public void compareTest() throws Exception
+// {
+// String[] args = {
+// "-t", "pgsql",
+// "-db","sample_database2",
+// "-hostOptionalPort","127.0.0.1",
+// "-o", "target/integrationtesting/databaseServiceIT",
+// "-dp","postgresql-42.2.2.jar",
+// "-u", "feideus",
+// "-p", "feideus"
+// };
+//
+// Config config = new Config(args);
+// DatabaseMetaData databaseMetaData = sqlService.connect(config);
+// String schema = sqlService.getConnection().getSchema();
+// String catalog = sqlService.getConnection().getCatalog();
+// Database database = new Database(
+// databaseMetaData,
+// "DatabaseServiceIT",
+// catalog,
+// schema,
+// null
+// );
+// databaseService.gatheringSchemaDetails(config, database,
progressListener);
+//
+//
+// PreparedStatement stmt = sqlService.prepareStatement("SELECT * FROM
test_table", database, null);
+// ResultSet rs = stmt.executeQuery();
+// QueryResponseParser parser = new QueryResponseParser();
+// QueryResponse response =
parser.parse(rs,database.getTablesMap().get("test_table"));
+//
+// Row row = response.getRows().get(0);
+// Row row2 = row.clone();
+//
+// GenericTreeNode tmpMutation = new GenericTreeNode(row,1);
+//
tmpMutation.setChosenChange(tmpMutation.getPotential_changes().get(0));
+//
+// GenericTreeNode tmpMutation2 = new GenericTreeNode(row2,2);
+//
tmpMutation2.setChosenChange(tmpMutation.getPotential_changes().get(0)); //
taking potential change fron mut1 just to be sure
+//
+//
+// Assert.assertTrue(tmpMutation.compare(tmpMutation2));
+//
+// tmpMutation.getInitial_state_row().getContent().replace("id","-20");
+//
+// Assert.assertFalse(tmpMutation.compare(tmpMutation2));
+//
+//
tmpMutation.setChosenChange(tmpMutation.getPotential_changes().get(1));
+//
+// Assert.assertFalse(tmpMutation.compare(tmpMutation2));
+//
+// }
+// @Ignore
+// @Test
+// public void findPathToMutationTest ()
+// {
+// GenericTreeNode rootMutation = new GenericTreeNode(null,0);
+// rootMutation.setParent(null);
+// rootMutation.setDepth(0);
+// GenericTreeNode tmpMutation = new GenericTreeNode(null,1);
+// tmpMutation.setParent(rootMutation);
+// rootMutation.setDepth(1);
+// GenericTreeNode tmpMutation3 = new GenericTreeNode(null,3);
+// tmpMutation3.setParent(rootMutation);
+// rootMutation.setDepth(1);
+// GenericTreeNode tmpMutation2 = new GenericTreeNode(null,2);
+// tmpMutation2.setParent(tmpMutation);
+// rootMutation.setDepth(2);
+// GenericTreeNode tmpMutation4 = new GenericTreeNode(null,4);
+// tmpMutation4.setParent(tmpMutation3);
+// rootMutation.setDepth(2);
+//
+// ArrayList<GenericTreeNode> res1 = new ArrayList<>();
+// res1.add(tmpMutation2);
+// res1.add(tmpMutation);
+//
+// ArrayList<GenericTreeNode> res2 = new ArrayList<>();
+// res2.add(tmpMutation3);
+// res2.add(tmpMutation4);
+//
+// ArrayList<ArrayList<GenericTreeNode>> finalPath = new ArrayList<>();
+// finalPath.add(res1);
+// finalPath.add(res2);
+//
+//
Assert.assertTrue(tmpMutation2.findPathToMutation(tmpMutation4).equals(finalPath));
+//
+// }
+//
+// @Ignore
+// @Test
+// public void isSingleChangeOnPathTest ()
+// {
+// TableColumn tmpTableColumn1 = new
TableColumn("test_table_column","bool","test_table");
+// TableColumn tmpTableColumn2 = new
TableColumn("test_table_column","bool","test_table");
+//
+//
+// GenericTreeNode rootMutation = new GenericTreeNode(null,0);
+// rootMutation.setParent(null);
+// rootMutation.setChosenChange(new
SingleChange(tmpTableColumn1,null,"1","3"));
+// rootMutation.setDepth(0);
+//
+//
+// GenericTreeNode tmpMutation = new GenericTreeNode(null,1);
+// tmpMutation.setParent(rootMutation);
+// rootMutation.setDepth(1);
+//
+// GenericTreeNode tmpMutation2 = new GenericTreeNode(null,2);
+// tmpMutation2.setChosenChange(new
SingleChange(tmpTableColumn2,null,"1","2"));
+// tmpMutation2.setParent(tmpMutation);
+// rootMutation.setDepth(2);
+//
+// GenericTreeNode tmpMutationInPath = new GenericTreeNode(null,3);
+// tmpMutationInPath.setParent(tmpMutation2);
+// tmpMutationInPath.setChosenChange(new
SingleChange(tmpTableColumn1,null,"1","3"));
+// rootMutation.setDepth(3);
+//
+//
Assert.assertFalse(tmpMutation2.isSingleChangeOnCurrentPath(rootMutation));
+//
Assert.assertTrue(tmpMutationInPath.isSingleChangeOnCurrentPath(rootMutation));
+//
+// }
}
diff --git a/src/test/java/org/schemaspy/model/GenericTreeTest.java
b/src/test/java/org/schemaspy/model/GenericTreeTest.java
index 4493f88..4c91bcc 100644
--- a/src/test/java/org/schemaspy/model/GenericTreeTest.java
+++ b/src/test/java/org/schemaspy/model/GenericTreeTest.java
@@ -83,27 +83,27 @@ public class GenericTreeTest {
GenericTree tree = new GenericTree();
- GenericTreeNode tmpMutation = new GenericTreeNode(row,1);
+ GenericTreeNode tmpMutation = new GenericTreeNode(row,1,sqlService);
tmpMutation.setChosenChange(tmpMutation.getPotential_changes().get(0));
tmpMutation.setDepth(0);
- GenericTreeNode tmpMutation2 = new GenericTreeNode(row2,2);
+ GenericTreeNode tmpMutation2 = new GenericTreeNode(row2,2,sqlService);
tmpMutation2.setChosenChange(tmpMutation.getPotential_changes().get(0));
tmpMutation2.setDepth(1);
- GenericTreeNode tmpMutation3 = new GenericTreeNode(row3,3);
+ GenericTreeNode tmpMutation3 = new GenericTreeNode(row3,3,sqlService);
tmpMutation3.setChosenChange(tmpMutation.getPotential_changes().get(0));
tmpMutation3.setDepth(2);
- GenericTreeNode tmpMutation4 = new GenericTreeNode(row4,4);
+ GenericTreeNode tmpMutation4 = new GenericTreeNode(row4,4,sqlService);
tmpMutation4.setChosenChange(tmpMutation.getPotential_changes().get(0));
tmpMutation4.setDepth(1);
- GenericTreeNode tmpMutation5 = new GenericTreeNode(row5,5);
+ GenericTreeNode tmpMutation5 = new GenericTreeNode(row5,5,sqlService);
tmpMutation4.setChosenChange(tmpMutation.getPotential_changes().get(0));
tmpMutation4.setDepth(3);
- GenericTreeNode tmpMutation6 = new GenericTreeNode(row6,6);
+ GenericTreeNode tmpMutation6 = new GenericTreeNode(row6,6,sqlService);
tmpMutation6.setChosenChange(tmpMutation.getPotential_changes().get(0));
tmpMutation6.setDepth(4);
--
To stop receiving notification emails like this one, please contact
address@hidden
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] [taler-schemafuzz] branch master updated: Trying to work around @BeforeClass JUnit limits,
gnunet <=