mirror of https://github.com/containrrr/watchtower
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			154 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Go
		
	
			
		
		
	
	
			154 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Go
		
	
package container
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
 | 
						|
	"github.com/stretchr/testify/assert"
 | 
						|
	"github.com/containrrr/watchtower/container/mocks"
 | 
						|
)
 | 
						|
 | 
						|
func TestWatchtowerContainersFilter(t *testing.T) {
 | 
						|
	container := new(mocks.FilterableContainer)
 | 
						|
 | 
						|
	container.On("IsWatchtower").Return(true)
 | 
						|
 | 
						|
	assert.True(t, WatchtowerContainersFilter(container))
 | 
						|
 | 
						|
	container.AssertExpectations(t)
 | 
						|
}
 | 
						|
 | 
						|
func TestNoFilter(t *testing.T) {
 | 
						|
	container := new(mocks.FilterableContainer)
 | 
						|
 | 
						|
	assert.True(t, noFilter(container))
 | 
						|
 | 
						|
	container.AssertExpectations(t)
 | 
						|
}
 | 
						|
 | 
						|
func TestFilterByNames(t *testing.T) {
 | 
						|
	var names []string
 | 
						|
 | 
						|
	filter := filterByNames(names, nil)
 | 
						|
	assert.Nil(t, filter)
 | 
						|
 | 
						|
	names = append(names, "test")
 | 
						|
 | 
						|
	filter = filterByNames(names, noFilter)
 | 
						|
	assert.NotNil(t, filter)
 | 
						|
 | 
						|
	container := new(mocks.FilterableContainer)
 | 
						|
	container.On("Name").Return("test")
 | 
						|
	assert.True(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Name").Return("NoTest")
 | 
						|
	assert.False(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
}
 | 
						|
 | 
						|
func TestFilterByEnableLabel(t *testing.T) {
 | 
						|
	filter := filterByEnableLabel(noFilter)
 | 
						|
	assert.NotNil(t, filter)
 | 
						|
 | 
						|
	container := new(mocks.FilterableContainer)
 | 
						|
	container.On("Enabled").Return(true, true)
 | 
						|
	assert.True(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Enabled").Return(false, true)
 | 
						|
	assert.True(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Enabled").Return(false, false)
 | 
						|
	assert.False(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
}
 | 
						|
 | 
						|
func TestFilterByDisabledLabel(t *testing.T) {
 | 
						|
	filter := filterByDisabledLabel(noFilter)
 | 
						|
	assert.NotNil(t, filter)
 | 
						|
 | 
						|
	container := new(mocks.FilterableContainer)
 | 
						|
	container.On("Enabled").Return(true, true)
 | 
						|
	assert.True(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Enabled").Return(false, true)
 | 
						|
	assert.False(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Enabled").Return(false, false)
 | 
						|
	assert.True(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
}
 | 
						|
 | 
						|
func TestBuildFilter(t *testing.T) {
 | 
						|
	var names []string
 | 
						|
	names = append(names, "test")
 | 
						|
 | 
						|
	filter := BuildFilter(names, false)
 | 
						|
 | 
						|
	container := new(mocks.FilterableContainer)
 | 
						|
	container.On("Name").Return("Invalid")
 | 
						|
	container.On("Enabled").Return(false, false)
 | 
						|
	assert.False(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Name").Return("test")
 | 
						|
	container.On("Enabled").Return(false, false)
 | 
						|
	assert.True(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Name").Return("Invalid")
 | 
						|
	container.On("Enabled").Return(true, true)
 | 
						|
	assert.False(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Name").Return("test")
 | 
						|
	container.On("Enabled").Return(true, true)
 | 
						|
	assert.True(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Enabled").Return(false, true)
 | 
						|
	assert.False(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
}
 | 
						|
 | 
						|
func TestBuildFilterEnableLabel(t *testing.T) {
 | 
						|
	var names []string
 | 
						|
	names = append(names, "test")
 | 
						|
 | 
						|
	filter := BuildFilter(names, true)
 | 
						|
 | 
						|
	container := new(mocks.FilterableContainer)
 | 
						|
	container.On("Enabled").Return(false, false)
 | 
						|
	assert.False(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Name").Return("Invalid")
 | 
						|
	container.On("Enabled").Twice().Return(true, true)
 | 
						|
	assert.False(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Name").Return("test")
 | 
						|
	container.On("Enabled").Twice().Return(true, true)
 | 
						|
	assert.True(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
 | 
						|
	container = new(mocks.FilterableContainer)
 | 
						|
	container.On("Enabled").Return(false, true)
 | 
						|
	assert.False(t, filter(container))
 | 
						|
	container.AssertExpectations(t)
 | 
						|
}
 |