(t *testing.T)
| 11 | ) |
| 12 | |
| 13 | func Test_Server_Run_success(t *testing.T) { |
| 14 | t.Parallel() |
| 15 | |
| 16 | ctrl := gomock.NewController(t) |
| 17 | |
| 18 | logger := NewMockLogger(ctrl) |
| 19 | logger.EXPECT().Info(newRegexMatcher("^http server listening on 127.0.0.1:[1-9][0-9]{0,4}$")) |
| 20 | const shutdownTimeout = 10 * time.Second |
| 21 | |
| 22 | server := &Server{ |
| 23 | address: "127.0.0.1:0", |
| 24 | addressSet: make(chan struct{}), |
| 25 | logger: logger, |
| 26 | shutdownTimeout: shutdownTimeout, |
| 27 | } |
| 28 | |
| 29 | ctx, cancel := context.WithCancel(context.Background()) |
| 30 | ready := make(chan struct{}) |
| 31 | done := make(chan struct{}) |
| 32 | |
| 33 | go server.Run(ctx, ready, done) |
| 34 | |
| 35 | addressRegex := regexp.MustCompile(`^127.0.0.1:[1-9][0-9]{0,4}$`) |
| 36 | address := server.GetAddress() |
| 37 | assert.Regexp(t, addressRegex, address) |
| 38 | address = server.GetAddress() |
| 39 | assert.Regexp(t, addressRegex, address) |
| 40 | |
| 41 | <-ready |
| 42 | |
| 43 | cancel() |
| 44 | _, ok := <-done |
| 45 | assert.False(t, ok) |
| 46 | } |
| 47 | |
| 48 | func Test_Server_Run_failure(t *testing.T) { |
| 49 | t.Parallel() |
nothing calls this directly
no test coverage detected