You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

51 lines
1.5KB

  1. package main
  2. import (
  3. "testing"
  4. )
  5. func TestChatState(t *testing.T) {
  6. openID := "id"
  7. procedure := "getUserBasicProfile"
  8. s := createEmptyState(openID, procedure, 100)
  9. s.Name = "waiting for username"
  10. s.Data = map[string]string{
  11. "txt": "What is your date of birth?",
  12. "icon": "/mnt/data/abc.jpg",
  13. }
  14. s.response = "somexml less than 2048 bytes"
  15. //save
  16. err := s.Save()
  17. AssertEqual(t, err, nil, "save state should be successful")
  18. //read out
  19. m := chatState{}
  20. m.Load(openID, procedure)
  21. //compare
  22. AssertEqual(t, m.Name, s.Name, "Name should be equal")
  23. AssertEqual(t, m.Expire, s.Expire, "Expire should be equal")
  24. AssertEqual(t, m.Data["txt"], s.Data["txt"], "Message[txt] should be equal")
  25. AssertEqual(t, m.Data["icon"], s.Data["icon"], "Message[icon] should be equal")
  26. AssertEqual(t, m.OpenID, openID, "openID should be "+openID)
  27. AssertEqual(t, m.response, "", "response should be empty")
  28. AssertEqual(t, m.Procedure, procedure, "procedure should be "+procedure)
  29. AssertEqual(t, m.Data["txt"], s.Data["txt"], "Message[txt] should be equal")
  30. AssertEqual(t, m.Data["icon"], s.Data["icon"], "Message[icon] should be equal")
  31. err = s.Delete()
  32. AssertEqual(t, err, nil, "delete chatState should be good")
  33. }
  34. func TestStartProcedure(t *testing.T) {
  35. openID := "id"
  36. s := startProcedure(openID, "TestDummy")
  37. AssertEqual(t, s != nil, true, "TestDummy should return error")
  38. s = startProcedure(openID, "TestEcho")
  39. AssertEqual(t, s, nil, "TestEqual should return success")
  40. //read it back
  41. //TODO read it back and check it
  42. }