github.com/geofffranks/garden-linux@v0.0.0-20160715111146-26c893169cfa/process_tracker/writer/fake_writer_test.go (about) 1 package writer_test 2 3 import "sync" 4 5 type fakeWriter struct { 6 mu sync.Mutex 7 nWriteReturn int 8 errWriteReturn error 9 bytesWritten []byte 10 writeCallCount int 11 12 errCloseReturn error 13 closeCallCount int 14 } 15 16 func (fw *fakeWriter) Write(p []byte) (int, error) { 17 fw.mu.Lock() 18 defer fw.mu.Unlock() 19 20 fw.writeCallCount++ 21 if fw.errWriteReturn != nil { 22 return 0, fw.errWriteReturn 23 } 24 fw.bytesWritten = p 25 return fw.nWriteReturn, nil 26 } 27 28 func (fw *fakeWriter) Close() error { 29 fw.mu.Lock() 30 defer fw.mu.Unlock() 31 32 fw.closeCallCount++ 33 if fw.errCloseReturn != nil { 34 return fw.errCloseReturn 35 } 36 return nil 37 } 38 39 func (fw *fakeWriter) writeArgument() []byte { 40 fw.mu.Lock() 41 defer fw.mu.Unlock() 42 43 return fw.bytesWritten 44 } 45 46 func (fw *fakeWriter) writeCalls() int { 47 fw.mu.Lock() 48 defer fw.mu.Unlock() 49 50 return fw.writeCallCount 51 } 52 53 func (fw *fakeWriter) closeCalls() int { 54 fw.mu.Lock() 55 defer fw.mu.Unlock() 56 57 return fw.closeCallCount 58 }