code.gitea.io/gitea@v1.22.3/models/repo/pushmirror_test.go (about)

     1  // Copyright 2021 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package repo_test
     5  
     6  import (
     7  	"testing"
     8  	"time"
     9  
    10  	"code.gitea.io/gitea/models/db"
    11  	repo_model "code.gitea.io/gitea/models/repo"
    12  	"code.gitea.io/gitea/models/unittest"
    13  	"code.gitea.io/gitea/modules/timeutil"
    14  
    15  	"github.com/stretchr/testify/assert"
    16  )
    17  
    18  func TestPushMirrorsIterate(t *testing.T) {
    19  	assert.NoError(t, unittest.PrepareTestDatabase())
    20  
    21  	now := timeutil.TimeStampNow()
    22  
    23  	db.Insert(db.DefaultContext, &repo_model.PushMirror{
    24  		RemoteName:     "test-1",
    25  		LastUpdateUnix: now,
    26  		Interval:       1,
    27  	})
    28  
    29  	long, _ := time.ParseDuration("24h")
    30  	db.Insert(db.DefaultContext, &repo_model.PushMirror{
    31  		RemoteName:     "test-2",
    32  		LastUpdateUnix: now,
    33  		Interval:       long,
    34  	})
    35  
    36  	db.Insert(db.DefaultContext, &repo_model.PushMirror{
    37  		RemoteName:     "test-3",
    38  		LastUpdateUnix: now,
    39  		Interval:       0,
    40  	})
    41  
    42  	time.Sleep(1 * time.Millisecond)
    43  
    44  	repo_model.PushMirrorsIterate(db.DefaultContext, 1, func(idx int, bean any) error {
    45  		m, ok := bean.(*repo_model.PushMirror)
    46  		assert.True(t, ok)
    47  		assert.Equal(t, "test-1", m.RemoteName)
    48  		assert.Equal(t, m.RemoteName, m.GetRemoteName())
    49  		return nil
    50  	})
    51  }