zv_test.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package example_chat_test
  2. import (
  3. "testing"
  4. "time"
  5. "git.ali33.ru/fcg-xvii/go-tools/json"
  6. "git.ali33.ru/fcg-xvii/rest"
  7. "git.ali33.ru/fcg-xvii/rest/example_chat/chat"
  8. ws "git.ali33.ru/fcg-xvii/rest/rest_websocket"
  9. )
  10. func TestChat(t *testing.T) {
  11. addr := "127.0.0.1:40000"
  12. clAddr := "ws://127.0.0.1:40000/ws"
  13. core := chat.New()
  14. server := rest.NewServer(addr, []byte("top-secret"))
  15. if err := server.Listen(time.Second); err != nil {
  16. t.Fatal(err)
  17. }
  18. app := NewApplication(core)
  19. restEngine := ws.New(app, core)
  20. restEngine.Prepare(server, "/ws")
  21. //ch := make(chan struct{})
  22. //<-ch
  23. cl, err := ws.NewClient(clAddr)
  24. if err != nil {
  25. t.Fatal(err)
  26. }
  27. t.Log(cl)
  28. /*
  29. mes := rest_websocket.(
  30. "/users/register",
  31. json.Map{
  32. "name": "LETO",
  33. "password": "my-pass-99",
  34. },
  35. nil,
  36. time.Second*10,
  37. rest.RequestTypeMessage,
  38. )
  39. */
  40. mes := &rest.RequestStream{
  41. Timeout: time.Now().Add(time.Second),
  42. Request: &rest.Request{
  43. Type: rest.RequestTypeIn,
  44. Command: "/users/register",
  45. Data: json.Map{
  46. "name": "LETO",
  47. "password": "my-pass-99",
  48. },
  49. },
  50. }
  51. answ, err := cl.SendMessage(mes)
  52. if err != nil {
  53. t.Fatal(err)
  54. }
  55. resp, ok := <-answ
  56. if !ok {
  57. t.Log("answer is not received")
  58. } else {
  59. t.Log("resp", resp.Data)
  60. }
  61. time.Sleep(time.Second * 5)
  62. cl.Close()
  63. time.Sleep(time.Second * 60)
  64. }