|
@@ -165,7 +165,7 @@ func TestNotifications(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func waitForMessages(t *testing.T, in *json.Decoder, successes chan<- jsonSuccessResponse,
|
|
func waitForMessages(t *testing.T, in *json.Decoder, successes chan<- jsonSuccessResponse,
|
|
|
- failures chan<- jsonErrResponse, notifications chan<- jsonNotification) {
|
|
|
|
|
|
|
+ failures chan<- jsonErrResponse, notifications chan<- jsonNotification, errors chan<- error) {
|
|
|
|
|
|
|
|
// read and parse server messages
|
|
// read and parse server messages
|
|
|
for {
|
|
for {
|
|
@@ -177,12 +177,14 @@ func waitForMessages(t *testing.T, in *json.Decoder, successes chan<- jsonSucces
|
|
|
var responses []map[string]interface{}
|
|
var responses []map[string]interface{}
|
|
|
if rmsg[0] == '[' {
|
|
if rmsg[0] == '[' {
|
|
|
if err := json.Unmarshal(rmsg, &responses); err != nil {
|
|
if err := json.Unmarshal(rmsg, &responses); err != nil {
|
|
|
- t.Fatalf("Received invalid message: %s", rmsg)
|
|
|
|
|
|
|
+ errors <- fmt.Errorf("Received invalid message: %s", rmsg)
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
var msg map[string]interface{}
|
|
var msg map[string]interface{}
|
|
|
if err := json.Unmarshal(rmsg, &msg); err != nil {
|
|
if err := json.Unmarshal(rmsg, &msg); err != nil {
|
|
|
- t.Fatalf("Received invalid message: %s", rmsg)
|
|
|
|
|
|
|
+ errors <- fmt.Errorf("Received invalid message: %s", rmsg)
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
responses = append(responses, msg)
|
|
responses = append(responses, msg)
|
|
|
}
|
|
}
|
|
@@ -216,7 +218,7 @@ func waitForMessages(t *testing.T, in *json.Decoder, successes chan<- jsonSucces
|
|
|
}
|
|
}
|
|
|
continue
|
|
continue
|
|
|
}
|
|
}
|
|
|
- t.Fatalf("Received invalid message: %s", msg)
|
|
|
|
|
|
|
+ errors <- fmt.Errorf("Received invalid message: %s", msg)
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -235,6 +237,8 @@ func TestSubscriptionMultipleNamespaces(t *testing.T) {
|
|
|
successes = make(chan jsonSuccessResponse)
|
|
successes = make(chan jsonSuccessResponse)
|
|
|
failures = make(chan jsonErrResponse)
|
|
failures = make(chan jsonErrResponse)
|
|
|
notifications = make(chan jsonNotification)
|
|
notifications = make(chan jsonNotification)
|
|
|
|
|
+
|
|
|
|
|
+ errors = make(chan error, 10)
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
// setup and start server
|
|
// setup and start server
|
|
@@ -248,7 +252,7 @@ func TestSubscriptionMultipleNamespaces(t *testing.T) {
|
|
|
defer server.Stop()
|
|
defer server.Stop()
|
|
|
|
|
|
|
|
// wait for message and write them to the given channels
|
|
// wait for message and write them to the given channels
|
|
|
- go waitForMessages(t, in, successes, failures, notifications)
|
|
|
|
|
|
|
+ go waitForMessages(t, in, successes, failures, notifications, errors)
|
|
|
|
|
|
|
|
// create subscriptions one by one
|
|
// create subscriptions one by one
|
|
|
n := 3
|
|
n := 3
|
|
@@ -297,6 +301,8 @@ func TestSubscriptionMultipleNamespaces(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
select {
|
|
select {
|
|
|
|
|
+ case err := <-errors:
|
|
|
|
|
+ t.Fatal(err)
|
|
|
case suc := <-successes: // subscription created
|
|
case suc := <-successes: // subscription created
|
|
|
subids[namespaces[int(suc.Id.(float64))]] = suc.Result.(string)
|
|
subids[namespaces[int(suc.Id.(float64))]] = suc.Result.(string)
|
|
|
case failure := <-failures:
|
|
case failure := <-failures:
|