text: package stenographer
  
  import (
  	"sync"
  
  	"github.com/onsi/ginkgo/types"
  )
  
  func NewFakeStenographerCall(method string, args ...interface{}) FakeStenographerCall {
  	return FakeStenographerCall{
  		Method: method,
  		Args:   args,
  	}
  }
  
  type FakeStenographer struct {
  	calls []FakeStenographerCall
  	lock  *sync.Mutex
  }
  
  type FakeStenographerCall struct {
  	Method string
  	Args   []interface{}
  }
  
  func NewFakeStenographer() *FakeStenographer {
  	stenographer := &FakeStenographer{
  		lock: &sync.Mutex{},
  	}
  	stenographer.Reset()
  	return stenographer
  }
  
  func (stenographer *FakeStenographer) Calls() []FakeStenographerCall {
  	stenographer.lock.Lock()
  	defer stenographer.lock.Unlock()
  
  	return stenographer.calls
  }
  
  func (stenographer *FakeStenographer) Reset() {
  	stenographer.lock.Lock()
  	defer stenographer.lock.Unlock()
  
  	stenographer.calls = make([]FakeStenographerCall, 0)
  }
  
  func (stenographer *FakeStenographer) CallsTo(method string) []FakeStenographerCall {
  	stenographer.lock.Lock()
  	defer stenographer.lock.Unlock()
  
  	results := make([]FakeStenographerCall, 0)
  	for _, call := range stenographer.calls {
  		if call.Method == method {
  			results = append(results, call)
  		}
  	}
  
  	return results
  }
  
  func (stenographer *FakeStenographer) registerCall(method string, args ...interface{}) {
  	stenographer.lock.Lock()
  	defer stenographer.lock.Unlock()
  
  	stenographer.calls = append(stenographer.calls, NewFakeStenographerCall(method, args...))
  }
  
  func (stenographer *FakeStenographer) AnnounceSuite(description string, randomSeed int64, randomizingAll bool, succinct bool) {
  	stenographer.registerCall("AnnounceSuite", description, randomSeed, randomizingAll, succinct)
  }
  
  func (stenographer *FakeStenographer) AnnounceAggregatedParallelRun(nodes int, succinct bool) {
  	stenographer.registerCall("AnnounceAggregatedParallelRun", nodes, succinct)
  }
  
  func (stenographer *FakeStenographer) AnnounceParallelRun(node int, nodes int, succinct bool) {
  	stenographer.registerCall("AnnounceParallelRun", node, nodes, succinct)
  }
  
  func (stenographer *FakeStenographer) AnnounceNumberOfSpecs(specsToRun int, total int, succinct bool) {
  	stenographer.registerCall("AnnounceNumberOfSpecs", specsToRun, total, succinct)
  }
  
  func (stenographer *FakeStenographer) AnnounceTotalNumberOfSpecs(total int, succinct bool) {
  	stenographer.registerCall("AnnounceTotalNumberOfSpecs", total, succinct)
  }
  
  func (stenographer *FakeStenographer) AnnounceSpecRunCompletion(summary *types.SuiteSummary, succinct bool) {
  	stenographer.registerCall("AnnounceSpecRunCompletion", summary, succinct)
  }
  
  func (stenographer *FakeStenographer) AnnounceSpecWillRun(spec *types.SpecSummary) {
  	stenographer.registerCall("AnnounceSpecWillRun", spec)
  }
  
  func (stenographer *FakeStenographer) AnnounceBeforeSuiteFailure(summary *types.SetupSummary, succinct bool, fullTrace bool) {
  	stenographer.registerCall("AnnounceBeforeSuiteFailure", summary, succinct, fullTrace)
  }
  
  func (stenographer *FakeStenographer) AnnounceAfterSuiteFailure(summary *types.SetupSummary, succinct bool, fullTrace bool) {
  	stenographer.registerCall("AnnounceAfterSuiteFailure", summary, succinct, fullTrace)
  }
  func (stenographer *FakeStenographer) AnnounceCapturedOutput(output string) {
  	stenographer.registerCall("AnnounceCapturedOutput", output)
  }
  
  func (stenographer *FakeStenographer) AnnounceSuccessfulSpec(spec *types.SpecSummary) {
  	stenographer.registerCall("AnnounceSuccessfulSpec", spec)
  }
  
  func (stenographer *FakeStenographer) AnnounceSuccessfulSlowSpec(spec *types.SpecSummary, succinct bool) {
  	stenographer.registerCall("AnnounceSuccessfulSlowSpec", spec, succinct)
  }
  
  func (stenographer *FakeStenographer) AnnounceSuccessfulMeasurement(spec *types.SpecSummary, succinct bool) {
  	stenographer.registerCall("AnnounceSuccessfulMeasurement", spec, succinct)
  }
  
  func (stenographer *FakeStenographer) AnnouncePendingSpec(spec *types.SpecSummary, noisy bool) {
  	stenographer.registerCall("AnnouncePendingSpec", spec, noisy)
  }
  
  func (stenographer *FakeStenographer) AnnounceSkippedSpec(spec *types.SpecSummary, succinct bool, fullTrace bool) {
  	stenographer.registerCall("AnnounceSkippedSpec", spec, succinct, fullTrace)
  }
  
  func (stenographer *FakeStenographer) AnnounceSpecTimedOut(spec *types.SpecSummary, succinct bool, fullTrace bool) {
  	stenographer.registerCall("AnnounceSpecTimedOut", spec, succinct, fullTrace)
  }
  
  func (stenographer *FakeStenographer) AnnounceSpecPanicked(spec *types.SpecSummary, succinct bool, fullTrace bool) {
  	stenographer.registerCall("AnnounceSpecPanicked", spec, succinct, fullTrace)
  }
  
  func (stenographer *FakeStenographer) AnnounceSpecFailed(spec *types.SpecSummary, succinct bool, fullTrace bool) {
  	stenographer.registerCall("AnnounceSpecFailed", spec, succinct, fullTrace)
  }
  
  func (stenographer *FakeStenographer) SummarizeFailures(summaries []*types.SpecSummary) {
  	stenographer.registerCall("SummarizeFailures", summaries)
  }
  