func ParseSetUserStateResponseJSON(pubnubInstance *messaging.Pubnub, returnChannel chan []byte, channel string, key1 string, val1 string, key2 string, val2 string, jsonString string, testName string, responseChannel chan string) { for { value, ok := <-returnChannel if !ok { break } if string(value) != "[]" { response := fmt.Sprintf("%s", value) //fmt.Println("Test JSON'" + testName + "':" +response) jsonString = fmt.Sprintf("{\"%s\": \"%s\", \"%s\": \"%s\"}", key2, val2, key1, val1) if strings.Contains(response, jsonString) { errorChannel := make(chan []byte) returnChannel2 := make(chan []byte) time.Sleep(3 * time.Second) go pubnubInstance.SetUserStateKeyVal(channel, key2, "", returnChannel2, errorChannel) go ParseUserStateResponse(returnChannel2, channel, key1, val1, testName, responseChannel) go ParseErrorResponse(errorChannel, responseChannel) break } else { responseChannel <- "Test '" + testName + "': failed." break } } } }
func ParseSubcribeResponseForUserState(pubnubInstance *messaging.Pubnub, t *testing.T, returnChannel chan []byte, channel string, key string, val string, testName string, responseChannel chan string) { for { value, ok := <-returnChannel if !ok { break } if string(value) != "[]" { response := fmt.Sprintf("%s", value) message := "'" + channel + "' connected" messageReconn := "'" + channel + "' reconnected" if (strings.Contains(response, message)) || (strings.Contains(response, messageReconn)) { time.Sleep(1 * time.Second) errorChannel := make(chan []byte) returnChannel2 := make(chan []byte) go pubnubInstance.SetUserStateKeyVal(channel, key, val, returnChannel2, errorChannel) go ParseSetUserStateResponse(pubnubInstance, returnChannel2, channel, key, val, testName, responseChannel) go ParseErrorResponse(errorChannel, responseChannel) } break } } }