package main import ( "strings" "testing" ) var ( tbdata string = `implement more #tests extract code out of #main support cgi/fast-cgi in #main` ) func TestNoArgs(t *testing.T) { // Configure the handlers ... // Use a collecting handler to catch all tasks right after they are parsed // so we have something to easily compare against the final stage's output collectTest, outputTest := collecting() collectFinal, outputFinal := collecting() handlers := []handler{collectTest, counting(), tracing(), cutoff(), collectFinal} // ... and execute them against the sample tbdata reader := strings.NewReader(tbdata) exit := process(reader, handlers) if exit != 0 { t.Error("Unexpected exit code.", exit) } initial := outputTest() result := outputFinal() if len(result) != 2 { t.Error("Unexpected result length", 2) } if result[0] != initial[0] { t.Error("Unexpected task at result[0]", result[0]) } if result[1] != initial[1] { t.Error("Unexpected task at result[1]", result[1]) } } func TestArgs(t *testing.T) { // Configure the handlers ... // Use a collecting handler to catch all tasks right after they are parsed // so we have something to easily compare against the final stage's output collectTest, outputTest := collecting() collectFinal, outputFinal := collecting() handlers := []handler{collectTest, counting(), tracing(), matching([]string{"main"}), collectFinal} // ... and execute them against the sample tbdata reader := strings.NewReader(tbdata) exit := process(reader, handlers) if exit != 0 { t.Error("Unexpected exit code.", exit) } initial := outputTest() result := outputFinal() if len(result) != 2 { t.Error("Unexpected result length", 2) } if result[0] != initial[1] { t.Error("Unexpected task at result[0]", result[0]) } if result[1] != initial[2] { t.Error("Unexpected task at result[1]", result[1]) } }