fetch_source_context_test.go 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. // Copyright 2012-2015 Oliver Eilhard. All rights reserved.
  2. // Use of this source code is governed by a MIT-license.
  3. // See http://olivere.mit-license.org/license.txt for details.
  4. package elastic
  5. import (
  6. "encoding/json"
  7. "testing"
  8. )
  9. func TestFetchSourceContextNoFetchSource(t *testing.T) {
  10. builder := NewFetchSourceContext(false)
  11. data, err := json.Marshal(builder.Source())
  12. if err != nil {
  13. t.Fatalf("marshaling to JSON failed: %v", err)
  14. }
  15. got := string(data)
  16. expected := `false`
  17. if got != expected {
  18. t.Errorf("expected\n%s\n,got:\n%s", expected, got)
  19. }
  20. }
  21. func TestFetchSourceContextNoFetchSourceIgnoreIncludesAndExcludes(t *testing.T) {
  22. builder := NewFetchSourceContext(false).Include("a", "b").Exclude("c")
  23. data, err := json.Marshal(builder.Source())
  24. if err != nil {
  25. t.Fatalf("marshaling to JSON failed: %v", err)
  26. }
  27. got := string(data)
  28. expected := `false`
  29. if got != expected {
  30. t.Errorf("expected\n%s\n,got:\n%s", expected, got)
  31. }
  32. }
  33. func TestFetchSourceContextFetchSource(t *testing.T) {
  34. builder := NewFetchSourceContext(true)
  35. data, err := json.Marshal(builder.Source())
  36. if err != nil {
  37. t.Fatalf("marshaling to JSON failed: %v", err)
  38. }
  39. got := string(data)
  40. expected := `{"excludes":[],"includes":[]}`
  41. if got != expected {
  42. t.Errorf("expected\n%s\n,got:\n%s", expected, got)
  43. }
  44. }
  45. func TestFetchSourceContextFetchSourceWithIncludesAndExcludes(t *testing.T) {
  46. builder := NewFetchSourceContext(true).Include("a", "b").Exclude("c")
  47. data, err := json.Marshal(builder.Source())
  48. if err != nil {
  49. t.Fatalf("marshaling to JSON failed: %v", err)
  50. }
  51. got := string(data)
  52. expected := `{"excludes":["c"],"includes":["a","b"]}`
  53. if got != expected {
  54. t.Errorf("expected\n%s\n,got:\n%s", expected, got)
  55. }
  56. }
  57. func TestFetchSourceContextQueryDefaults(t *testing.T) {
  58. builder := NewFetchSourceContext(true)
  59. values := builder.Query()
  60. got := values.Encode()
  61. expected := ""
  62. if got != expected {
  63. t.Errorf("expected %q; got: %q", expected, got)
  64. }
  65. }
  66. func TestFetchSourceContextQueryNoFetchSource(t *testing.T) {
  67. builder := NewFetchSourceContext(false)
  68. values := builder.Query()
  69. got := values.Encode()
  70. expected := "_source=false"
  71. if got != expected {
  72. t.Errorf("expected %q; got: %q", expected, got)
  73. }
  74. }
  75. func TestFetchSourceContextQueryFetchSourceWithIncludesAndExcludes(t *testing.T) {
  76. builder := NewFetchSourceContext(true).Include("a", "b").Exclude("c")
  77. values := builder.Query()
  78. got := values.Encode()
  79. expected := "_source_exclude=c&_source_include=a%2Cb"
  80. if got != expected {
  81. t.Errorf("expected %q; got: %q", expected, got)
  82. }
  83. }