mirror of
https://github.com/bpg/terraform-provider-proxmox.git
synced 2025-06-30 02:31:10 +00:00
48 lines
753 B
Go
48 lines
753 B
Go
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
package utils
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestCloseOrLogError(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
f := CloseOrLogError(context.Background())
|
|
|
|
c := &testCloser{}
|
|
b := &badCloser{}
|
|
|
|
func() {
|
|
defer f(c)
|
|
defer f(b)
|
|
assert.False(t, c.isClosed)
|
|
}()
|
|
|
|
assert.True(t, c.isClosed)
|
|
}
|
|
|
|
type testCloser struct {
|
|
isClosed bool
|
|
}
|
|
|
|
func (t *testCloser) Close() error {
|
|
t.isClosed = true
|
|
return nil
|
|
}
|
|
|
|
type badCloser struct{}
|
|
|
|
func (t *badCloser) Close() error {
|
|
return fmt.Errorf("bad")
|
|
}
|