github.com/observiq/carbon@v0.9.11-0.20200820160507-1b872e368a5e/operator/builtin/input/windows/publisher_test.go (about) 1 // +build windows 2 3 package windows 4 5 import ( 6 "testing" 7 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestPublisherOpenPreexisting(t *testing.T) { 12 publisher := Publisher{handle: 5} 13 err := publisher.Open("") 14 require.Error(t, err) 15 require.Contains(t, err.Error(), "publisher handle is already open") 16 } 17 18 func TestPublisherOpenInvalidUTF8(t *testing.T) { 19 publisher := NewPublisher() 20 invalidUTF8 := "\u0000" 21 err := publisher.Open(invalidUTF8) 22 require.Error(t, err) 23 require.Contains(t, err.Error(), "failed to convert provider to utf16") 24 } 25 26 func TestPublisherOpenSyscallFailure(t *testing.T) { 27 publisher := NewPublisher() 28 provider := "provider" 29 openPublisherMetadataProc = SimpleMockProc(0, 0, ErrorNotSupported) 30 err := publisher.Open(provider) 31 require.Error(t, err) 32 require.Contains(t, err.Error(), "failed to open publisher handle") 33 } 34 35 func TestPublisherOpenSuccess(t *testing.T) { 36 publisher := NewPublisher() 37 provider := "provider" 38 openPublisherMetadataProc = SimpleMockProc(5, 0, ErrorSuccess) 39 err := publisher.Open(provider) 40 require.NoError(t, err) 41 require.Equal(t, uintptr(5), publisher.handle) 42 } 43 44 func TestPublisherCloseWhenAlreadyClosed(t *testing.T) { 45 publisher := NewPublisher() 46 err := publisher.Close() 47 require.NoError(t, err) 48 } 49 50 func TestPublisherCloseSyscallFailure(t *testing.T) { 51 publisher := Publisher{handle: 5} 52 closeProc = SimpleMockProc(0, 0, ErrorNotSupported) 53 err := publisher.Close() 54 require.Error(t, err) 55 require.Contains(t, err.Error(), "failed to close publisher") 56 } 57 58 func TestPublisherCloseSuccess(t *testing.T) { 59 publisher := Publisher{handle: 5} 60 closeProc = SimpleMockProc(1, 0, ErrorSuccess) 61 err := publisher.Close() 62 require.NoError(t, err) 63 require.Equal(t, uintptr(0), publisher.handle) 64 }