1// Copyright (C) 2019 Storj Labs, Inc.
2// See LICENSE for copying information.
3
4package trust_test
5
6import (
7	"testing"
8
9	"github.com/stretchr/testify/assert"
10
11	"storj.io/storj/storagenode/trust"
12)
13
14func TestRulesIsTrusted(t *testing.T) {
15
16	url := makeSatelliteURL("domain.test")
17
18	// default is trusted when there are no rules
19	var rules trust.Rules
20	assert.True(t, rules.IsTrusted(url))
21
22	rules = trust.Rules{fakeRule(true)}
23	assert.True(t, rules.IsTrusted(url))
24
25	rules = trust.Rules{fakeRule(false)}
26	assert.False(t, rules.IsTrusted(url))
27
28	rules = trust.Rules{fakeRule(true), fakeRule(false), fakeRule(true)}
29	assert.False(t, rules.IsTrusted(url))
30}
31
32type fakeRule bool
33
34func (rule fakeRule) IsTrusted(url trust.SatelliteURL) bool {
35	return bool(rule)
36}
37
38func (rule fakeRule) String() string {
39	return "fake"
40}
41