Example #1
0
func (td *TearDown) TearDown(tdb *stock.StockDB, t *testing.T) error {
	sort.Sort(td) // sort actions so that CREATE is reversed last
	for _, change := range *td {
		var err error = nil
		switch change.Action {
		case CREATE:
			// reverse of table creation is dropping the table
			exec := strings.Join([]string{"DROP TABLE ", change.Table}, "")
			_, err = tdb.Exec(exec)
		case INSERT:
			// reverse of insert is delete, symbol and time is key
			exec := strings.Join([]string{"DELETE FROM ", change.Table, " WHERE Symbol = $1 AND Time = $2"}, "")
			_, err = tdb.Exec(exec, change.Key.Symbol, stock.TimeForSQL(change.Key.Date))
		}
		if err != nil {
			return err
		}
	}
	return nil
}