github.com/crowdsecurity/crowdsec@v1.6.1/pkg/cwhub/item_test.go (about) 1 package cwhub 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/require" 7 ) 8 9 func TestItemStatus(t *testing.T) { 10 hub := envSetup(t) 11 12 // get existing map 13 x := hub.GetItemMap(COLLECTIONS) 14 require.NotEmpty(t, x) 15 16 // Get item: good and bad 17 for k := range x { 18 item := hub.GetItem(COLLECTIONS, k) 19 require.NotNil(t, item) 20 21 item.State.Installed = true 22 item.State.UpToDate = false 23 item.State.Tainted = false 24 item.State.Downloaded = true 25 26 txt := item.State.Text() 27 require.Equal(t, "enabled,update-available", txt) 28 29 item.State.Installed = true 30 item.State.UpToDate = false 31 item.State.Tainted = false 32 item.State.Downloaded = false 33 34 txt = item.State.Text() 35 require.Equal(t, "enabled,local", txt) 36 } 37 38 stats := hub.ItemStats() 39 require.Equal(t, []string{ 40 "Loaded: 2 parsers, 1 scenarios, 3 collections", 41 "Unmanaged items: 3 local, 0 tainted", 42 }, stats) 43 } 44 45 func TestGetters(t *testing.T) { 46 hub := envSetup(t) 47 48 // get non existing map 49 empty := hub.GetItemMap("ratata") 50 require.Nil(t, empty) 51 52 // get existing map 53 x := hub.GetItemMap(COLLECTIONS) 54 require.NotEmpty(t, x) 55 56 // Get item: good and bad 57 for k := range x { 58 empty := hub.GetItem(COLLECTIONS, k+"nope") 59 require.Nil(t, empty) 60 61 item := hub.GetItem(COLLECTIONS, k) 62 require.NotNil(t, item) 63 64 // Add item and get it 65 item.Name += "nope" 66 hub.addItem(item) 67 68 newitem := hub.GetItem(COLLECTIONS, item.Name) 69 require.NotNil(t, newitem) 70 } 71 }