github.com/Jeffail/benthos/v3@v3.65.0/internal/message/sort_group_test.go (about)

     1  package message
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/Jeffail/benthos/v3/lib/message"
     7  	"github.com/stretchr/testify/assert"
     8  )
     9  
    10  func TestNestedSortGroups(t *testing.T) {
    11  	msg := message.New(nil)
    12  	msg.Append(message.NewPart([]byte("first")))
    13  	msg.Append(message.NewPart([]byte("second")))
    14  
    15  	group1, msg1 := NewSortGroup(msg)
    16  
    17  	assert.Equal(t, -1, group1.GetIndex(msg.Get(0)))
    18  	assert.Equal(t, -1, group1.GetIndex(msg.Get(1)))
    19  
    20  	assert.Equal(t, 0, group1.GetIndex(msg1.Get(0)))
    21  	assert.Equal(t, 1, group1.GetIndex(msg1.Get(1)))
    22  
    23  	msg1Reordered := message.New(nil)
    24  	msg1Reordered.Append(msg1.Get(1))
    25  	msg1Reordered.Append(msg1.Get(0))
    26  
    27  	group2, msg2 := NewSortGroup(msg1Reordered)
    28  
    29  	assert.Equal(t, -1, group1.GetIndex(msg.Get(0)))
    30  	assert.Equal(t, -1, group1.GetIndex(msg.Get(1)))
    31  
    32  	assert.Equal(t, 0, group1.GetIndex(msg1.Get(0)))
    33  	assert.Equal(t, 1, group1.GetIndex(msg1.Get(1)))
    34  
    35  	assert.Equal(t, -1, group2.GetIndex(msg.Get(0)))
    36  	assert.Equal(t, -1, group2.GetIndex(msg.Get(1)))
    37  
    38  	assert.Equal(t, -1, group2.GetIndex(msg1.Get(0)))
    39  	assert.Equal(t, -1, group2.GetIndex(msg1.Get(1)))
    40  
    41  	assert.Equal(t, 0, group2.GetIndex(msg2.Get(0)))
    42  	assert.Equal(t, 1, group2.GetIndex(msg2.Get(1)))
    43  
    44  	assert.Equal(t, 1, group1.GetIndex(msg2.Get(0)))
    45  	assert.Equal(t, 0, group1.GetIndex(msg2.Get(1)))
    46  }