...

Source file src/edge-infra.dev/pkg/edge/datasync/chirp/provider/fileSystem-provider_test.go

Documentation: edge-infra.dev/pkg/edge/datasync/chirp/provider

     1  package provider_test
     2  
     3  import (
     4  	"os"
     5  	"testing"
     6  
     7  	"github.com/google/uuid"
     8  	"github.com/stretchr/testify/require"
     9  
    10  	"edge-infra.dev/pkg/edge/datasync/chirp/model"
    11  	persister "edge-infra.dev/pkg/edge/datasync/chirp/persister/files"
    12  	"edge-infra.dev/pkg/edge/datasync/chirp/provider"
    13  	"edge-infra.dev/pkg/edge/datasync/internal/config/fake"
    14  )
    15  
    16  func TestNewFileSystemProvider(t *testing.T) {
    17  	os.RemoveAll("testdata/outbox")
    18  
    19  	fake.SetEnv()
    20  
    21  	p := provider.NewFileSystemProvider(0, fake.InternalConfig)
    22  	require.NotNil(t, p)
    23  }
    24  
    25  func TestGetMessages(t *testing.T) {
    26  	os.RemoveAll("testdata/outbox")
    27  
    28  	const MessageType = "tlog"
    29  	const Payload = `{\"message\":\"hello world\"}`
    30  
    31  	fake.SetEnv()
    32  
    33  	p := provider.NewFileSystemProvider(0, fake.InternalConfig)
    34  
    35  	t.Run("return nil, when there are no messages in partition", func(t *testing.T) {
    36  		got := p.GetMessages()
    37  		require.Nil(t, got)
    38  	})
    39  
    40  	t.Run("return 2 messages, when there are 2 messages in partition", func(t *testing.T) {
    41  		messageID1 := uuid.New()
    42  		messageID2 := uuid.New()
    43  
    44  		persister, _ := persister.NewFilePersister(fake.InternalConfig)
    45  
    46  		msgData1 := model.MessageData{ID: messageID1, Type: MessageType, Payload: []byte(Payload)}
    47  		msgData2 := model.MessageData{ID: messageID2, Type: MessageType, Payload: []byte(Payload)}
    48  
    49  		_ = persister.Save(msgData1)
    50  		_ = persister.Save(msgData2)
    51  
    52  		got := p.GetMessages()
    53  		require.Equal(t, 2, len(got))
    54  
    55  		msg1 := got[messageID1.String()]
    56  		require.Equal(t, messageID1, msg1.ID)
    57  
    58  		msg2 := got[messageID2.String()]
    59  		require.Equal(t, messageID2, msg2.ID)
    60  
    61  		os.RemoveAll("testdata/outbox")
    62  	})
    63  }
    64  

View as plain text