@@ -21,63 +21,66 @@ import (
2121func TestProtoTypesExist (t * testing.T ) {
2222 // Config type
2323 config := & streams.Config {
24- FeedIds : [] string { "0x0001" , "0x0002" },
24+ StreamIds : [] uint32 { 1 , 2 , 3 },
2525 MaxFrequencyMs : 5000 ,
2626 }
2727 assert .NotNil (t , config )
28- assert .Len (t , config .FeedIds , 2 )
28+ assert .Len (t , config .StreamIds , 3 )
2929 assert .Equal (t , uint64 (5000 ), config .MaxFrequencyMs )
3030
31- // Feed type
32- feed := & streams.Feed {
33- Timestamp : 1234567890 ,
34- Metadata : & streams.SignersMetadata {
35- Signers : []string {"signer1" , "signer2" },
36- MinRequiredSignatures : 2 ,
37- },
38- Payload : []* streams.FeedReport {
31+ // Report type
32+ report := & streams.Report {
33+ ConfigDigest : []byte {1 , 2 , 3 , 4 },
34+ SeqNr : 42 ,
35+ Report : []byte ("report-data" ),
36+ Sigs : []* streams.OCRSignature {
37+ {
38+ Signer : 1 ,
39+ Signature : []byte ("sig1" ),
40+ },
3941 {
40- FeedId : "0x0001" ,
41- FullReport : []byte ("report-data" ),
42- ReportContext : []byte ("context" ),
43- Signatures : [][]byte {[]byte ("sig1" )},
44- BenchmarkPrice : []byte ("price" ),
45- ObservationTimestamp : 1234567890 ,
42+ Signer : 2 ,
43+ Signature : []byte ("sig2" ),
4644 },
4745 },
4846 }
49- assert .NotNil (t , feed )
50- assert .Equal (t , int64 (1234567890 ), feed .Timestamp )
51- assert .Len (t , feed .Payload , 1 )
47+ assert .NotNil (t , report )
48+ assert .Equal (t , []byte {1 , 2 , 3 , 4 }, report .ConfigDigest )
49+ assert .Equal (t , uint64 (42 ), report .SeqNr )
50+ assert .Len (t , report .Sigs , 2 )
5251}
5352
5453// TestConfigGetters verifies getter methods work
5554func TestConfigGetters (t * testing.T ) {
5655 config := & streams.Config {
57- FeedIds : [] string { "0xfeed1" , "0xfeed2" , "0xfeed3" },
56+ StreamIds : [] uint32 { 1 , 2 , 3 },
5857 MaxFrequencyMs : 10000 ,
5958 }
6059
61- assert .Equal (t , []string { "0xfeed1" , "0xfeed2" , "0xfeed3" }, config .GetFeedIds ())
60+ assert .Equal (t , []uint32 { 1 , 2 , 3 }, config .GetStreamIds ())
6261 assert .Equal (t , uint64 (10000 ), config .GetMaxFrequencyMs ())
6362}
6463
65- // TestFeedGetters verifies Feed getter methods
66- func TestFeedGetters (t * testing.T ) {
67- metadata := & streams.SignersMetadata {
68- Signers : []string {"signer1" },
69- MinRequiredSignatures : 1 ,
64+ // TestReportGetters verifies Report getter methods
65+ func TestReportGetters (t * testing.T ) {
66+ sigs := []* streams.OCRSignature {
67+ {
68+ Signer : 1 ,
69+ Signature : []byte ("sig1" ),
70+ },
7071 }
7172
72- feed := & streams.Feed {
73- Timestamp : 9999999999 ,
74- Metadata : metadata ,
75- Payload : []* streams.FeedReport {},
73+ report := & streams.Report {
74+ ConfigDigest : []byte {1 , 2 , 3 , 4 },
75+ SeqNr : 99 ,
76+ Report : []byte ("test-report" ),
77+ Sigs : sigs ,
7678 }
7779
78- assert .Equal (t , int64 (9999999999 ), feed .GetTimestamp ())
79- assert .Equal (t , metadata , feed .GetMetadata ())
80- assert .NotNil (t , feed .GetPayload ())
80+ assert .Equal (t , []byte {1 , 2 , 3 , 4 }, report .GetConfigDigest ())
81+ assert .Equal (t , uint64 (99 ), report .GetSeqNr ())
82+ assert .Equal (t , []byte ("test-report" ), report .GetReport ())
83+ assert .Equal (t , sigs , report .GetSigs ())
8184}
8285
8386// TestStreamsCapabilityInterface verifies the server interface
@@ -94,13 +97,13 @@ type mockStreamsCapability struct {
9497 closeCalled bool
9598}
9699
97- func (m * mockStreamsCapability ) RegisterTrigger (ctx context.Context , triggerID string , metadata capabilities.RequestMetadata , input * streams.Config ) (<- chan capabilities.TriggerAndId [* streams.Feed ], caperrors.Error ) {
100+ func (m * mockStreamsCapability ) RegisterTrigger (ctx context.Context , triggerID string , metadata capabilities.RequestMetadata , input * streams.Config ) (<- chan capabilities.TriggerAndId [* streams.Report ], caperrors.Error ) {
98101 m .registerCalled = true
99- ch := make (chan capabilities.TriggerAndId [* streams.Feed ], 1 )
102+ ch := make (chan capabilities.TriggerAndId [* streams.Report ], 1 )
100103 return ch , nil
101104}
102105
103- func (m * mockStreamsCapability ) UnregisterTrigger (ctx context.Context , triggerID string , metadata capabilities.RequestMetadata , input * streams.Config ) error {
106+ func (m * mockStreamsCapability ) UnregisterTrigger (ctx context.Context , triggerID string , metadata capabilities.RequestMetadata , input * streams.Config ) caperrors. Error {
104107 m .unregisterCalled = true
105108 return nil
106109}
@@ -177,7 +180,7 @@ func TestTriggerRegistration(t *testing.T) {
177180 }
178181
179182 config := & streams.Config {
180- FeedIds : [] string { "0x0001" },
183+ StreamIds : [] uint32 { 1 },
181184 MaxFrequencyMs : 1000 ,
182185 }
183186
@@ -192,34 +195,35 @@ func TestTriggerRegistration(t *testing.T) {
192195 assert .True (t , mock .unregisterCalled )
193196}
194197
195- // TestFeedReportStructure tests the FeedReport structure
196- func TestFeedReportStructure (t * testing.T ) {
197- report := & streams.FeedReport {
198- FeedId : "0xfeedid12345" ,
199- FullReport : []byte ("full-report-bytes" ),
200- ReportContext : []byte ("report-context" ),
201- Signatures : [][]byte {[]byte ("sig1" ), []byte ("sig2" )},
202- BenchmarkPrice : []byte ("benchmark-price-bytes" ),
203- ObservationTimestamp : 1700000000 ,
198+ // TestReportStructure tests the Report structure
199+ func TestReportStructure (t * testing.T ) {
200+ sigs := []* streams.OCRSignature {
201+ {Signer : 1 , Signature : []byte ("sig1" )},
202+ {Signer : 2 , Signature : []byte ("sig2" )},
203+ }
204+
205+ report := & streams.Report {
206+ ConfigDigest : []byte {1 , 2 , 3 , 4 , 5 },
207+ SeqNr : 123 ,
208+ Report : []byte ("full-report-bytes" ),
209+ Sigs : sigs ,
204210 }
205211
206- assert .Equal (t , "0xfeedid12345" , report .GetFeedId ())
207- assert .Equal (t , []byte ("full-report-bytes" ), report .GetFullReport ())
208- assert .Equal (t , []byte ("report-context" ), report .GetReportContext ())
209- assert .Len (t , report .GetSignatures (), 2 )
210- assert .Equal (t , []byte ("benchmark-price-bytes" ), report .GetBenchmarkPrice ())
211- assert .Equal (t , int64 (1700000000 ), report .GetObservationTimestamp ())
212- }
213-
214- // TestSignersMetadata tests the SignersMetadata structure
215- func TestSignersMetadata (t * testing.T ) {
216- metadata := & streams.SignersMetadata {
217- Signers : []string {"0xsigner1" , "0xsigner2" , "0xsigner3" },
218- MinRequiredSignatures : 2 ,
212+ assert .Equal (t , []byte {1 , 2 , 3 , 4 , 5 }, report .GetConfigDigest ())
213+ assert .Equal (t , uint64 (123 ), report .GetSeqNr ())
214+ assert .Equal (t , []byte ("full-report-bytes" ), report .GetReport ())
215+ assert .Len (t , report .GetSigs (), 2 )
216+ }
217+
218+ // TestOCRSignature tests the OCRSignature structure
219+ func TestOCRSignature (t * testing.T ) {
220+ sig := & streams.OCRSignature {
221+ Signer : 5 ,
222+ Signature : []byte ("signature-bytes" ),
219223 }
220224
221- assert .Len (t , metadata . GetSigners ( ), 3 )
222- assert .Equal (t , int64 ( 2 ), metadata . GetMinRequiredSignatures ())
225+ assert .Equal (t , uint32 ( 5 ), sig . GetSigner () )
226+ assert .Equal (t , [] byte ( "signature-bytes" ), sig . GetSignature ())
223227}
224228
225229// TestConfigValidation tests configuration validation scenarios
@@ -230,25 +234,25 @@ func TestConfigValidation(t *testing.T) {
230234 expectValid bool
231235 }{
232236 {
233- name : "valid config with single feed " ,
237+ name : "valid config with single stream " ,
234238 config : & streams.Config {
235- FeedIds : [] string { "0x0001" },
239+ StreamIds : [] uint32 { 1 },
236240 MaxFrequencyMs : 1000 ,
237241 },
238242 expectValid : true ,
239243 },
240244 {
241- name : "valid config with multiple feeds " ,
245+ name : "valid config with multiple streams " ,
242246 config : & streams.Config {
243- FeedIds : [] string { "0x0001" , "0x0002" , "0x0003" },
247+ StreamIds : [] uint32 { 1 , 2 , 3 },
244248 MaxFrequencyMs : 5000 ,
245249 },
246250 expectValid : true ,
247251 },
248252 {
249253 name : "high frequency" ,
250254 config : & streams.Config {
251- FeedIds : [] string { "0x0001" },
255+ StreamIds : [] uint32 { 1 },
252256 MaxFrequencyMs : 100 ,
253257 },
254258 expectValid : true ,
@@ -259,7 +263,7 @@ func TestConfigValidation(t *testing.T) {
259263 t .Run (tt .name , func (t * testing.T ) {
260264 // Basic validation - config should be creatable
261265 assert .NotNil (t , tt .config )
262- assert .NotEmpty (t , tt .config .FeedIds )
266+ assert .NotEmpty (t , tt .config .StreamIds )
263267 assert .Greater (t , tt .config .MaxFrequencyMs , uint64 (0 ))
264268 })
265269 }
@@ -352,33 +356,31 @@ func TestServerLifecycle(t *testing.T) {
352356 infos , err := srv .Infos (ctx )
353357 require .NoError (t , err )
354358 require .Len (t , infos , 1 )
355- assert .Equal (t , "streams-trigger@1 .0.0" , infos [0 ].ID )
359+ assert .Equal (t , "streams-trigger@2 .0.0" , infos [0 ].ID )
356360
357361 // Close
358362 err = srv .Close ()
359363 require .NoError (t , err )
360364 assert .True (t , mock .closeCalled , "Close should be called" )
361365 assert .Len (t , mockRegistry .removed , 1 , "Capability should be unregistered" )
362- assert .Equal (t , "streams-trigger@1 .0.0" , mockRegistry .removed [0 ])
366+ assert .Equal (t , "streams-trigger@2 .0.0" , mockRegistry .removed [0 ])
363367}
364368
365- // BenchmarkFeedCreation benchmarks creating Feed objects
366- func BenchmarkFeedCreation (b * testing.B ) {
369+ // BenchmarkReportCreation benchmarks creating Report objects
370+ func BenchmarkReportCreation (b * testing.B ) {
367371 for i := 0 ; i < b .N ; i ++ {
368- _ = & streams.Feed {
369- Timestamp : int64 (i ),
370- Metadata : & streams.SignersMetadata {
371- Signers : []string {"signer1" , "signer2" },
372- MinRequiredSignatures : 2 ,
373- },
374- Payload : []* streams.FeedReport {
372+ _ = & streams.Report {
373+ ConfigDigest : []byte {1 , 2 , 3 , 4 },
374+ SeqNr : uint64 (i ),
375+ Report : []byte ("report-data" ),
376+ Sigs : []* streams.OCRSignature {
377+ {
378+ Signer : 1 ,
379+ Signature : []byte ("sig1" ),
380+ },
375381 {
376- FeedId : "0x0001" ,
377- FullReport : []byte ("report" ),
378- ReportContext : []byte ("context" ),
379- Signatures : [][]byte {[]byte ("sig" )},
380- BenchmarkPrice : []byte ("price" ),
381- ObservationTimestamp : int64 (i ),
382+ Signer : 2 ,
383+ Signature : []byte ("sig2" ),
382384 },
383385 },
384386 }
0 commit comments