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
5 years ago
|
package filters
|
||
6 years ago
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
5 years ago
|
"github.com/containrrr/watchtower/pkg/container/mocks"
|
||
5 years ago
|
"github.com/stretchr/testify/assert"
|
||
6 years ago
|
)
|
||
|
|
||
|
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)
|
||
|
|
||
5 years ago
|
assert.True(t, NoFilter(container))
|
||
6 years ago
|
|
||
|
container.AssertExpectations(t)
|
||
|
}
|
||
|
|
||
|
func TestFilterByNames(t *testing.T) {
|
||
6 years ago
|
var names []string
|
||
|
|
||
5 years ago
|
filter := FilterByNames(names, nil)
|
||
6 years ago
|
assert.Nil(t, filter)
|
||
|
|
||
|
names = append(names, "test")
|
||
|
|
||
5 years ago
|
filter = FilterByNames(names, NoFilter)
|
||
6 years ago
|
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) {
|
||
5 years ago
|
filter := FilterByEnableLabel(NoFilter)
|
||
6 years ago
|
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) {
|
||
5 years ago
|
filter := FilterByDisabledLabel(NoFilter)
|
||
6 years ago
|
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) {
|
||
6 years ago
|
var names []string
|
||
6 years ago
|
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) {
|
||
6 years ago
|
var names []string
|
||
6 years ago
|
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)
|
||
|
}
|