|
1 | 1 | package httpref |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "regexp" |
4 | 5 | "strings" |
5 | 6 | "testing" |
6 | 7 |
|
@@ -29,20 +30,34 @@ func TestReferences_ByName(t *testing.T) { |
29 | 30 | } |
30 | 31 |
|
31 | 32 | func TestReferences_InRange(t *testing.T) { |
32 | | - tests := []string{ |
33 | | - "19150", |
34 | | - "16406", |
35 | | - "5988", |
36 | | - "5989", |
| 33 | + tests := []struct { |
| 34 | + having string |
| 35 | + expect string |
| 36 | + }{ |
| 37 | + {having: "19150", expect: "10000-20000"}, |
| 38 | + {having: "16406", expect: "10000-20000"}, |
| 39 | + {having: "5988", expect: "5988-5989"}, |
| 40 | + {having: "5989", expect: "5988-5989"}, |
37 | 41 | } |
38 | 42 |
|
39 | 43 | for _, tt := range tests { |
40 | | - t.Run(tt, func(t *testing.T) { |
41 | | - if got := RegisteredPorts.InRange(tt); len(got) != 1 { |
| 44 | + t.Run(tt.having, func(t *testing.T) { |
| 45 | + got := RegisteredPorts.InRange(tt.having) |
| 46 | + if len(got) != 1 { |
42 | 47 | t.Errorf("References.InRange() = %v, want %v", len(got), 1) |
43 | 48 | } |
| 49 | + if got[0].Name != tt.expect { |
| 50 | + t.Errorf("References.InRange()[0] = %v, want %v", got[0].Name, tt.expect) |
| 51 | + } |
44 | 52 | }) |
45 | 53 | } |
| 54 | + |
| 55 | + t.Run("Invalid port should not return anything", func(t *testing.T) { |
| 56 | + got := RegisteredPorts.InRange("70000") // Invalid port, should not return anything |
| 57 | + if len(got) != 0 { |
| 58 | + t.Errorf("References.InRange() = %v, want %v", len(got), 0) |
| 59 | + } |
| 60 | + }) |
46 | 61 | } |
47 | 62 |
|
48 | 63 | func TestReference_SummarizeContainsCorrectParts(t *testing.T) { |
@@ -86,3 +101,13 @@ func TestReferences_Titles(t *testing.T) { |
86 | 101 | n := Statuses.Titles() |
87 | 102 | assert.Equal(t, 5, len(n)) |
88 | 103 | } |
| 104 | + |
| 105 | +func TestPortsConsistencyValidation(t *testing.T) { |
| 106 | + ports := append(WellKnownPorts[1:], RegisteredPorts[1:]...) |
| 107 | + var validRange = regexp.MustCompile(`^\d+(-\d+)?$`) |
| 108 | + for _, port := range ports { |
| 109 | + if !validRange.MatchString(port.Name) { |
| 110 | + t.Errorf("Invalid port format: %v", port.Name) |
| 111 | + } |
| 112 | + } |
| 113 | +} |
0 commit comments