80 lines
2.0 KiB
Go
80 lines
2.0 KiB
Go
package vnet
|
|
|
|
import (
|
|
"encoding/json"
|
|
"strings"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/google/uuid"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestVirtualNetworkJsonRoundtrip(t *testing.T) {
|
|
data := `{
|
|
"id":"74fce949-351b-4752-b261-81a56cfd3130",
|
|
"comment":"New York DC1",
|
|
"name":"us-east-1",
|
|
"is_default_network":true,
|
|
"created_at":"2021-11-26T14:40:02.600673Z",
|
|
"deleted_at":"2021-12-01T10:23:13.102645Z"
|
|
}`
|
|
var v VirtualNetwork
|
|
err := json.Unmarshal([]byte(data), &v)
|
|
|
|
require.NoError(t, err)
|
|
require.Equal(t, uuid.MustParse("74fce949-351b-4752-b261-81a56cfd3130"), v.ID)
|
|
require.Equal(t, "us-east-1", v.Name)
|
|
require.Equal(t, "New York DC1", v.Comment)
|
|
require.Equal(t, true, v.IsDefault)
|
|
|
|
bytes, err := json.Marshal(v)
|
|
require.NoError(t, err)
|
|
obtainedJson := string(bytes)
|
|
data = strings.Replace(data, "\t", "", -1)
|
|
data = strings.Replace(data, "\n", "", -1)
|
|
require.Equal(t, data, obtainedJson)
|
|
}
|
|
|
|
func TestMarshalNewVnet(t *testing.T) {
|
|
newVnet := NewVirtualNetwork{
|
|
Name: "eu-west-1",
|
|
Comment: "London office",
|
|
IsDefault: true,
|
|
}
|
|
|
|
serialized, err := json.Marshal(newVnet)
|
|
require.NoError(t, err)
|
|
require.True(t, strings.Contains(string(serialized), newVnet.Name))
|
|
}
|
|
|
|
func TestMarshalUpdateVnet(t *testing.T) {
|
|
newName := "bulgaria-1"
|
|
updates := UpdateVirtualNetwork{
|
|
Name: &newName,
|
|
}
|
|
|
|
// Test where receiver is struct
|
|
serialized, err := json.Marshal(updates)
|
|
require.NoError(t, err)
|
|
require.True(t, strings.Contains(string(serialized), newName))
|
|
}
|
|
|
|
func TestVnetTableString(t *testing.T) {
|
|
virtualNet := VirtualNetwork{
|
|
ID: uuid.New(),
|
|
Name: "us-east-1",
|
|
Comment: "New York DC1",
|
|
IsDefault: true,
|
|
CreatedAt: time.Now(),
|
|
DeletedAt: time.Time{},
|
|
}
|
|
|
|
row := virtualNet.TableString()
|
|
require.True(t, strings.HasPrefix(row, virtualNet.ID.String()))
|
|
require.True(t, strings.Contains(row, virtualNet.Name))
|
|
require.True(t, strings.Contains(row, virtualNet.Comment))
|
|
require.True(t, strings.Contains(row, "true"))
|
|
require.True(t, strings.HasSuffix(row, "-\t"))
|
|
}
|