code.gitea.io/gitea@v1.22.3/modules/graceful/releasereopen/releasereopen_test.go (about) 1 // Copyright 2023 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package releasereopen 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 type testReleaseReopener struct { 13 count int 14 } 15 16 func (t *testReleaseReopener) ReleaseReopen() error { 17 t.count++ 18 return nil 19 } 20 21 func TestManager(t *testing.T) { 22 m := NewManager() 23 24 t1 := &testReleaseReopener{} 25 t2 := &testReleaseReopener{} 26 t3 := &testReleaseReopener{} 27 28 _ = m.Register(t1) 29 c2 := m.Register(t2) 30 _ = m.Register(t3) 31 32 assert.NoError(t, m.ReleaseReopen()) 33 assert.EqualValues(t, 1, t1.count) 34 assert.EqualValues(t, 1, t2.count) 35 assert.EqualValues(t, 1, t3.count) 36 37 c2() 38 39 assert.NoError(t, m.ReleaseReopen()) 40 assert.EqualValues(t, 2, t1.count) 41 assert.EqualValues(t, 1, t2.count) 42 assert.EqualValues(t, 2, t3.count) 43 }