day_test.go 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. package hercules
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. "gopkg.in/src-d/go-git.v4/plumbing"
  6. )
  7. func fixtureDaysSinceStart() *DaysSinceStart {
  8. dss := DaysSinceStart{}
  9. dss.Initialize(testRepository)
  10. return &dss
  11. }
  12. func TestDaysSinceStartMeta(t *testing.T) {
  13. dss := fixtureDaysSinceStart()
  14. assert.Equal(t, dss.Name(), "DaysSinceStart")
  15. assert.Equal(t, len(dss.Provides()), 1)
  16. assert.Equal(t, dss.Provides()[0], "day")
  17. assert.Equal(t, len(dss.Requires()), 0)
  18. assert.Len(t, dss.ListConfigurationOptions(), 0)
  19. dss.Configure(nil)
  20. }
  21. func TestDaysSinceStartRegistration(t *testing.T) {
  22. tp, exists := Registry.registered[(&DaysSinceStart{}).Name()]
  23. assert.True(t, exists)
  24. assert.Equal(t, tp.Elem().Name(), "DaysSinceStart")
  25. tps, exists := Registry.provided[(&DaysSinceStart{}).Provides()[0]]
  26. assert.True(t, exists)
  27. assert.Len(t, tps, 1)
  28. assert.Equal(t, tps[0].Elem().Name(), "DaysSinceStart")
  29. }
  30. func TestDaysSinceStartConsume(t *testing.T) {
  31. dss := fixtureDaysSinceStart()
  32. deps := map[string]interface{}{}
  33. commit, _ := testRepository.CommitObject(plumbing.NewHash(
  34. "cce947b98a050c6d356bc6ba95030254914027b1"))
  35. deps["commit"] = commit
  36. deps["index"] = 0
  37. res, err := dss.Consume(deps)
  38. assert.Nil(t, err)
  39. assert.Equal(t, res["day"].(int), 0)
  40. assert.Equal(t, dss.previousDay, 0)
  41. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  42. "fc9ceecb6dabcb2aab60e8619d972e8d8208a7df"))
  43. deps["commit"] = commit
  44. deps["index"] = 10
  45. res, err = dss.Consume(deps)
  46. assert.Nil(t, err)
  47. assert.Equal(t, res["day"].(int), 1)
  48. assert.Equal(t, dss.previousDay, 1)
  49. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  50. "a3ee37f91f0d705ec9c41ae88426f0ae44b2fbc3"))
  51. deps["commit"] = commit
  52. deps["index"] = 20
  53. res, err = dss.Consume(deps)
  54. assert.Nil(t, err)
  55. assert.Equal(t, res["day"].(int), 1)
  56. assert.Equal(t, dss.previousDay, 1)
  57. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  58. "a8b665a65d7aced63f5ba2ff6d9b71dac227f8cf"))
  59. deps["commit"] = commit
  60. deps["index"] = 20
  61. res, err = dss.Consume(deps)
  62. assert.Nil(t, err)
  63. assert.Equal(t, res["day"].(int), 2)
  64. assert.Equal(t, dss.previousDay, 2)
  65. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  66. "186ff0d7e4983637bb3762a24d6d0a658e7f4712"))
  67. deps["commit"] = commit
  68. deps["index"] = 30
  69. res, err = dss.Consume(deps)
  70. assert.Nil(t, err)
  71. assert.Equal(t, res["day"].(int), 2)
  72. assert.Equal(t, dss.previousDay, 2)
  73. }