package ffs

import (
	"fmt"
	"reflect"
	"runtime"
	"strings"
	"testing"

	"sigs.k8s.io/yaml"
)

func TestGetVersion(t *testing.T) {
	version := GetVersion(DefaultDriverName)

	expected := VersionInfo{
		DriverName:    DefaultDriverName,
		DriverVersion: "N/A",
		GitCommit:     "N/A",
		BuildDate:     "N/A",
		GoVersion:     runtime.Version(),
		Compiler:      runtime.Compiler,
		Platform:      fmt.Sprintf("%s/%s", runtime.GOOS, runtime.GOARCH),
	}

	if !reflect.DeepEqual(version, expected) {
		t.Errorf("Unexpected error. \n Expected: %v \n Found: %v", expected, version)
	}

}

func TestGetVersionYAML(t *testing.T) {
	resp, err := GetVersionYAML("")
	if err != nil {
		t.Fatalf("Unexpected error: %v", err)
	}
	versionInfo := GetVersion("")
	marshalled, _ := yaml.Marshal(&versionInfo)
	expected := strings.TrimSpace(string(marshalled))

	if resp != expected {
		t.Fatalf("Unexpected error. \n Expected:%v\nFound:%v", expected, resp)
	}
}
