day_test.go 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. }
  19. func TestDaysSinceStartConsume(t *testing.T) {
  20. dss := fixtureDaysSinceStart()
  21. deps := map[string]interface{}{}
  22. commit, _ := testRepository.CommitObject(plumbing.NewHash(
  23. "cce947b98a050c6d356bc6ba95030254914027b1"))
  24. deps["commit"] = commit
  25. deps["index"] = 0
  26. res, err := dss.Consume(deps)
  27. assert.Nil(t, err)
  28. assert.Equal(t, res["day"].(int), 0)
  29. assert.Equal(t, dss.previousDay, 0)
  30. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  31. "fc9ceecb6dabcb2aab60e8619d972e8d8208a7df"))
  32. deps["commit"] = commit
  33. deps["index"] = 10
  34. res, err = dss.Consume(deps)
  35. assert.Nil(t, err)
  36. assert.Equal(t, res["day"].(int), 1)
  37. assert.Equal(t, dss.previousDay, 1)
  38. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  39. "a3ee37f91f0d705ec9c41ae88426f0ae44b2fbc3"))
  40. deps["commit"] = commit
  41. deps["index"] = 20
  42. res, err = dss.Consume(deps)
  43. assert.Nil(t, err)
  44. assert.Equal(t, res["day"].(int), 1)
  45. assert.Equal(t, dss.previousDay, 1)
  46. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  47. "a8b665a65d7aced63f5ba2ff6d9b71dac227f8cf"))
  48. deps["commit"] = commit
  49. deps["index"] = 20
  50. res, err = dss.Consume(deps)
  51. assert.Nil(t, err)
  52. assert.Equal(t, res["day"].(int), 2)
  53. assert.Equal(t, dss.previousDay, 2)
  54. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  55. "186ff0d7e4983637bb3762a24d6d0a658e7f4712"))
  56. deps["commit"] = commit
  57. deps["index"] = 30
  58. res, err = dss.Consume(deps)
  59. assert.Nil(t, err)
  60. assert.Equal(t, res["day"].(int), 2)
  61. assert.Equal(t, dss.previousDay, 2)
  62. }