// Code generated by mockery v2.12.2. DO NOT EDIT.

/*
 * Copyright (c) 2022, Alibaba Group;
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package mocks

import (
	testing "testing"

	mock "github.com/stretchr/testify/mock"

	autowire "github.com/alibaba/ioc-golang/autowire"
)

// WrapperAutowire is an autogenerated mock type for the WrapperAutowire type
type WrapperAutowire struct {
	mock.Mock
}

// CanBeEntrance provides a mock function with given fields:
func (_m *WrapperAutowire) CanBeEntrance() bool {
	ret := _m.Called()

	var r0 bool
	if rf, ok := ret.Get(0).(func() bool); ok {
		r0 = rf()
	} else {
		r0 = ret.Get(0).(bool)
	}

	return r0
}

// Construct provides a mock function with given fields: sdID, impledPtr, param
func (_m *WrapperAutowire) Construct(sdID string, impledPtr interface{}, param interface{}) (interface{}, error) {
	ret := _m.Called(sdID, impledPtr, param)

	var r0 interface{}
	if rf, ok := ret.Get(0).(func(string, interface{}, interface{}) interface{}); ok {
		r0 = rf(sdID, impledPtr, param)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(interface{})
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, interface{}, interface{}) error); ok {
		r1 = rf(sdID, impledPtr, param)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// Factory provides a mock function with given fields: sdID
func (_m *WrapperAutowire) Factory(sdID string) (interface{}, error) {
	ret := _m.Called(sdID)

	var r0 interface{}
	if rf, ok := ret.Get(0).(func(string) interface{}); ok {
		r0 = rf(sdID)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(interface{})
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string) error); ok {
		r1 = rf(sdID)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// GetAllStructDescriptors provides a mock function with given fields:
func (_m *WrapperAutowire) GetAllStructDescriptors() map[string]*autowire.StructDescriptor {
	ret := _m.Called()

	var r0 map[string]*autowire.StructDescriptor
	if rf, ok := ret.Get(0).(func() map[string]*autowire.StructDescriptor); ok {
		r0 = rf()
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(map[string]*autowire.StructDescriptor)
		}
	}

	return r0
}

// ImplWithParam provides a mock function with given fields: sdID, param
func (_m *WrapperAutowire) ImplWithParam(sdID string, param interface{}) (interface{}, error) {
	ret := _m.Called(sdID, param)

	var r0 interface{}
	if rf, ok := ret.Get(0).(func(string, interface{}) interface{}); ok {
		r0 = rf(sdID, param)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(interface{})
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, interface{}) error); ok {
		r1 = rf(sdID, param)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ImplWithoutParam provides a mock function with given fields: sdID
func (_m *WrapperAutowire) ImplWithoutParam(sdID string) (interface{}, error) {
	ret := _m.Called(sdID)

	var r0 interface{}
	if rf, ok := ret.Get(0).(func(string) interface{}); ok {
		r0 = rf(sdID)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(interface{})
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string) error); ok {
		r1 = rf(sdID)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// InjectPosition provides a mock function with given fields:
func (_m *WrapperAutowire) InjectPosition() autowire.InjectPosition {
	ret := _m.Called()

	var r0 autowire.InjectPosition
	if rf, ok := ret.Get(0).(func() autowire.InjectPosition); ok {
		r0 = rf()
	} else {
		r0 = ret.Get(0).(autowire.InjectPosition)
	}

	return r0
}

// IsSingleton provides a mock function with given fields:
func (_m *WrapperAutowire) IsSingleton() bool {
	ret := _m.Called()

	var r0 bool
	if rf, ok := ret.Get(0).(func() bool); ok {
		r0 = rf()
	} else {
		r0 = ret.Get(0).(bool)
	}

	return r0
}

// ParseParam provides a mock function with given fields: sdID, fi
func (_m *WrapperAutowire) ParseParam(sdID string, fi *autowire.FieldInfo) (interface{}, error) {
	ret := _m.Called(sdID, fi)

	var r0 interface{}
	if rf, ok := ret.Get(0).(func(string, *autowire.FieldInfo) interface{}); ok {
		r0 = rf(sdID, fi)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(interface{})
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(string, *autowire.FieldInfo) error); ok {
		r1 = rf(sdID, fi)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// ParseSDID provides a mock function with given fields: field
func (_m *WrapperAutowire) ParseSDID(field *autowire.FieldInfo) (string, error) {
	ret := _m.Called(field)

	var r0 string
	if rf, ok := ret.Get(0).(func(*autowire.FieldInfo) string); ok {
		r0 = rf(field)
	} else {
		r0 = ret.Get(0).(string)
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(*autowire.FieldInfo) error); ok {
		r1 = rf(field)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// TagKey provides a mock function with given fields:
func (_m *WrapperAutowire) TagKey() string {
	ret := _m.Called()

	var r0 string
	if rf, ok := ret.Get(0).(func() string); ok {
		r0 = rf()
	} else {
		r0 = ret.Get(0).(string)
	}

	return r0
}

// implWithField provides a mock function with given fields: info
func (_m *WrapperAutowire) implWithField(info *autowire.FieldInfo) (interface{}, error) {
	ret := _m.Called(info)

	var r0 interface{}
	if rf, ok := ret.Get(0).(func(*autowire.FieldInfo) interface{}); ok {
		r0 = rf(info)
	} else {
		if ret.Get(0) != nil {
			r0 = ret.Get(0).(interface{})
		}
	}

	var r1 error
	if rf, ok := ret.Get(1).(func(*autowire.FieldInfo) error); ok {
		r1 = rf(info)
	} else {
		r1 = ret.Error(1)
	}

	return r0, r1
}

// NewWrapperAutowire creates a new instance of WrapperAutowire. It also registers the testing.TB interface on the mock and a cleanup function to assert the mocks expectations.
func NewWrapperAutowire(t testing.TB) *WrapperAutowire {
	mock := &WrapperAutowire{}
	mock.Mock.Test(t)

	t.Cleanup(func() { mock.AssertExpectations(t) })

	return mock
}
