PageRenderTime 46ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/test/test_task.rb

https://github.com/Acidburn0zzz/nirv
Ruby | 116 lines | 77 code | 28 blank | 11 comment | 1 complexity | 706314b02240960cf05d035b20a4e82c MD5 | raw file
Possible License(s): MIT
  1. require File.dirname(__FILE__) + "/helper"
  2. module NirvanaHQTests
  3. TASK_YAML = File.dirname(__FILE__) + "/examples/task.yaml"
  4. class NirvanaHQAddTrashTaskTest < Test::Unit::TestCase
  5. def setup
  6. @task = YAML::load_file(TASK_YAML)
  7. @nirvana = NirvanaHQ.new $nirvana_config
  8. end
  9. def new_task
  10. task = {
  11. "id" => UUID.generate,
  12. "name" => "Test Task #{rand(100)}",
  13. "_name" => Time.now.to_i
  14. }
  15. File.open( TASK_YAML, 'w' ) do |out|
  16. YAML.dump( task, out )
  17. end
  18. task
  19. end
  20. def test_add_task
  21. task = self.new_task
  22. puts "Creating #{task['name']}\n"
  23. # task.add expects a hash
  24. result = @nirvana.add task
  25. result = JSON.parse(result)
  26. assert result.keys.include?('results')
  27. assert result['results'][0]
  28. assert result['results'][0].keys.include?('task')
  29. assert_equal task["id"], result['results'][0]['task']['id']
  30. end
  31. def test_trash_task
  32. result = @nirvana.trash @task['id']
  33. result = JSON.parse(result)
  34. assert result.keys.include?('results')
  35. assert result['results'][0]
  36. assert result['results'][0].keys.include?('task')
  37. assert_equal "6", result['results'][0]['task']['state']
  38. end
  39. end
  40. class NirvanaHQDeleteUndeleteTaskTest < Test::Unit::TestCase
  41. def setup
  42. @task = YAML::load_file(TASK_YAML)
  43. @nirvana = NirvanaHQ.new $nirvana_config
  44. end
  45. # more destructive. No way to recover (afaik) via ui
  46. # here more as an example than anything else.
  47. def test_delete_task
  48. result = @nirvana.delete @task['id']
  49. result = JSON.parse(result)
  50. assert result.keys.include?('results')
  51. assert result['results'][0]
  52. assert result['results'][0].keys.include?('task')
  53. assert "0" != result['results'][0]['task']['deleted']
  54. end
  55. def test_undelete_task
  56. result = @nirvana.undelete @task['id']
  57. result = JSON.parse(result)
  58. assert result.keys.include?('results')
  59. assert result['results'][0]
  60. assert result['results'][0].keys.include?('task')
  61. assert_equal "0", result['results'][0]['task']['deleted']
  62. # pause for a sec, to make sure delete timestamp is later. clean up
  63. @nirvana.delete @task['id']
  64. end
  65. end
  66. class NirvanaHQTaskTest < Test::Unit::TestCase
  67. def setup
  68. @task = YAML::load_file(TASK_YAML)
  69. @nirvana = NirvanaHQ.new $nirvana_config
  70. end
  71. # Will need to rethink this test, or need to get the hang of stubbin,
  72. # since running against a live account will make it lag eventually as tasks get larger.
  73. # Maybe speak with E for a new account special just for testing.
  74. def test_everything
  75. results = @nirvana.everything
  76. keys = []
  77. results.each do | obj |
  78. keys << obj.keys.to_s
  79. end
  80. assert keys.include? "user"
  81. assert keys.include? "task"
  82. end
  83. # def test_get_task
  84. #
  85. # assert false
  86. # end
  87. end
  88. end