type releaser interface {
// ReleaseAddress has the same signature as the same method in the
// NetworkingEnviron.
ReleaseAddress(instance.Id, network.Id, network.Address) error
}
type ReleaseCall struct {
instId instance.Id
subnetId network.Id
addr network.Address
}
type mockReleaser struct {
calls []ReleaseCall
returns []error
}
func (m *mockReleaser) ReleaseAddress(instId instance.Id, subnetId network.Id, addr network.Address) error {
m.calls = append(m.calls, ReleaseCall{instId, subnetId, addr})
toReturn := m.returns[0]
m.returns = m.returns[1:]
return toReturn
}
func NewMockReleaser(returns []error) mockReleaser {
r := mockReleaser{
calls: []ReleaseCall{},
returns: returns,
}
return r
}