[wip] add run tests
This commit is contained in:
parent
1c6f792711
commit
a5fc2071da
|
@ -1,22 +1,19 @@
|
|||
package app
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
_ "github.com/go-sql-driver/mysql"
|
||||
"gitnet.fr/deblan/database-anonymizer/config"
|
||||
"gitnet.fr/deblan/database-anonymizer/faker"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func GetApp() App {
|
||||
return App{
|
||||
func TestAppCreateSelectQuery(t *testing.T) {
|
||||
c := config.SchemaConfigAction{Table: "foo"}
|
||||
app := App{
|
||||
FakeManager: faker.NewFakeManager(),
|
||||
DbConfig: config.DatabaseConfig{Type: "mysql", Dsn: "mysql://foo:bar@tests"},
|
||||
}
|
||||
}
|
||||
|
||||
func TestAppCreateSelectQuery(t *testing.T) {
|
||||
c := config.SchemaConfigAction{Table: "foo"}
|
||||
app := GetApp()
|
||||
|
||||
if app.CreateSelectQuery(c) != "SELECT * FROM `foo`" {
|
||||
t.Fatalf("TestAppCreateSelectQuery: empty configured query check failed")
|
||||
|
@ -28,3 +25,38 @@ func TestAppCreateSelectQuery(t *testing.T) {
|
|||
t.Fatalf("TestAppCreateSelectQuery: configured query check failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAppDoAction(t *testing.T) {
|
||||
c := config.SchemaConfigAction{Table: "foo"}
|
||||
app := App{
|
||||
FakeManager: faker.NewFakeManager(),
|
||||
DbConfig: config.DatabaseConfig{Type: "mysql", Dsn: "mysql://foo:bar@tests"},
|
||||
}
|
||||
|
||||
if app.CreateSelectQuery(c) != "SELECT * FROM `foo`" {
|
||||
t.Fatalf("TestAppCreateSelectQuery: empty configured query check failed")
|
||||
}
|
||||
|
||||
c = config.SchemaConfigAction{Table: "foo", Query: "query"}
|
||||
|
||||
if app.CreateSelectQuery(c) != "query" {
|
||||
t.Fatalf("TestAppCreateSelectQuery: configured query check failed")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAppRun(t *testing.T) {
|
||||
databaseConfig, _ := config.LoadDatabaseConfig("mysql://tcp(service-mysql)/test")
|
||||
db, _ := sql.Open(databaseConfig.Type, databaseConfig.Dsn)
|
||||
schema, _ := config.LoadSchemaConfigFromFile("../tests/schema.yml")
|
||||
|
||||
app := App{}
|
||||
app.Run(db, schema, faker.NewFakeManager(), databaseConfig)
|
||||
|
||||
var count int
|
||||
row := db.QueryRow("SELECT COUNT(*) FROM `table_truncate1`")
|
||||
row.Scan(&count)
|
||||
|
||||
if count != 0 {
|
||||
t.Fatalf("TestAppRuny: table_truncate1 check failed")
|
||||
}
|
||||
}
|
||||
|
|
25
tests/mysql_data.sql
Normal file
25
tests/mysql_data.sql
Normal file
|
@ -0,0 +1,25 @@
|
|||
SET NAMES utf8;
|
||||
SET time_zone = '+00:00';
|
||||
SET foreign_key_checks = 0;
|
||||
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
DROP TABLE IF EXISTS `table_truncate1`;
|
||||
CREATE TABLE `table_truncate1` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
|
||||
DROP TABLE IF EXISTS `table_truncate2`;
|
||||
CREATE TABLE `table_truncate2` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`delete_me` tinyint(4) NOT NULL,
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
|
||||
|
||||
INSERT INTO `table_truncate2` (`id`, `delete_me`) VALUES
|
||||
(1, 1),
|
||||
(2, 1),
|
||||
(3, 0);
|
4
tests/schema.yml
Normal file
4
tests/schema.yml
Normal file
|
@ -0,0 +1,4 @@
|
|||
rules:
|
||||
actions:
|
||||
- table: table_truncate1
|
||||
truncate: false
|
Loading…
Reference in a new issue