day_test.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  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.Configure(map[string]interface{}{})
  10. dss.Initialize(testRepository)
  11. return &dss
  12. }
  13. func TestDaysSinceStartMeta(t *testing.T) {
  14. dss := fixtureDaysSinceStart()
  15. assert.Equal(t, dss.Name(), "DaysSinceStart")
  16. assert.Equal(t, len(dss.Provides()), 1)
  17. assert.Equal(t, dss.Provides()[0], DependencyDay)
  18. assert.Equal(t, len(dss.Requires()), 0)
  19. assert.Len(t, dss.ListConfigurationOptions(), 0)
  20. dss.Configure(map[string]interface{}{})
  21. }
  22. func TestDaysSinceStartRegistration(t *testing.T) {
  23. tp, exists := Registry.registered[(&DaysSinceStart{}).Name()]
  24. assert.True(t, exists)
  25. assert.Equal(t, tp.Elem().Name(), "DaysSinceStart")
  26. tps, exists := Registry.provided[(&DaysSinceStart{}).Provides()[0]]
  27. assert.True(t, exists)
  28. assert.Len(t, tps, 1)
  29. assert.Equal(t, tps[0].Elem().Name(), "DaysSinceStart")
  30. }
  31. func TestDaysSinceStartConsume(t *testing.T) {
  32. dss := fixtureDaysSinceStart()
  33. deps := map[string]interface{}{}
  34. commit, _ := testRepository.CommitObject(plumbing.NewHash(
  35. "cce947b98a050c6d356bc6ba95030254914027b1"))
  36. deps["commit"] = commit
  37. deps["index"] = 0
  38. res, err := dss.Consume(deps)
  39. assert.Nil(t, err)
  40. assert.Equal(t, res[DependencyDay].(int), 0)
  41. assert.Equal(t, dss.previousDay, 0)
  42. assert.Equal(t, dss.day0.Hour(), 1) // 18 UTC+1
  43. assert.Equal(t, dss.day0.Minute(), 0) // 30
  44. assert.Equal(t, dss.day0.Second(), 0) // 29
  45. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  46. "fc9ceecb6dabcb2aab60e8619d972e8d8208a7df"))
  47. deps["commit"] = commit
  48. deps["index"] = 10
  49. res, err = dss.Consume(deps)
  50. assert.Nil(t, err)
  51. assert.Equal(t, res[DependencyDay].(int), 1)
  52. assert.Equal(t, dss.previousDay, 1)
  53. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  54. "a3ee37f91f0d705ec9c41ae88426f0ae44b2fbc3"))
  55. deps["commit"] = commit
  56. deps["index"] = 20
  57. res, err = dss.Consume(deps)
  58. assert.Nil(t, err)
  59. assert.Equal(t, res[DependencyDay].(int), 1)
  60. assert.Equal(t, dss.previousDay, 1)
  61. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  62. "a8b665a65d7aced63f5ba2ff6d9b71dac227f8cf"))
  63. deps["commit"] = commit
  64. deps["index"] = 20
  65. res, err = dss.Consume(deps)
  66. assert.Nil(t, err)
  67. assert.Equal(t, res[DependencyDay].(int), 2)
  68. assert.Equal(t, dss.previousDay, 2)
  69. commit, _ = testRepository.CommitObject(plumbing.NewHash(
  70. "186ff0d7e4983637bb3762a24d6d0a658e7f4712"))
  71. deps["commit"] = commit
  72. deps["index"] = 30
  73. res, err = dss.Consume(deps)
  74. assert.Nil(t, err)
  75. assert.Equal(t, res[DependencyDay].(int), 2)
  76. assert.Equal(t, dss.previousDay, 2)
  77. assert.Len(t, dss.commits, 3)
  78. assert.Equal(t, dss.commits[0], []plumbing.Hash{plumbing.NewHash(
  79. "cce947b98a050c6d356bc6ba95030254914027b1")})
  80. assert.Equal(t, dss.commits[1], []plumbing.Hash{
  81. plumbing.NewHash("fc9ceecb6dabcb2aab60e8619d972e8d8208a7df"),
  82. plumbing.NewHash("a3ee37f91f0d705ec9c41ae88426f0ae44b2fbc3")})
  83. assert.Equal(t, dss.commits[2], []plumbing.Hash{
  84. plumbing.NewHash("a8b665a65d7aced63f5ba2ff6d9b71dac227f8cf"),
  85. plumbing.NewHash("186ff0d7e4983637bb3762a24d6d0a658e7f4712")})
  86. }
  87. func TestDaysCommits(t *testing.T) {
  88. dss := fixtureDaysSinceStart()
  89. dss.commits[0] = []plumbing.Hash{plumbing.NewHash(
  90. "cce947b98a050c6d356bc6ba95030254914027b1")}
  91. commits := dss.commits
  92. dss.Initialize(testRepository)
  93. assert.Len(t, dss.commits, 0)
  94. assert.Equal(t, dss.commits, commits)
  95. }