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  }