Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

50 lines
1.6KB

  1. package main
  2. import (
  3. "testing"
  4. "time"
  5. )
  6. func TestChatState(t *testing.T) {
  7. procedure := "getUserBasicProfile"
  8. s := chatState{}
  9. s.Name = "waiting for username"
  10. s.Expire = int32(time.Now().Unix() + 200)
  11. s.Send.Message = map[string]string{
  12. "txt": "What is your date of birth?",
  13. "icon": "/mnt/data/abc.jpg"}
  14. s.Send.Type = "text"
  15. s.Receive.Hint = "hint"
  16. s.Receive.Validator = "validator email"
  17. s.Receive.Message = map[string]string{
  18. "rtxt": "should be 3 chars at least",
  19. "ricon": "icon path should be available"}
  20. //save
  21. n, err := setCurrentState("id", procedure, s)
  22. AssertEqual(t, err, nil, "save state should be successful")
  23. //read out
  24. m, _ := getCurrentState("id", procedure)
  25. //compare
  26. AssertEqual(t, m.Name, n.Name, "Name should be equal")
  27. AssertEqual(t, m.Expire, n.Expire, "Expire should be equal")
  28. AssertEqual(t, m.Send.Type, n.Send.Type, "Send.Type should be equal")
  29. AssertEqual(t, m.Send.Message["txt"], n.Send.Message["txt"], "Message[txt] should be equal")
  30. AssertEqual(t, m.Send.Message["icon"], n.Send.Message["icon"], "Message[icon] should be equal")
  31. AssertEqual(t, m.Receive.Message["rtxt"], n.Receive.Message["rtxt"], "Message[rtxt] should be equal")
  32. AssertEqual(t, m.Receive.Message["ricon"], n.Receive.Message["ricon"], "Message[ricon] should be equal")
  33. err = deleteChatState("id", procedure)
  34. AssertEqual(t, err, nil, "delete chatState should be good")
  35. }
  36. func TestStartProcedure(t *testing.T) {
  37. s := startProcedure("id", "TestDummy")
  38. AssertEqual(t, s != nil, true, "TestDummy should return error")
  39. s = startProcedure("id", "TestEcho")
  40. AssertEqual(t, s, nil, "TestEqual should return success")
  41. }