Beispiel #1
0
func ParseSetUserStateResponse(pubnubInstance *messaging.Pubnub, 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)
			//fmt.Println("Test '" + testName + "':" +response)
			message := fmt.Sprintf("{\"%s\": \"%s\"}", key, val)
			//fmt.Println("%s", message)
			if strings.Contains(response, message) {
				errorChannel := make(chan []byte)
				returnChannel2 := make(chan []byte)
				time.Sleep(3 * time.Second)

				if testName == "SetGetUserState" {
					go pubnubInstance.GetUserState(channel, returnChannel2, errorChannel)
				} else if testName == "SetGetUserStateHereNow" {
					go pubnubInstance.HereNow(channel, true, true, returnChannel2, errorChannel)
				} else if testName == "SetGetUserStateGlobalHereNow" {
					go pubnubInstance.GlobalHereNow(true, true, returnChannel2, errorChannel)
				}
				go ParseUserStateResponse(returnChannel2, channel, key, val, testName, responseChannel)
				go ParseErrorResponse(errorChannel, responseChannel)

				break
			} else {
				responseChannel <- "Test '" + testName + "': failed."
				break
			}
		}
	}
}