// Code generated by counterfeiter. DO NOT EDIT. package sfufakes import ( "sync" "github.com/livekit/livekit-server/pkg/sfu" "github.com/livekit/livekit-server/pkg/sfu/buffer" "github.com/livekit/protocol/livekit" webrtc "github.com/pion/webrtc/v4" ) type FakeTrackSender struct { CloseStub func() closeMutex sync.RWMutex closeArgsForCall []struct { } HandleRTCPSenderReportDataStub func(webrtc.PayloadType, int32, *livekit.RTCPSenderReportState) error handleRTCPSenderReportDataMutex sync.RWMutex handleRTCPSenderReportDataArgsForCall []struct { arg1 webrtc.PayloadType arg2 int32 arg3 *livekit.RTCPSenderReportState } handleRTCPSenderReportDataReturns struct { result1 error } handleRTCPSenderReportDataReturnsOnCall map[int]struct { result1 error } IDStub func() string iDMutex sync.RWMutex iDArgsForCall []struct { } iDReturns struct { result1 string } iDReturnsOnCall map[int]struct { result1 string } IsClosedStub func() bool isClosedMutex sync.RWMutex isClosedArgsForCall []struct { } isClosedReturns struct { result1 bool } isClosedReturnsOnCall map[int]struct { result1 bool } ReceiverRestartStub func(sfu.TrackReceiver) receiverRestartMutex sync.RWMutex receiverRestartArgsForCall []struct { arg1 sfu.TrackReceiver } ResyncStub func() resyncMutex sync.RWMutex resyncArgsForCall []struct { } SetReceiverStub func(sfu.TrackReceiver) setReceiverMutex sync.RWMutex setReceiverArgsForCall []struct { arg1 sfu.TrackReceiver } SubscriberIDStub func() livekit.ParticipantID subscriberIDMutex sync.RWMutex subscriberIDArgsForCall []struct { } subscriberIDReturns struct { result1 livekit.ParticipantID } subscriberIDReturnsOnCall map[int]struct { result1 livekit.ParticipantID } UpTrackBitrateAvailabilityChangeStub func() upTrackBitrateAvailabilityChangeMutex sync.RWMutex upTrackBitrateAvailabilityChangeArgsForCall []struct { } UpTrackBitrateReportStub func([]int32, sfu.Bitrates) upTrackBitrateReportMutex sync.RWMutex upTrackBitrateReportArgsForCall []struct { arg1 []int32 arg2 sfu.Bitrates } UpTrackLayersChangeStub func() upTrackLayersChangeMutex sync.RWMutex upTrackLayersChangeArgsForCall []struct { } UpTrackMaxPublishedLayerChangeStub func(int32) upTrackMaxPublishedLayerChangeMutex sync.RWMutex upTrackMaxPublishedLayerChangeArgsForCall []struct { arg1 int32 } UpTrackMaxTemporalLayerSeenChangeStub func(int32) upTrackMaxTemporalLayerSeenChangeMutex sync.RWMutex upTrackMaxTemporalLayerSeenChangeArgsForCall []struct { arg1 int32 } WriteRTPStub func(*buffer.ExtPacket, int32) int32 writeRTPMutex sync.RWMutex writeRTPArgsForCall []struct { arg1 *buffer.ExtPacket arg2 int32 } writeRTPReturns struct { result1 int32 } writeRTPReturnsOnCall map[int]struct { result1 int32 } invocations map[string][][]interface{} invocationsMutex sync.RWMutex } func (fake *FakeTrackSender) Close() { fake.closeMutex.Lock() fake.closeArgsForCall = append(fake.closeArgsForCall, struct { }{}) stub := fake.CloseStub fake.recordInvocation("Close", []interface{}{}) fake.closeMutex.Unlock() if stub != nil { fake.CloseStub() } } func (fake *FakeTrackSender) CloseCallCount() int { fake.closeMutex.RLock() defer fake.closeMutex.RUnlock() return len(fake.closeArgsForCall) } func (fake *FakeTrackSender) CloseCalls(stub func()) { fake.closeMutex.Lock() defer fake.closeMutex.Unlock() fake.CloseStub = stub } func (fake *FakeTrackSender) HandleRTCPSenderReportData(arg1 webrtc.PayloadType, arg2 int32, arg3 *livekit.RTCPSenderReportState) error { fake.handleRTCPSenderReportDataMutex.Lock() ret, specificReturn := fake.handleRTCPSenderReportDataReturnsOnCall[len(fake.handleRTCPSenderReportDataArgsForCall)] fake.handleRTCPSenderReportDataArgsForCall = append(fake.handleRTCPSenderReportDataArgsForCall, struct { arg1 webrtc.PayloadType arg2 int32 arg3 *livekit.RTCPSenderReportState }{arg1, arg2, arg3}) stub := fake.HandleRTCPSenderReportDataStub fakeReturns := fake.handleRTCPSenderReportDataReturns fake.recordInvocation("HandleRTCPSenderReportData", []interface{}{arg1, arg2, arg3}) fake.handleRTCPSenderReportDataMutex.Unlock() if stub != nil { return stub(arg1, arg2, arg3) } if specificReturn { return ret.result1 } return fakeReturns.result1 } func (fake *FakeTrackSender) HandleRTCPSenderReportDataCallCount() int { fake.handleRTCPSenderReportDataMutex.RLock() defer fake.handleRTCPSenderReportDataMutex.RUnlock() return len(fake.handleRTCPSenderReportDataArgsForCall) } func (fake *FakeTrackSender) HandleRTCPSenderReportDataCalls(stub func(webrtc.PayloadType, int32, *livekit.RTCPSenderReportState) error) { fake.handleRTCPSenderReportDataMutex.Lock() defer fake.handleRTCPSenderReportDataMutex.Unlock() fake.HandleRTCPSenderReportDataStub = stub } func (fake *FakeTrackSender) HandleRTCPSenderReportDataArgsForCall(i int) (webrtc.PayloadType, int32, *livekit.RTCPSenderReportState) { fake.handleRTCPSenderReportDataMutex.RLock() defer fake.handleRTCPSenderReportDataMutex.RUnlock() argsForCall := fake.handleRTCPSenderReportDataArgsForCall[i] return argsForCall.arg1, argsForCall.arg2, argsForCall.arg3 } func (fake *FakeTrackSender) HandleRTCPSenderReportDataReturns(result1 error) { fake.handleRTCPSenderReportDataMutex.Lock() defer fake.handleRTCPSenderReportDataMutex.Unlock() fake.HandleRTCPSenderReportDataStub = nil fake.handleRTCPSenderReportDataReturns = struct { result1 error }{result1} } func (fake *FakeTrackSender) HandleRTCPSenderReportDataReturnsOnCall(i int, result1 error) { fake.handleRTCPSenderReportDataMutex.Lock() defer fake.handleRTCPSenderReportDataMutex.Unlock() fake.HandleRTCPSenderReportDataStub = nil if fake.handleRTCPSenderReportDataReturnsOnCall == nil { fake.handleRTCPSenderReportDataReturnsOnCall = make(map[int]struct { result1 error }) } fake.handleRTCPSenderReportDataReturnsOnCall[i] = struct { result1 error }{result1} } func (fake *FakeTrackSender) ID() string { fake.iDMutex.Lock() ret, specificReturn := fake.iDReturnsOnCall[len(fake.iDArgsForCall)] fake.iDArgsForCall = append(fake.iDArgsForCall, struct { }{}) stub := fake.IDStub fakeReturns := fake.iDReturns fake.recordInvocation("ID", []interface{}{}) fake.iDMutex.Unlock() if stub != nil { return stub() } if specificReturn { return ret.result1 } return fakeReturns.result1 } func (fake *FakeTrackSender) IDCallCount() int { fake.iDMutex.RLock() defer fake.iDMutex.RUnlock() return len(fake.iDArgsForCall) } func (fake *FakeTrackSender) IDCalls(stub func() string) { fake.iDMutex.Lock() defer fake.iDMutex.Unlock() fake.IDStub = stub } func (fake *FakeTrackSender) IDReturns(result1 string) { fake.iDMutex.Lock() defer fake.iDMutex.Unlock() fake.IDStub = nil fake.iDReturns = struct { result1 string }{result1} } func (fake *FakeTrackSender) IDReturnsOnCall(i int, result1 string) { fake.iDMutex.Lock() defer fake.iDMutex.Unlock() fake.IDStub = nil if fake.iDReturnsOnCall == nil { fake.iDReturnsOnCall = make(map[int]struct { result1 string }) } fake.iDReturnsOnCall[i] = struct { result1 string }{result1} } func (fake *FakeTrackSender) IsClosed() bool { fake.isClosedMutex.Lock() ret, specificReturn := fake.isClosedReturnsOnCall[len(fake.isClosedArgsForCall)] fake.isClosedArgsForCall = append(fake.isClosedArgsForCall, struct { }{}) stub := fake.IsClosedStub fakeReturns := fake.isClosedReturns fake.recordInvocation("IsClosed", []interface{}{}) fake.isClosedMutex.Unlock() if stub != nil { return stub() } if specificReturn { return ret.result1 } return fakeReturns.result1 } func (fake *FakeTrackSender) IsClosedCallCount() int { fake.isClosedMutex.RLock() defer fake.isClosedMutex.RUnlock() return len(fake.isClosedArgsForCall) } func (fake *FakeTrackSender) IsClosedCalls(stub func() bool) { fake.isClosedMutex.Lock() defer fake.isClosedMutex.Unlock() fake.IsClosedStub = stub } func (fake *FakeTrackSender) IsClosedReturns(result1 bool) { fake.isClosedMutex.Lock() defer fake.isClosedMutex.Unlock() fake.IsClosedStub = nil fake.isClosedReturns = struct { result1 bool }{result1} } func (fake *FakeTrackSender) IsClosedReturnsOnCall(i int, result1 bool) { fake.isClosedMutex.Lock() defer fake.isClosedMutex.Unlock() fake.IsClosedStub = nil if fake.isClosedReturnsOnCall == nil { fake.isClosedReturnsOnCall = make(map[int]struct { result1 bool }) } fake.isClosedReturnsOnCall[i] = struct { result1 bool }{result1} } func (fake *FakeTrackSender) ReceiverRestart(arg1 sfu.TrackReceiver) { fake.receiverRestartMutex.Lock() fake.receiverRestartArgsForCall = append(fake.receiverRestartArgsForCall, struct { arg1 sfu.TrackReceiver }{arg1}) stub := fake.ReceiverRestartStub fake.recordInvocation("ReceiverRestart", []interface{}{arg1}) fake.receiverRestartMutex.Unlock() if stub != nil { fake.ReceiverRestartStub(arg1) } } func (fake *FakeTrackSender) ReceiverRestartCallCount() int { fake.receiverRestartMutex.RLock() defer fake.receiverRestartMutex.RUnlock() return len(fake.receiverRestartArgsForCall) } func (fake *FakeTrackSender) ReceiverRestartCalls(stub func(sfu.TrackReceiver)) { fake.receiverRestartMutex.Lock() defer fake.receiverRestartMutex.Unlock() fake.ReceiverRestartStub = stub } func (fake *FakeTrackSender) ReceiverRestartArgsForCall(i int) sfu.TrackReceiver { fake.receiverRestartMutex.RLock() defer fake.receiverRestartMutex.RUnlock() argsForCall := fake.receiverRestartArgsForCall[i] return argsForCall.arg1 } func (fake *FakeTrackSender) Resync() { fake.resyncMutex.Lock() fake.resyncArgsForCall = append(fake.resyncArgsForCall, struct { }{}) stub := fake.ResyncStub fake.recordInvocation("Resync", []interface{}{}) fake.resyncMutex.Unlock() if stub != nil { fake.ResyncStub() } } func (fake *FakeTrackSender) ResyncCallCount() int { fake.resyncMutex.RLock() defer fake.resyncMutex.RUnlock() return len(fake.resyncArgsForCall) } func (fake *FakeTrackSender) ResyncCalls(stub func()) { fake.resyncMutex.Lock() defer fake.resyncMutex.Unlock() fake.ResyncStub = stub } func (fake *FakeTrackSender) SetReceiver(arg1 sfu.TrackReceiver) { fake.setReceiverMutex.Lock() fake.setReceiverArgsForCall = append(fake.setReceiverArgsForCall, struct { arg1 sfu.TrackReceiver }{arg1}) stub := fake.SetReceiverStub fake.recordInvocation("SetReceiver", []interface{}{arg1}) fake.setReceiverMutex.Unlock() if stub != nil { fake.SetReceiverStub(arg1) } } func (fake *FakeTrackSender) SetReceiverCallCount() int { fake.setReceiverMutex.RLock() defer fake.setReceiverMutex.RUnlock() return len(fake.setReceiverArgsForCall) } func (fake *FakeTrackSender) SetReceiverCalls(stub func(sfu.TrackReceiver)) { fake.setReceiverMutex.Lock() defer fake.setReceiverMutex.Unlock() fake.SetReceiverStub = stub } func (fake *FakeTrackSender) SetReceiverArgsForCall(i int) sfu.TrackReceiver { fake.setReceiverMutex.RLock() defer fake.setReceiverMutex.RUnlock() argsForCall := fake.setReceiverArgsForCall[i] return argsForCall.arg1 } func (fake *FakeTrackSender) SubscriberID() livekit.ParticipantID { fake.subscriberIDMutex.Lock() ret, specificReturn := fake.subscriberIDReturnsOnCall[len(fake.subscriberIDArgsForCall)] fake.subscriberIDArgsForCall = append(fake.subscriberIDArgsForCall, struct { }{}) stub := fake.SubscriberIDStub fakeReturns := fake.subscriberIDReturns fake.recordInvocation("SubscriberID", []interface{}{}) fake.subscriberIDMutex.Unlock() if stub != nil { return stub() } if specificReturn { return ret.result1 } return fakeReturns.result1 } func (fake *FakeTrackSender) SubscriberIDCallCount() int { fake.subscriberIDMutex.RLock() defer fake.subscriberIDMutex.RUnlock() return len(fake.subscriberIDArgsForCall) } func (fake *FakeTrackSender) SubscriberIDCalls(stub func() livekit.ParticipantID) { fake.subscriberIDMutex.Lock() defer fake.subscriberIDMutex.Unlock() fake.SubscriberIDStub = stub } func (fake *FakeTrackSender) SubscriberIDReturns(result1 livekit.ParticipantID) { fake.subscriberIDMutex.Lock() defer fake.subscriberIDMutex.Unlock() fake.SubscriberIDStub = nil fake.subscriberIDReturns = struct { result1 livekit.ParticipantID }{result1} } func (fake *FakeTrackSender) SubscriberIDReturnsOnCall(i int, result1 livekit.ParticipantID) { fake.subscriberIDMutex.Lock() defer fake.subscriberIDMutex.Unlock() fake.SubscriberIDStub = nil if fake.subscriberIDReturnsOnCall == nil { fake.subscriberIDReturnsOnCall = make(map[int]struct { result1 livekit.ParticipantID }) } fake.subscriberIDReturnsOnCall[i] = struct { result1 livekit.ParticipantID }{result1} } func (fake *FakeTrackSender) UpTrackBitrateAvailabilityChange() { fake.upTrackBitrateAvailabilityChangeMutex.Lock() fake.upTrackBitrateAvailabilityChangeArgsForCall = append(fake.upTrackBitrateAvailabilityChangeArgsForCall, struct { }{}) stub := fake.UpTrackBitrateAvailabilityChangeStub fake.recordInvocation("UpTrackBitrateAvailabilityChange", []interface{}{}) fake.upTrackBitrateAvailabilityChangeMutex.Unlock() if stub != nil { fake.UpTrackBitrateAvailabilityChangeStub() } } func (fake *FakeTrackSender) UpTrackBitrateAvailabilityChangeCallCount() int { fake.upTrackBitrateAvailabilityChangeMutex.RLock() defer fake.upTrackBitrateAvailabilityChangeMutex.RUnlock() return len(fake.upTrackBitrateAvailabilityChangeArgsForCall) } func (fake *FakeTrackSender) UpTrackBitrateAvailabilityChangeCalls(stub func()) { fake.upTrackBitrateAvailabilityChangeMutex.Lock() defer fake.upTrackBitrateAvailabilityChangeMutex.Unlock() fake.UpTrackBitrateAvailabilityChangeStub = stub } func (fake *FakeTrackSender) UpTrackBitrateReport(arg1 []int32, arg2 sfu.Bitrates) { var arg1Copy []int32 if arg1 != nil { arg1Copy = make([]int32, len(arg1)) copy(arg1Copy, arg1) } fake.upTrackBitrateReportMutex.Lock() fake.upTrackBitrateReportArgsForCall = append(fake.upTrackBitrateReportArgsForCall, struct { arg1 []int32 arg2 sfu.Bitrates }{arg1Copy, arg2}) stub := fake.UpTrackBitrateReportStub fake.recordInvocation("UpTrackBitrateReport", []interface{}{arg1Copy, arg2}) fake.upTrackBitrateReportMutex.Unlock() if stub != nil { fake.UpTrackBitrateReportStub(arg1, arg2) } } func (fake *FakeTrackSender) UpTrackBitrateReportCallCount() int { fake.upTrackBitrateReportMutex.RLock() defer fake.upTrackBitrateReportMutex.RUnlock() return len(fake.upTrackBitrateReportArgsForCall) } func (fake *FakeTrackSender) UpTrackBitrateReportCalls(stub func([]int32, sfu.Bitrates)) { fake.upTrackBitrateReportMutex.Lock() defer fake.upTrackBitrateReportMutex.Unlock() fake.UpTrackBitrateReportStub = stub } func (fake *FakeTrackSender) UpTrackBitrateReportArgsForCall(i int) ([]int32, sfu.Bitrates) { fake.upTrackBitrateReportMutex.RLock() defer fake.upTrackBitrateReportMutex.RUnlock() argsForCall := fake.upTrackBitrateReportArgsForCall[i] return argsForCall.arg1, argsForCall.arg2 } func (fake *FakeTrackSender) UpTrackLayersChange() { fake.upTrackLayersChangeMutex.Lock() fake.upTrackLayersChangeArgsForCall = append(fake.upTrackLayersChangeArgsForCall, struct { }{}) stub := fake.UpTrackLayersChangeStub fake.recordInvocation("UpTrackLayersChange", []interface{}{}) fake.upTrackLayersChangeMutex.Unlock() if stub != nil { fake.UpTrackLayersChangeStub() } } func (fake *FakeTrackSender) UpTrackLayersChangeCallCount() int { fake.upTrackLayersChangeMutex.RLock() defer fake.upTrackLayersChangeMutex.RUnlock() return len(fake.upTrackLayersChangeArgsForCall) } func (fake *FakeTrackSender) UpTrackLayersChangeCalls(stub func()) { fake.upTrackLayersChangeMutex.Lock() defer fake.upTrackLayersChangeMutex.Unlock() fake.UpTrackLayersChangeStub = stub } func (fake *FakeTrackSender) UpTrackMaxPublishedLayerChange(arg1 int32) { fake.upTrackMaxPublishedLayerChangeMutex.Lock() fake.upTrackMaxPublishedLayerChangeArgsForCall = append(fake.upTrackMaxPublishedLayerChangeArgsForCall, struct { arg1 int32 }{arg1}) stub := fake.UpTrackMaxPublishedLayerChangeStub fake.recordInvocation("UpTrackMaxPublishedLayerChange", []interface{}{arg1}) fake.upTrackMaxPublishedLayerChangeMutex.Unlock() if stub != nil { fake.UpTrackMaxPublishedLayerChangeStub(arg1) } } func (fake *FakeTrackSender) UpTrackMaxPublishedLayerChangeCallCount() int { fake.upTrackMaxPublishedLayerChangeMutex.RLock() defer fake.upTrackMaxPublishedLayerChangeMutex.RUnlock() return len(fake.upTrackMaxPublishedLayerChangeArgsForCall) } func (fake *FakeTrackSender) UpTrackMaxPublishedLayerChangeCalls(stub func(int32)) { fake.upTrackMaxPublishedLayerChangeMutex.Lock() defer fake.upTrackMaxPublishedLayerChangeMutex.Unlock() fake.UpTrackMaxPublishedLayerChangeStub = stub } func (fake *FakeTrackSender) UpTrackMaxPublishedLayerChangeArgsForCall(i int) int32 { fake.upTrackMaxPublishedLayerChangeMutex.RLock() defer fake.upTrackMaxPublishedLayerChangeMutex.RUnlock() argsForCall := fake.upTrackMaxPublishedLayerChangeArgsForCall[i] return argsForCall.arg1 } func (fake *FakeTrackSender) UpTrackMaxTemporalLayerSeenChange(arg1 int32) { fake.upTrackMaxTemporalLayerSeenChangeMutex.Lock() fake.upTrackMaxTemporalLayerSeenChangeArgsForCall = append(fake.upTrackMaxTemporalLayerSeenChangeArgsForCall, struct { arg1 int32 }{arg1}) stub := fake.UpTrackMaxTemporalLayerSeenChangeStub fake.recordInvocation("UpTrackMaxTemporalLayerSeenChange", []interface{}{arg1}) fake.upTrackMaxTemporalLayerSeenChangeMutex.Unlock() if stub != nil { fake.UpTrackMaxTemporalLayerSeenChangeStub(arg1) } } func (fake *FakeTrackSender) UpTrackMaxTemporalLayerSeenChangeCallCount() int { fake.upTrackMaxTemporalLayerSeenChangeMutex.RLock() defer fake.upTrackMaxTemporalLayerSeenChangeMutex.RUnlock() return len(fake.upTrackMaxTemporalLayerSeenChangeArgsForCall) } func (fake *FakeTrackSender) UpTrackMaxTemporalLayerSeenChangeCalls(stub func(int32)) { fake.upTrackMaxTemporalLayerSeenChangeMutex.Lock() defer fake.upTrackMaxTemporalLayerSeenChangeMutex.Unlock() fake.UpTrackMaxTemporalLayerSeenChangeStub = stub } func (fake *FakeTrackSender) UpTrackMaxTemporalLayerSeenChangeArgsForCall(i int) int32 { fake.upTrackMaxTemporalLayerSeenChangeMutex.RLock() defer fake.upTrackMaxTemporalLayerSeenChangeMutex.RUnlock() argsForCall := fake.upTrackMaxTemporalLayerSeenChangeArgsForCall[i] return argsForCall.arg1 } func (fake *FakeTrackSender) WriteRTP(arg1 *buffer.ExtPacket, arg2 int32) int32 { fake.writeRTPMutex.Lock() ret, specificReturn := fake.writeRTPReturnsOnCall[len(fake.writeRTPArgsForCall)] fake.writeRTPArgsForCall = append(fake.writeRTPArgsForCall, struct { arg1 *buffer.ExtPacket arg2 int32 }{arg1, arg2}) stub := fake.WriteRTPStub fakeReturns := fake.writeRTPReturns fake.recordInvocation("WriteRTP", []interface{}{arg1, arg2}) fake.writeRTPMutex.Unlock() if stub != nil { return stub(arg1, arg2) } if specificReturn { return ret.result1 } return fakeReturns.result1 } func (fake *FakeTrackSender) WriteRTPCallCount() int { fake.writeRTPMutex.RLock() defer fake.writeRTPMutex.RUnlock() return len(fake.writeRTPArgsForCall) } func (fake *FakeTrackSender) WriteRTPCalls(stub func(*buffer.ExtPacket, int32) int32) { fake.writeRTPMutex.Lock() defer fake.writeRTPMutex.Unlock() fake.WriteRTPStub = stub } func (fake *FakeTrackSender) WriteRTPArgsForCall(i int) (*buffer.ExtPacket, int32) { fake.writeRTPMutex.RLock() defer fake.writeRTPMutex.RUnlock() argsForCall := fake.writeRTPArgsForCall[i] return argsForCall.arg1, argsForCall.arg2 } func (fake *FakeTrackSender) WriteRTPReturns(result1 int32) { fake.writeRTPMutex.Lock() defer fake.writeRTPMutex.Unlock() fake.WriteRTPStub = nil fake.writeRTPReturns = struct { result1 int32 }{result1} } func (fake *FakeTrackSender) WriteRTPReturnsOnCall(i int, result1 int32) { fake.writeRTPMutex.Lock() defer fake.writeRTPMutex.Unlock() fake.WriteRTPStub = nil if fake.writeRTPReturnsOnCall == nil { fake.writeRTPReturnsOnCall = make(map[int]struct { result1 int32 }) } fake.writeRTPReturnsOnCall[i] = struct { result1 int32 }{result1} } func (fake *FakeTrackSender) Invocations() map[string][][]interface{} { fake.invocationsMutex.RLock() defer fake.invocationsMutex.RUnlock() copiedInvocations := map[string][][]interface{}{} for key, value := range fake.invocations { copiedInvocations[key] = value } return copiedInvocations } func (fake *FakeTrackSender) recordInvocation(key string, args []interface{}) { fake.invocationsMutex.Lock() defer fake.invocationsMutex.Unlock() if fake.invocations == nil { fake.invocations = map[string][][]interface{}{} } if fake.invocations[key] == nil { fake.invocations[key] = [][]interface{}{} } fake.invocations[key] = append(fake.invocations[key], args) } var _ sfu.TrackSender = new(FakeTrackSender)