package check_test import ( "fmt" "path/filepath" "runtime" . "gopkg.in/check.v1" ) var _ = Suite(&reporterS{}) type reporterS struct { testFile string } func (s *reporterS) SetUpSuite(c *C) { _, fileName, _, ok := runtime.Caller(0) c.Assert(ok, Equals, true) s.testFile = filepath.Base(fileName) } func (s *reporterS) TestWrite(c *C) { testString := "test string" output := String{} dummyStream := true dummyVerbose := true o := NewOutputWriter(&output, dummyStream, dummyVerbose) o.Write([]byte(testString)) c.Assert(output.value, Equals, testString) } func (s *reporterS) TestWriteCallStartedWithStreamFlag(c *C) { testLabel := "test started label" stream := true output := String{} dummyVerbose := true o := NewOutputWriter(&output, stream, dummyVerbose) o.WriteCallStarted(testLabel, c) expected := fmt.Sprintf("%s: %s:\\d+: %s\n", testLabel, s.testFile, c.TestName()) c.Assert(output.value, Matches, expected) } func (s *reporterS) TestWriteCallStartedWithoutStreamFlag(c *C) { stream := false output := String{} dummyLabel := "dummy" dummyVerbose := true o := NewOutputWriter(&output, stream, dummyVerbose) o.WriteCallStarted(dummyLabel, c) c.Assert(output.value, Equals, "") } func (s *reporterS) TestWriteCallProblemWithStreamFlag(c *C) { testLabel := "test problem label" stream := true output := String{} dummyVerbose := true o := NewOutputWriter(&output, stream, dummyVerbose) o.WriteCallProblem(testLabel, c) expected := fmt.Sprintf("%s: %s:\\d+: %s\n\n", testLabel, s.testFile, c.TestName()) c.Assert(output.value, Matches, expected) } func (s *reporterS) TestWriteCallProblemWithoutStreamFlag(c *C) { testLabel := "test problem label" stream := false output := String{} dummyVerbose := true o := NewOutputWriter(&output, stream, dummyVerbose) o.WriteCallProblem(testLabel, c) expected := fmt.Sprintf(""+ "\n"+ "----------------------------------------------------------------------\n"+ "%s: %s:\\d+: %s\n\n", testLabel, s.testFile, c.TestName()) c.Assert(output.value, Matches, expected) } func (s *reporterS) TestWriteCallProblemWithoutStreamFlagWithLog(c *C) { testLabel := "test problem label" testLog := "test log" stream := false output := String{} dummyVerbose := true o := NewOutputWriter(&output, stream, dummyVerbose) c.Log(testLog) o.WriteCallProblem(testLabel, c) expected := fmt.Sprintf(""+ "\n"+ "----------------------------------------------------------------------\n"+ "%s: %s:\\d+: %s\n\n%s\n", testLabel, s.testFile, c.TestName(), testLog) c.Assert(output.value, Matches, expected) } func (s *reporterS) TestWriteCallSuccessWithStreamFlag(c *C) { testLabel := "test success label" stream := true output := String{} dummyVerbose := true o := NewOutputWriter(&output, stream, dummyVerbose) o.WriteCallSuccess(testLabel, c) expected := fmt.Sprintf("%s: %s:\\d+: %s\t\\d\\.\\d+s\n\n", testLabel, s.testFile, c.TestName()) c.Assert(output.value, Matches, expected) } func (s *reporterS) TestWriteCallSuccessWithStreamFlagAndReason(c *C) { testLabel := "test success label" testReason := "test skip reason" stream := true output := String{} dummyVerbose := true o := NewOutputWriter(&output, stream, dummyVerbose) c.FakeSkip(testReason) o.WriteCallSuccess(testLabel, c) expected := fmt.Sprintf("%s: %s:\\d+: %s \\(%s\\)\t\\d\\.\\d+s\n\n", testLabel, s.testFile, c.TestName(), testReason) c.Assert(output.value, Matches, expected) } func (s *reporterS) TestWriteCallSuccessWithoutStreamFlagWithVerboseFlag(c *C) { testLabel := "test success label" stream := false verbose := true output := String{} o := NewOutputWriter(&output, stream, verbose) o.WriteCallSuccess(testLabel, c) expected := fmt.Sprintf("%s: %s:\\d+: %s\t\\d\\.\\d+s\n", testLabel, s.testFile, c.TestName()) c.Assert(output.value, Matches, expected) } func (s *reporterS) TestWriteCallSuccessWithoutStreamFlagWithoutVerboseFlag(c *C) { testLabel := "test success label" stream := false verbose := false output := String{} o := NewOutputWriter(&output, stream, verbose) o.WriteCallSuccess(testLabel, c) c.Assert(output.value, Equals, "") }