// This file was generated by counterfeiter
package fake_ssh

import (
	"net"
	"sync"

	"golang.org/x/crypto/ssh"
)

type FakeConnMetadata struct {
	UserStub        func() string
	userMutex       sync.RWMutex
	userArgsForCall []struct{}
	userReturns     struct {
		result1 string
	}
	SessionIDStub        func() []byte
	sessionIDMutex       sync.RWMutex
	sessionIDArgsForCall []struct{}
	sessionIDReturns     struct {
		result1 []byte
	}
	ClientVersionStub        func() []byte
	clientVersionMutex       sync.RWMutex
	clientVersionArgsForCall []struct{}
	clientVersionReturns     struct {
		result1 []byte
	}
	ServerVersionStub        func() []byte
	serverVersionMutex       sync.RWMutex
	serverVersionArgsForCall []struct{}
	serverVersionReturns     struct {
		result1 []byte
	}
	RemoteAddrStub        func() net.Addr
	remoteAddrMutex       sync.RWMutex
	remoteAddrArgsForCall []struct{}
	remoteAddrReturns     struct {
		result1 net.Addr
	}
	LocalAddrStub        func() net.Addr
	localAddrMutex       sync.RWMutex
	localAddrArgsForCall []struct{}
	localAddrReturns     struct {
		result1 net.Addr
	}
}

func (fake *FakeConnMetadata) User() string {
	fake.userMutex.Lock()
	fake.userArgsForCall = append(fake.userArgsForCall, struct{}{})
	fake.userMutex.Unlock()
	if fake.UserStub != nil {
		return fake.UserStub()
	} else {
		return fake.userReturns.result1
	}
}

func (fake *FakeConnMetadata) UserCallCount() int {
	fake.userMutex.RLock()
	defer fake.userMutex.RUnlock()
	return len(fake.userArgsForCall)
}

func (fake *FakeConnMetadata) UserReturns(result1 string) {
	fake.UserStub = nil
	fake.userReturns = struct {
		result1 string
	}{result1}
}

func (fake *FakeConnMetadata) SessionID() []byte {
	fake.sessionIDMutex.Lock()
	fake.sessionIDArgsForCall = append(fake.sessionIDArgsForCall, struct{}{})
	fake.sessionIDMutex.Unlock()
	if fake.SessionIDStub != nil {
		return fake.SessionIDStub()
	} else {
		return fake.sessionIDReturns.result1
	}
}

func (fake *FakeConnMetadata) SessionIDCallCount() int {
	fake.sessionIDMutex.RLock()
	defer fake.sessionIDMutex.RUnlock()
	return len(fake.sessionIDArgsForCall)
}

func (fake *FakeConnMetadata) SessionIDReturns(result1 []byte) {
	fake.SessionIDStub = nil
	fake.sessionIDReturns = struct {
		result1 []byte
	}{result1}
}

func (fake *FakeConnMetadata) ClientVersion() []byte {
	fake.clientVersionMutex.Lock()
	fake.clientVersionArgsForCall = append(fake.clientVersionArgsForCall, struct{}{})
	fake.clientVersionMutex.Unlock()
	if fake.ClientVersionStub != nil {
		return fake.ClientVersionStub()
	} else {
		return fake.clientVersionReturns.result1
	}
}

func (fake *FakeConnMetadata) ClientVersionCallCount() int {
	fake.clientVersionMutex.RLock()
	defer fake.clientVersionMutex.RUnlock()
	return len(fake.clientVersionArgsForCall)
}

func (fake *FakeConnMetadata) ClientVersionReturns(result1 []byte) {
	fake.ClientVersionStub = nil
	fake.clientVersionReturns = struct {
		result1 []byte
	}{result1}
}

func (fake *FakeConnMetadata) ServerVersion() []byte {
	fake.serverVersionMutex.Lock()
	fake.serverVersionArgsForCall = append(fake.serverVersionArgsForCall, struct{}{})
	fake.serverVersionMutex.Unlock()
	if fake.ServerVersionStub != nil {
		return fake.ServerVersionStub()
	} else {
		return fake.serverVersionReturns.result1
	}
}

func (fake *FakeConnMetadata) ServerVersionCallCount() int {
	fake.serverVersionMutex.RLock()
	defer fake.serverVersionMutex.RUnlock()
	return len(fake.serverVersionArgsForCall)
}

func (fake *FakeConnMetadata) ServerVersionReturns(result1 []byte) {
	fake.ServerVersionStub = nil
	fake.serverVersionReturns = struct {
		result1 []byte
	}{result1}
}

func (fake *FakeConnMetadata) RemoteAddr() net.Addr {
	fake.remoteAddrMutex.Lock()
	fake.remoteAddrArgsForCall = append(fake.remoteAddrArgsForCall, struct{}{})
	fake.remoteAddrMutex.Unlock()
	if fake.RemoteAddrStub != nil {
		return fake.RemoteAddrStub()
	} else {
		return fake.remoteAddrReturns.result1
	}
}

func (fake *FakeConnMetadata) RemoteAddrCallCount() int {
	fake.remoteAddrMutex.RLock()
	defer fake.remoteAddrMutex.RUnlock()
	return len(fake.remoteAddrArgsForCall)
}

func (fake *FakeConnMetadata) RemoteAddrReturns(result1 net.Addr) {
	fake.RemoteAddrStub = nil
	fake.remoteAddrReturns = struct {
		result1 net.Addr
	}{result1}
}

func (fake *FakeConnMetadata) LocalAddr() net.Addr {
	fake.localAddrMutex.Lock()
	fake.localAddrArgsForCall = append(fake.localAddrArgsForCall, struct{}{})
	fake.localAddrMutex.Unlock()
	if fake.LocalAddrStub != nil {
		return fake.LocalAddrStub()
	} else {
		return fake.localAddrReturns.result1
	}
}

func (fake *FakeConnMetadata) LocalAddrCallCount() int {
	fake.localAddrMutex.RLock()
	defer fake.localAddrMutex.RUnlock()
	return len(fake.localAddrArgsForCall)
}

func (fake *FakeConnMetadata) LocalAddrReturns(result1 net.Addr) {
	fake.LocalAddrStub = nil
	fake.localAddrReturns = struct {
		result1 net.Addr
	}{result1}
}

var _ ssh.ConnMetadata = new(FakeConnMetadata)
