package tracking import ( "testing" "github.com/longjoy/micro-go-course/section19/cargo/mock" shipping "github.com/longjoy/micro-go-course/section19/cargo/model" ) func TestTrack(t *testing.T) { var cargos mock.CargoRepository cargos.FindFn = func(id shipping.TrackingID) (*shipping.Cargo, error) { return shipping.NewCargo("FTL456", shipping.RouteSpecification{ Origin: shipping.AUMEL, Destination: shipping.SESTO, }), nil } var events mock.HandlingEventRepository events.QueryHandlingHistoryFn = func(id shipping.TrackingID) shipping.HandlingHistory { return shipping.HandlingHistory{} } s := NewService(&cargos, &events) c, err := s.Track("FTL456") if err != nil { t.Fatal(err) } if c.TrackingID != "FTL456" { t.Errorf("c.TrackingID = %v; want = %v", c.TrackingID, "FTL456") } if c.Origin != "AUMEL" { t.Errorf("c.Origin = %v; want = %v", c.Destination, "AUMEL") } if c.Destination != "SESTO" { t.Errorf("c.Destination = %v; want = %v", c.Destination, "SESTO") } if c.StatusText != shipping.NotReceived.String() { t.Errorf("c.StatusText = %v; want = %v", c.StatusText, shipping.NotReceived.String()) } }