day_test.go 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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], DependencyDay)
  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[DependencyDay].(int), 0)
  40. assert.Equal(t, dss.previousDay, 0)
  41. assert.Equal(t, dss.day0.Hour(), 1) // 18 UTC+1
  42. assert.Equal(t, dss.day0.Minute(), 0) // 30
  43. assert.Equal(t, dss.day0.Second(), 0) // 29
  44. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  45. "fc9ceecb6dabcb2aab60e8619d972e8d8208a7df"))
  46. deps["commit"] = commit
  47. deps["index"] = 10
  48. res, err = dss.Consume(deps)
  49. assert.Nil(t, err)
  50. assert.Equal(t, res[DependencyDay].(int), 1)
  51. assert.Equal(t, dss.previousDay, 1)
  52. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  53. "a3ee37f91f0d705ec9c41ae88426f0ae44b2fbc3"))
  54. deps["commit"] = commit
  55. deps["index"] = 20
  56. res, err = dss.Consume(deps)
  57. assert.Nil(t, err)
  58. assert.Equal(t, res[DependencyDay].(int), 1)
  59. assert.Equal(t, dss.previousDay, 1)
  60. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  61. "a8b665a65d7aced63f5ba2ff6d9b71dac227f8cf"))
  62. deps["commit"] = commit
  63. deps["index"] = 20
  64. res, err = dss.Consume(deps)
  65. assert.Nil(t, err)
  66. assert.Equal(t, res[DependencyDay].(int), 2)
  67. assert.Equal(t, dss.previousDay, 2)
  68. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  69. "186ff0d7e4983637bb3762a24d6d0a658e7f4712"))
  70. deps["commit"] = commit
  71. deps["index"] = 30
  72. res, err = dss.Consume(deps)
  73. assert.Nil(t, err)
  74. assert.Equal(t, res[DependencyDay].(int), 2)
  75. assert.Equal(t, dss.previousDay, 2)
  76. }