friendica-exporter/internal/metrics/converter_test.go

124 lines
2.2 KiB
Go

package metrics
import (
"errors"
"friendica-exporter/internal/testutil"
"testing"
)
func TestConvertMemoryToBytes(t *testing.T) {
tt := []struct {
desc string
memory string
wantErr error
wantEqual uint64
}{
{
desc: "1 kilobyte (upper case)",
memory: "1K",
wantErr: nil,
wantEqual: 1024,
},
{
desc: "1 kilobyte (lower case)",
memory: "1k",
wantErr: nil,
wantEqual: 1024,
},
{
desc: "1 megabyte (upper case)",
memory: "1M",
wantErr: nil,
wantEqual: 1048576,
},
{
desc: "1 megabyte (lower case)",
memory: "1m",
wantErr: nil,
wantEqual: 1048576,
},
{
desc: "1 gigabyte (upper case)",
memory: "1G",
wantErr: nil,
wantEqual: 1073741824,
},
{
desc: "1 gigabyte (lower case)",
memory: "1g",
wantErr: nil,
wantEqual: 1073741824,
},
{
desc: "2 Kilobytes",
memory: "2K",
wantErr: nil,
wantEqual: 2048,
},
{
desc: "5 gigabytes",
memory: "5g",
wantErr: nil,
wantEqual: 5368709120,
},
{
desc: "0.5 Megabyte",
memory: "0.5M",
wantErr: nil,
wantEqual: 0,
},
{
desc: "10.7 Kilobytes",
memory: "10.7k",
wantErr: nil,
wantEqual: 10240,
},
{
desc: "12345234 Bytes",
memory: "12345234",
wantErr: nil,
wantEqual: 12345234,
},
{
desc: "Invalid",
memory: "invalid",
wantErr: errors.New("invalid memory format"),
wantEqual: 0,
},
{
desc: "1234X",
memory: "1234X",
wantErr: errors.New("invalid memory format"),
wantEqual: 0,
},
{
desc: "512 Megabytes",
memory: "512M",
wantErr: nil,
wantEqual: 536870912,
},
{
desc: "CopyPasteError",
memory: "512M512M",
wantErr: errors.New("invalid memory format"),
wantEqual: 0,
},
}
for _, tc := range tt {
tc := tc
t.Run(tc.desc, func(t *testing.T) {
t.Parallel()
equal, err := ConvertMemoryToBytes(tc.memory)
if !testutil.EqualErrorMessage(err, tc.wantErr) {
t.Errorf("got error %q, want %q", err, tc.wantErr)
}
if equal != tc.wantEqual {
t.Errorf("got equal %v, want %v", equal, tc.wantEqual)
}
})
}
}