(t *testing.T)
| 1129 | } |
| 1130 | |
| 1131 | func TestConnectHandler(t *testing.T) { |
| 1132 | handler := func(ch chan bool) func(*nats.Conn) { |
| 1133 | return func(*nats.Conn) { |
| 1134 | ch <- true |
| 1135 | } |
| 1136 | } |
| 1137 | t.Run("with RetryOnFailedConnect, connection established", func(t *testing.T) { |
| 1138 | s := RunDefaultServer() |
| 1139 | defer s.Shutdown() |
| 1140 | |
| 1141 | connected := make(chan bool) |
| 1142 | reconnected := make(chan bool) |
| 1143 | |
| 1144 | nc, err := nats.Connect(nats.DefaultURL, |
| 1145 | nats.ConnectHandler(handler(connected)), |
| 1146 | nats.ReconnectHandler(handler(reconnected)), |
| 1147 | nats.RetryOnFailedConnect(true)) |
| 1148 | if err != nil { |
| 1149 | t.Fatalf("Unexpected error: %v", err) |
| 1150 | } |
| 1151 | defer nc.Close() |
| 1152 | if err = Wait(connected); err != nil { |
| 1153 | t.Fatal("Timeout waiting for connect handler") |
| 1154 | } |
| 1155 | if err = WaitTime(reconnected, 100*time.Millisecond); err == nil { |
| 1156 | t.Fatal("Reconnect handler should not have been invoked") |
| 1157 | } |
| 1158 | }) |
| 1159 | t.Run("with RetryOnFailedConnect, connection failed", func(t *testing.T) { |
| 1160 | connected := make(chan bool) |
| 1161 | reconnected := make(chan bool) |
| 1162 | |
| 1163 | nc, err := nats.Connect(nats.DefaultURL, |
| 1164 | nats.ConnectHandler(handler(connected)), |
| 1165 | nats.ReconnectHandler(handler(reconnected)), |
| 1166 | nats.RetryOnFailedConnect(true)) |
| 1167 | if err != nil { |
| 1168 | t.Fatalf("Unexpected error: %v", err) |
| 1169 | } |
| 1170 | defer nc.Close() |
| 1171 | if err = WaitTime(connected, 100*time.Millisecond); err == nil { |
| 1172 | t.Fatal("Connected handler should not have been invoked") |
| 1173 | } |
| 1174 | if err = WaitTime(reconnected, 100*time.Millisecond); err == nil { |
| 1175 | t.Fatal("Reconnect handler should not have been invoked") |
| 1176 | } |
| 1177 | }) |
| 1178 | t.Run("no RetryOnFailedConnect, connection established", func(t *testing.T) { |
| 1179 | s := RunDefaultServer() |
| 1180 | defer s.Shutdown() |
| 1181 | |
| 1182 | connected := make(chan bool) |
| 1183 | reconnected := make(chan bool) |
| 1184 | nc, err := nats.Connect(nats.DefaultURL, |
| 1185 | nats.ConnectHandler(handler(connected)), |
| 1186 | nats.ReconnectHandler(handler(reconnected))) |
| 1187 | if err != nil { |
| 1188 | t.Fatalf("Unexpected error: %v", err) |
nothing calls this directly
no test coverage detected