github.com/ydb-platform/ydb-go-sdk/v3@v3.89.2/internal/grpcwrapper/rawtopic/update_offset_in_transaction_test.go (about)

     1  package rawtopic
     2  
     3  import (
     4  	"testing"
     5  	"time"
     6  
     7  	"github.com/stretchr/testify/require"
     8  	"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Operations"
     9  	"github.com/ydb-platform/ydb-go-genproto/protos/Ydb_Topic"
    10  	"google.golang.org/protobuf/types/known/durationpb"
    11  
    12  	"github.com/ydb-platform/ydb-go-sdk/v3/internal/grpcwrapper/rawoptional"
    13  	"github.com/ydb-platform/ydb-go-sdk/v3/internal/grpcwrapper/rawtopic/rawtopiccommon"
    14  	"github.com/ydb-platform/ydb-go-sdk/v3/internal/grpcwrapper/rawydb"
    15  )
    16  
    17  func TestUpdateOffsetsInTransactionRequestToProto(t *testing.T) {
    18  	res := (&UpdateOffsetsInTransactionRequest{
    19  		OperationParams: rawydb.OperationParams{
    20  			OperationMode: rawydb.OperationParamsModeSync,
    21  			OperationTimeout: rawoptional.Duration{
    22  				Value:    time.Second,
    23  				HasValue: true,
    24  			},
    25  			CancelAfter: rawoptional.Duration{
    26  				Value:    time.Minute,
    27  				HasValue: true,
    28  			},
    29  		},
    30  		Tx: rawtopiccommon.TransactionIdentity{
    31  			ID:      "tx-id",
    32  			Session: "session-id",
    33  		},
    34  		Topics: []UpdateOffsetsInTransactionRequest_TopicOffsets{
    35  			{
    36  				Path: "test-topic",
    37  				Partitions: []UpdateOffsetsInTransactionRequest_PartitionOffsets{
    38  					{
    39  						PartitionID: 1,
    40  						PartitionOffsets: []rawtopiccommon.OffsetRange{
    41  							{
    42  								Start: 1,
    43  								End:   2,
    44  							},
    45  							{
    46  								Start: 10,
    47  								End:   20,
    48  							},
    49  						},
    50  					},
    51  					{
    52  						PartitionID: 5,
    53  						PartitionOffsets: []rawtopiccommon.OffsetRange{
    54  							{
    55  								Start: 15,
    56  								End:   25,
    57  							},
    58  							{
    59  								Start: 35,
    60  								End:   55,
    61  							},
    62  						},
    63  					},
    64  				},
    65  			},
    66  			{
    67  				Path: "test-topic-2",
    68  				Partitions: []UpdateOffsetsInTransactionRequest_PartitionOffsets{
    69  					{
    70  						PartitionID: 56,
    71  						PartitionOffsets: []rawtopiccommon.OffsetRange{
    72  							{
    73  								Start: 11,
    74  								End:   52,
    75  							},
    76  						},
    77  					},
    78  				},
    79  			},
    80  		},
    81  		Consumer: "test-consumer",
    82  	}).ToProto()
    83  
    84  	expected := &Ydb_Topic.UpdateOffsetsInTransactionRequest{
    85  		OperationParams: &Ydb_Operations.OperationParams{
    86  			OperationMode:    Ydb_Operations.OperationParams_SYNC,
    87  			OperationTimeout: durationpb.New(time.Second),
    88  			CancelAfter:      durationpb.New(time.Minute),
    89  		},
    90  		Tx: &Ydb_Topic.TransactionIdentity{
    91  			Id:      "tx-id",
    92  			Session: "session-id",
    93  		},
    94  		Topics: []*Ydb_Topic.UpdateOffsetsInTransactionRequest_TopicOffsets{
    95  			{
    96  				Path: "test-topic",
    97  				Partitions: []*Ydb_Topic.UpdateOffsetsInTransactionRequest_TopicOffsets_PartitionOffsets{
    98  					{
    99  						PartitionId: 1,
   100  						PartitionOffsets: []*Ydb_Topic.OffsetsRange{
   101  							{
   102  								Start: 1,
   103  								End:   2,
   104  							},
   105  							{
   106  								Start: 10,
   107  								End:   20,
   108  							},
   109  						},
   110  					},
   111  					{
   112  						PartitionId: 5,
   113  						PartitionOffsets: []*Ydb_Topic.OffsetsRange{
   114  							{
   115  								Start: 15,
   116  								End:   25,
   117  							},
   118  							{
   119  								Start: 35,
   120  								End:   55,
   121  							},
   122  						},
   123  					},
   124  				},
   125  			},
   126  			{
   127  				Path: "test-topic-2",
   128  				Partitions: []*Ydb_Topic.UpdateOffsetsInTransactionRequest_TopicOffsets_PartitionOffsets{
   129  					{
   130  						PartitionId: 56,
   131  						PartitionOffsets: []*Ydb_Topic.OffsetsRange{
   132  							{
   133  								Start: 11,
   134  								End:   52,
   135  							},
   136  						},
   137  					},
   138  				},
   139  			},
   140  		},
   141  		Consumer: "test-consumer",
   142  	}
   143  
   144  	require.Equal(t, expected, res)
   145  }