package binlog

import (
	"fmt"
	"os"
	"testing"
	"time"
)

func TestParse(t *testing.T) {
	ParseBinlogFile("./test/mysql-bin.000023", func(transaction Transaction) {
		fmt.Println(transaction)
	})
}

func TestParseFilter(t *testing.T) {
	ParseBinlogWithFilter("./test/mysql-bin.000023", 0, BinlogFilter{
		IncludeGtid: "",
		ExcludeGtid: "",
		StartPos:    0,
		EndPos:      0,
		StartDate:   time.Time{},
		EndDate:     time.Time{},
		BigThan:     0,
		SmallThan:   0,
	}, func(transaction Transaction) {
		fmt.Println(transaction)
	})
}

func TestParseExternal(t *testing.T) {
	file := `C:\mysql-bin.000001`
	if _, err := os.Stat(file); err != nil {
		return
	}
	ParseBinlogWithFilter(file, 0, BinlogFilter{
		OnlyShowGtid: true,
	}, func(transaction Transaction) {
		fmt.Println(transaction)
	})
}
