Go client for the Write.as API https://developers.write.as
Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

117 wiersze
2.3 KiB

  1. package writeas
  2. import (
  3. "testing"
  4. "fmt"
  5. "strings"
  6. )
  7. func TestCreatePost(t *testing.T) {
  8. wac := NewClient()
  9. p, err := wac.CreatePost(&PostParams{
  10. Title: "Title!",
  11. Content: "This is a post.",
  12. Font: "sans",
  13. })
  14. if err != nil {
  15. t.Errorf("Post create failed: %v", err)
  16. return
  17. }
  18. t.Logf("Post created: %+v", p)
  19. token := p.Token
  20. // Update post
  21. p, err = wac.UpdatePost(&PostParams{
  22. ID: p.ID,
  23. Token: token,
  24. Content: "Now it's been updated!",
  25. })
  26. if err != nil {
  27. t.Errorf("Post update failed: %v", err)
  28. return
  29. }
  30. t.Logf("Post updated: %+v", p)
  31. // Delete post
  32. err = wac.DeletePost(&PostParams{
  33. ID: p.ID,
  34. Token: token,
  35. })
  36. if err != nil {
  37. t.Errorf("Post delete failed: %v", err)
  38. return
  39. }
  40. t.Logf("Post deleted!")
  41. }
  42. func TestGetPost(t *testing.T) {
  43. dwac := NewDevClient()
  44. res, err := dwac.GetPost("zekk5r9apum6p")
  45. if err != nil {
  46. t.Errorf("Unexpected fetch results: %+v, err: %v\n", res, err)
  47. } else {
  48. t.Logf("Post: %+v", res)
  49. if res.Content != "This is a post." {
  50. t.Errorf("Unexpected fetch results: %+v\n", res)
  51. }
  52. }
  53. wac := NewClient()
  54. res, err = wac.GetPost("3psnxyhqxy3hq")
  55. if err != nil {
  56. t.Errorf("Unexpected fetch results: %+v, err: %v\n", res, err)
  57. } else {
  58. if !strings.HasPrefix(res.Content, " Write.as Blog") {
  59. t.Errorf("Unexpected fetch results: %+v\n", res)
  60. }
  61. }
  62. }
  63. func TestPinPost(t *testing.T) {
  64. dwac := NewDevClient()
  65. _, err := dwac.LogIn("demo", "demo")
  66. if err != nil {
  67. t.Fatalf("Unable to log in: %v", err)
  68. }
  69. defer dwac.LogOut()
  70. err = dwac.PinPost("tester", &PinnedPostParams{ID: "olx6uk7064heqltf"})
  71. if err != nil {
  72. t.Fatalf("Pin failed: %v", err)
  73. }
  74. }
  75. func TestUnpinPost(t *testing.T) {
  76. dwac := NewDevClient()
  77. _, err := dwac.LogIn("demo", "demo")
  78. if err != nil {
  79. t.Fatalf("Unable to log in: %v", err)
  80. }
  81. defer dwac.LogOut()
  82. err = dwac.UnpinPost("tester", &PinnedPostParams{ID: "olx6uk7064heqltf"})
  83. if err != nil {
  84. t.Fatalf("Unpin failed: %v", err)
  85. }
  86. }
  87. func ExampleClient_CreatePost() {
  88. c := NewClient()
  89. // Publish a post
  90. p, err := c.CreatePost(&PostParams{
  91. Title: "Title!",
  92. Content: "This is a post.",
  93. Font: "sans",
  94. })
  95. if err != nil {
  96. fmt.Printf("Unable to create: %v", err)
  97. return
  98. }
  99. fmt.Printf("%s", p.Content)
  100. // Output: This is a post.
  101. }