(t *testing.T)
| 33 | ) |
| 34 | |
| 35 | func TestNewFromYamlFile(t *testing.T) { |
| 36 | c := NewWithOpts(WithRun()) |
| 37 | |
| 38 | err := c.flags.Parse([]string{"--config-file=_fixtures/fibratus.yml"}) |
| 39 | require.NoError(t, c.viper.BindPFlags(c.flags)) |
| 40 | require.NoError(t, err) |
| 41 | require.NoError(t, c.TryLoadFile(c.GetConfigFile())) |
| 42 | |
| 43 | require.NoError(t, c.Init()) |
| 44 | |
| 45 | errs := c.Validate() |
| 46 | |
| 47 | require.Empty(t, errs) |
| 48 | |
| 49 | assert.Equal(t, time.Millisecond*230, c.Aggregator.FlushPeriod) |
| 50 | assert.Equal(t, time.Second*8, c.Aggregator.FlushTimeout) |
| 51 | |
| 52 | assert.Len(t, c.Alertsenders, 4) |
| 53 | |
| 54 | for _, c := range c.Alertsenders { |
| 55 | switch c.Type { |
| 56 | case alertsender.Slack: |
| 57 | assert.IsType(t, slack.Config{}, c.Sender) |
| 58 | case alertsender.Mail: |
| 59 | assert.IsType(t, mail.Config{}, c.Sender) |
| 60 | mailConfig := c.Sender.(mail.Config) |
| 61 | assert.Equal(t, "smtp.gmail.com", mailConfig.Host) |
| 62 | assert.Equal(t, 587, mailConfig.Port) |
| 63 | assert.Equal(t, "bunny", mailConfig.User) |
| 64 | assert.Equal(t, "changeit", mailConfig.Pass) |
| 65 | assert.Equal(t, "bunny@gmail.com", mailConfig.From) |
| 66 | assert.Equal(t, []string{"bunny@gmail.com", "rabbit@gmail.com", "cuniculus@gmail.com"}, mailConfig.To) |
| 67 | case alertsender.Systray: |
| 68 | assert.IsType(t, systray.Config{}, c.Sender) |
| 69 | systrayConfig := c.Sender.(systray.Config) |
| 70 | assert.True(t, systrayConfig.Enabled) |
| 71 | assert.True(t, systrayConfig.Sound) |
| 72 | assert.False(t, systrayConfig.QuietMode) |
| 73 | case alertsender.Eventlog: |
| 74 | assert.IsType(t, eventlog.Config{}, c.Sender) |
| 75 | eventlogConfig := c.Sender.(eventlog.Config) |
| 76 | assert.True(t, eventlogConfig.Enabled) |
| 77 | } |
| 78 | } |
| 79 | |
| 80 | assert.Equal(t, "npipe:///fibratus", c.API.Transport) |
| 81 | assert.Equal(t, time.Second*5, c.API.Timeout) |
| 82 | assert.True(t, c.DebugPrivilege) |
| 83 | |
| 84 | assert.Equal(t, "top_netio", c.Filament.Name) |
| 85 | |
| 86 | require.Len(t, c.Transformers, 2) |
| 87 | |
| 88 | for _, tr := range c.Transformers { |
| 89 | switch tr.Type { |
| 90 | case transformers.Rename: |
| 91 | rconfig := tr.Transformer.(rename.Config) |
| 92 | assert.Len(t, rconfig.Params, 2) |
nothing calls this directly
no test coverage detected