penguin/golifehk

@golifehk bot in Telegram

datasources/cjlookup/query_test.go

raw · 1266 bytes

package cjlookup

import (
	"strings"
	"testing"
)

func TestQuery(t *testing.T) {
	qo := Query("zh-Hant", "jp jyut6")
	mesg, err := qo.Message()
	if err != nil {
		t.Errorf("Unexpected Error: %s", err)
	}

	if !strings.Contains(mesg, "粵42") {
		t.Errorf("Expected 粵42 in response, got \"%s\" instead", mesg)
	}

	qo = Query("zh-Hant", "jp jyut6")
	mesg, err = qo.Message()
	if !strings.Contains(mesg, "粵42") {
		t.Errorf("Expected 粵42 in response, got \"%s\" instead", mesg)
	}

	qo = Query("zh-Hant", "NaN")
	mesg, err = qo.Message()
	if err == nil {
		t.Errorf("Expecting error, got \"%s\" instead", mesg)
	}

	qo = Query("zh-Hant", "jp 粵")
	mesg, err = qo.Message()
	if !strings.Contains(mesg, "閲62") {
		t.Errorf("Expected 閲62 in response, got \"%s\" instead", mesg)
	}

	qo = Query("zh-Hant", "jp 粵 62")
	mesg, err = qo.Message()
	if !strings.Contains(mesg, "閲62") {
		t.Errorf("Expected 閲62 in response, got \"%s\" instead", mesg)
	}

	qo = Query("zh-Hant", "jp jeng4 1")
	mesg, err = qo.Message()
	if strings.Contains(mesg, "同音字") {
		t.Error("Unexpected TungJamZi for jeng4")
	}

	qo = Query("zh-Hant", "jp 數")
	mesg, err = qo.Message()
	if !strings.Contains(mesg, "異讀: [cuk1]") {
		t.Error("Expecting 異讀 from 數")
	}
}