diff options
Diffstat (limited to 'flow-cleaner_test.go')
| -rw-r--r-- | flow-cleaner_test.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/flow-cleaner_test.go b/flow-cleaner_test.go index a8f9f55..51283a7 100644 --- a/flow-cleaner_test.go +++ b/flow-cleaner_test.go @@ -6,7 +6,9 @@ import ( "fmt" _ "github.com/go-sql-driver/mysql" "io" + "io/ioutil" "os" + "strings" "testing" "time" ) @@ -25,9 +27,58 @@ func TestCleaningFromJSON(t *testing.T) { DBPass: "nil", } + fmt.Println("== Testing to process from stdin ==") + prepareDB(t, cfg) testProcessFromStdin(t, cfg) time.Sleep(15 * time.Second) controlDB(t, cfg) + fmt.Println("== Finished testing to process from stdin ==") +} + +func TestCleaningFromDB(t *testing.T) { + cfg := &Config{ + Limit: 0, + Interval: "5min", + Epsilon: 0, + DataSource: "mysql", + + DBConn: "", + DBName: "test", + RawTable: "test_raw", + CleanTable: "test_clean", + DBUser: "flowcleaner", + DBPass: "nil", + } + + fmt.Println("== Testing to process from DB ==") + prepareDB(t, cfg) + processFromDB(cfg) + controlDB(t, cfg) + fmt.Println("== Finished testing to process from DB ==") +} + +func prepareDB(t *testing.T, cfg *Config) { + db, err := sql.Open("mysql", cfg.DBUser+":"+cfg.DBPass+"@"+cfg.DBConn+"/"+cfg.DBName) + if err != nil { + t.Fatal("Failed to connect to db:", err) + } + defer db.Close() + + file, err := ioutil.ReadFile("testdata/dbTestSetup.mysql") + if err != nil { + t.Fatal(err) + } + + for _, query := range strings.Split(string(file), ";") { + query = strings.TrimSpace(query) + if len(query) > 0 { + _, err = db.Exec(query + ";") + if err != nil { + fmt.Println("QUERY:", query) + t.Fatal(err) + } + } + } } func testProcessFromStdin(t *testing.T, cfg *Config) { |
