parse_test.go 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package initdata
  2. import (
  3. "reflect"
  4. "testing"
  5. )
  6. const (
  7. _parseTestInitData = "query_id=AAHdF6IQAAAAAN0XohDhrOrc&user=%7B%22id%22%3A279058397%2C%22first_name%22%3A%22Vladislav%22%2C%22last_name%22%3A%22Kibenko%22%2C%22username%22%3A%22vdkfrost%22%2C%22language_code%22%3A%22ru%22%2C%22is_premium%22%3Atrue%7D&auth_date=1662771648&hash=c501b71e775f74ce10e377dea85a7ea24ecd640b223ea86dfe453e0eaed2e2b2&start_param=abc"
  8. )
  9. type testParse struct {
  10. initData string
  11. expectedErr error
  12. expectedRes InitData
  13. }
  14. var testsParse = []testParse{
  15. {
  16. initData: _parseTestInitData + ";",
  17. expectedErr: ErrUnexpectedFormat,
  18. },
  19. {
  20. initData: _parseTestInitData,
  21. expectedRes: InitData{
  22. QueryID: "AAHdF6IQAAAAAN0XohDhrOrc",
  23. User: User{
  24. ID: 279058397,
  25. FirstName: "Vladislav",
  26. LastName: "Kibenko",
  27. Username: "vdkfrost",
  28. LanguageCode: "ru",
  29. IsPremium: true,
  30. },
  31. CanSendAfterRaw: 0,
  32. AuthDateRaw: 1662771648,
  33. StartParam: "abc",
  34. Hash: "c501b71e775f74ce10e377dea85a7ea24ecd640b223ea86dfe453e0eaed2e2b2",
  35. },
  36. },
  37. }
  38. func TestParse(t *testing.T) {
  39. for _, test := range testsParse {
  40. if data, err := Parse(test.initData); err != test.expectedErr {
  41. t.Errorf("expected error to be %q. \nReceived %q", test.expectedErr, err)
  42. } else if !reflect.DeepEqual(data, test.expectedRes) {
  43. t.Errorf("expected result to be %+v. \nReceived %+v", test.expectedRes, data)
  44. }
  45. }
  46. }