Add test for metadata generation
This commit is contained in:
		
							parent
							
								
									43d89119bf
								
							
						
					
					
						commit
						ee2c8abd08
					
				
							
								
								
									
										57
									
								
								cif/process_test.go
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								cif/process_test.go
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,57 @@ | ||||
| package cif | ||||
| 
 | ||||
| import ( | ||||
| 	"testing" | ||||
| 	"time" | ||||
| 
 | ||||
| 	"git.fjla.uk/owlboard/go-types/pkg/upstreamApi" | ||||
| 	"git.fjla.uk/owlboard/timetable-mgr/dbAccess" | ||||
| ) | ||||
| 
 | ||||
| func TestGenerateMetadata(t *testing.T) { | ||||
| 	header := &upstreamApi.JsonTimetableV1{ | ||||
| 		Classification: "public", | ||||
| 		Timestamp:      1711227636, | ||||
| 		Owner:          "Network Rail", | ||||
| 		Sender: upstreamApi.TimetableSender{ | ||||
| 			Organisation: "Rockshore", | ||||
| 			Application:  "NTROD", | ||||
| 			Component:    "SCHEDULE", | ||||
| 		}, | ||||
| 		Metadata: upstreamApi.TimetableMetadata{ | ||||
| 			Type:     "update", | ||||
| 			Sequence: 4307, | ||||
| 		}, | ||||
| 	} | ||||
| 
 | ||||
| 	expected := &dbAccess.CifMetadata{ | ||||
| 		Doctype:       dbAccess.Doctype, | ||||
| 		LastTimestamp: header.Timestamp, | ||||
| 		LastSequence:  header.Metadata.Sequence, | ||||
| 		LastUpdate:    time.Now().In(londonTimezone), | ||||
| 	} | ||||
| 
 | ||||
| 	result := generateMetadata(header) | ||||
| 
 | ||||
| 	if result == nil { | ||||
| 		t.Errorf("generateMetadata returned nil pointer") | ||||
| 	} | ||||
| 
 | ||||
| 	if result.Doctype != expected.Doctype { | ||||
| 		t.Errorf("Doctype: expected %s, got %s", expected.Doctype, result.Doctype) | ||||
| 	} | ||||
| 
 | ||||
| 	if result.LastTimestamp != expected.LastTimestamp { | ||||
| 		t.Errorf("LastTimestamp: expected %d, got %d", expected.LastTimestamp, result.LastTimestamp) | ||||
| 	} | ||||
| 
 | ||||
| 	if result.LastSequence != expected.LastSequence { | ||||
| 		t.Errorf("LastSequence: expected %d, got %d", expected.LastSequence, result.LastSequence) | ||||
| 	} | ||||
| 
 | ||||
| 	tolerance := time.Second | ||||
| 	if !result.LastUpdate.Before(expected.LastUpdate.Add(tolerance)) || | ||||
| 		!result.LastUpdate.After(expected.LastUpdate.Add(-tolerance)) { | ||||
| 		t.Errorf("LastUpdate: expected %s, got %s", expected.LastUpdate, result.LastUpdate) | ||||
| 	} | ||||
| } | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user