mirror of
https://github.com/hamburghammer/gstat.git
synced 2024-09-28 23:26:05 +02:00
7b1a54d697
Changes apply to Disk and Mem. The show the state as an object. This should improve the readablility.
62 lines
1.5 KiB
Go
62 lines
1.5 KiB
Go
package commands_test
|
|
|
|
import (
|
|
"errors"
|
|
"testing"
|
|
|
|
"github.com/hamburghammer/gstat/args"
|
|
"github.com/hamburghammer/gstat/commands"
|
|
goDisk "github.com/shirou/gopsutil/disk"
|
|
)
|
|
|
|
func TestDiskExec(t *testing.T) {
|
|
t.Run("should test for flag in Arguments", func(t *testing.T) {
|
|
|
|
got, err := commands.Disk{}.Exec(args.Arguments{Disk: false})
|
|
|
|
assertNoError(err, t)
|
|
|
|
if len(got) != 0 {
|
|
t.Errorf("No result was expected but got: '%s'", string(got))
|
|
}
|
|
|
|
})
|
|
|
|
t.Run("should return error if reading disk stats creates one", func(t *testing.T) {
|
|
errorStr := "Test error"
|
|
disk := commands.Disk{ReadDiskStats: func(s string) (*goDisk.UsageStat, error) {
|
|
return nil, errors.New(errorStr)
|
|
}}
|
|
|
|
_, err := disk.Exec(args.Arguments{Disk: true})
|
|
want := errorStr
|
|
|
|
assertEqualString(err.Error(), want, t)
|
|
|
|
})
|
|
|
|
t.Run("should convert to MB in JSON formatt", func(t *testing.T) {
|
|
disk := commands.Disk{ReadDiskStats: func(s string) (*goDisk.UsageStat, error) {
|
|
return &goDisk.UsageStat{Total: 100000000, Used: 50000000}, nil
|
|
}}
|
|
|
|
got, err := disk.Exec(args.Arguments{Disk: true})
|
|
want := "{\"disk\":{\"used\":47,\"total\":95}}"
|
|
|
|
assertNoError(err, t)
|
|
|
|
assertEqualString(string(got), want, t)
|
|
})
|
|
}
|
|
|
|
func assertNoError(err error, t *testing.T) {
|
|
if err != nil {
|
|
t.Errorf("No error was expected but got: '%s'", err.Error())
|
|
}
|
|
}
|
|
|
|
func assertEqualString(got, want string, t *testing.T) {
|
|
if got != want {
|
|
t.Errorf("Want: '%s' but got: '%s'", want, got)
|
|
}
|
|
}
|