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 }