put_mapping_test.go 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  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. "testing"
  7. )
  8. func TestPutMappingURL(t *testing.T) {
  9. client := setupTestClientAndCreateIndex(t)
  10. tests := []struct {
  11. Indices []string
  12. Type string
  13. Expected string
  14. }{
  15. {
  16. []string{},
  17. "tweet",
  18. "/_mapping/tweet",
  19. },
  20. {
  21. []string{"*"},
  22. "tweet",
  23. "/%2A/_mapping/tweet",
  24. },
  25. {
  26. []string{"store-1", "store-2"},
  27. "tweet",
  28. "/store-1%2Cstore-2/_mapping/tweet",
  29. },
  30. }
  31. for _, test := range tests {
  32. path, _, err := client.PutMapping().Index(test.Indices...).Type(test.Type).buildURL()
  33. if err != nil {
  34. t.Fatal(err)
  35. }
  36. if path != test.Expected {
  37. t.Errorf("expected %q; got: %q", test.Expected, path)
  38. }
  39. }
  40. }
  41. func TestMappingLifecycle(t *testing.T) {
  42. client := setupTestClientAndCreateIndex(t)
  43. mapping := `{
  44. "tweetdoc":{
  45. "properties":{
  46. "message":{
  47. "type":"string",
  48. "store":true
  49. }
  50. }
  51. }
  52. }`
  53. putresp, err := client.PutMapping().Index(testIndexName2).Type("tweetdoc").BodyString(mapping).Do()
  54. if err != nil {
  55. t.Fatalf("expected put mapping to succeed; got: %v", err)
  56. }
  57. if putresp == nil {
  58. t.Fatalf("expected put mapping response; got: %v", putresp)
  59. }
  60. if !putresp.Acknowledged {
  61. t.Fatalf("expected put mapping ack; got: %v", putresp.Acknowledged)
  62. }
  63. getresp, err := client.GetMapping().Index(testIndexName2).Type("tweetdoc").Do()
  64. if err != nil {
  65. t.Fatalf("expected get mapping to succeed; got: %v", err)
  66. }
  67. if getresp == nil {
  68. t.Fatalf("expected get mapping response; got: %v", getresp)
  69. }
  70. props, ok := getresp[testIndexName2]
  71. if !ok {
  72. t.Fatalf("expected JSON root to be of type map[string]interface{}; got: %#v", props)
  73. }
  74. delresp, err := client.DeleteMapping().Index(testIndexName2).Type("tweetdoc").Do()
  75. if err != nil {
  76. t.Fatalf("expected delete mapping to succeed; got: %v", err)
  77. }
  78. if delresp == nil {
  79. t.Fatalf("expected delete mapping response; got: %v", delresp)
  80. }
  81. if !delresp.Acknowledged {
  82. t.Fatalf("expected delete mapping ack; got: %v", delresp.Acknowledged)
  83. }
  84. }