1// Copyright (C) 2019 Storj Labs, Inc. 2// See LICENSE for copying information. 3 4package trust_test 5 6import ( 7 "fmt" 8 "strings" 9 "testing" 10 11 "github.com/stretchr/testify/assert" 12 "github.com/stretchr/testify/require" 13 14 "storj.io/common/testrand" 15 "storj.io/storj/storagenode/trust" 16) 17 18func TestSourcesConfig(t *testing.T) { 19 var sources trust.Sources 20 assert.Equal(t, "trust-sources", sources.Type()) 21 assert.Equal(t, "", sources.String()) 22 23 // Assert that comma separated sources can be set 24 require.NoError(t, sources.Set("some-file,12ugxzSYW7UA1n7jfVyJHV2zL5TL1x5fSYZb48y7jZ1r3bLhbfo@127.0.0.1:12345")) 25 assert.Equal(t, "some-file,12ugxzSYW7UA1n7jfVyJHV2zL5TL1x5fSYZb48y7jZ1r3bLhbfo@127.0.0.1:12345", sources.String()) 26 27 // Assert that a failure to set does not modify the current sources 28 require.Error(t, sources.Set("@")) 29 assert.Equal(t, "some-file,12ugxzSYW7UA1n7jfVyJHV2zL5TL1x5fSYZb48y7jZ1r3bLhbfo@127.0.0.1:12345", sources.String()) 30 31 // Assert the source was sources correctly 32 if assert.Len(t, sources, 2) { 33 assert.Equal(t, "some-file", sources[0].String()) 34 assert.Equal(t, "12ugxzSYW7UA1n7jfVyJHV2zL5TL1x5fSYZb48y7jZ1r3bLhbfo@127.0.0.1:12345", sources[1].String()) 35 } 36} 37 38func TestExclusionsConfig(t *testing.T) { 39 exclusion0 := fmt.Sprintf("%s@", testrand.NodeID()) 40 exclusion1 := "foo.test" 41 exclusion2 := fmt.Sprintf("%s@bar.test:7777", testrand.NodeID()) 42 43 exclusionConfig := strings.Join([]string{exclusion0, exclusion1, exclusion2}, ",") 44 45 var exclusions trust.Exclusions 46 assert.Equal(t, "trust-exclusions", exclusions.Type()) 47 assert.Equal(t, "", exclusions.String()) 48 49 // Assert that comma separated exclusions can be set 50 require.NoError(t, exclusions.Set(exclusionConfig)) 51 assert.Equal(t, exclusionConfig, exclusions.String()) 52 53 // Assert that a failure to set does not modify the current exclusions 54 require.Error(t, exclusions.Set("foo.test:7777")) 55 assert.Equal(t, exclusionConfig, exclusions.String()) 56 57 // Assert the source was sources correctly 58 if assert.Len(t, exclusions.Rules, 3) { 59 assert.Equal(t, exclusion0, exclusions.Rules[0].String()) 60 assert.Equal(t, exclusion1, exclusions.Rules[1].String()) 61 assert.Equal(t, exclusion2, exclusions.Rules[2].String()) 62 } 63} 64