234 lines
5.0 KiB
Go
234 lines
5.0 KiB
Go
package rg
|
|
|
|
import "testing"
|
|
|
|
var rgs = ListResourceGroups{
|
|
Data: []ItemResourceGroup{
|
|
{
|
|
AccountID: 1,
|
|
AccountName: "std",
|
|
ACL: ListACL{
|
|
{
|
|
Explicit: true,
|
|
GUID: "",
|
|
Right: "ARCXDU",
|
|
Status: "CONFIRMED",
|
|
Type: "U",
|
|
UserGroupID: "sample_user_1@decs3o",
|
|
},
|
|
},
|
|
CreatedBy: "sample_user_1@decs3o",
|
|
CreatedTime: 1676645305,
|
|
DefNetID: 1,
|
|
DefNetType: "NONE",
|
|
DeletedBy: "",
|
|
DeletedTime: 0,
|
|
Description: "",
|
|
GID: 212,
|
|
GUID: 7971,
|
|
ID: 7971,
|
|
LockStatus: "UNLOCKED",
|
|
Milestones: 363459,
|
|
Name: "rg_1",
|
|
ResourceLimits: ResourceLimits{
|
|
CUC: -1,
|
|
CUI: -1,
|
|
CUM: -1,
|
|
CUNP: -1,
|
|
GPUUnits: -1,
|
|
},
|
|
Secret: "",
|
|
Status: "CREATED",
|
|
UpdatedBy: "",
|
|
UpdatedTime: 0,
|
|
VINS: []uint64{},
|
|
Computes: []uint64{},
|
|
ResTypes: []string{},
|
|
UniqPools: []string{},
|
|
},
|
|
{
|
|
AccountID: 2,
|
|
AccountName: "std_2",
|
|
ACL: ListACL{
|
|
{
|
|
Explicit: true,
|
|
GUID: "",
|
|
Right: "ARCXDU",
|
|
Status: "CONFIRMED",
|
|
Type: "U",
|
|
UserGroupID: "sample_user_1@decs3o",
|
|
},
|
|
},
|
|
CreatedBy: "sample_user_1@decs3o",
|
|
CreatedTime: 1676645461,
|
|
DefNetID: 2,
|
|
DefNetType: "NONE",
|
|
DeletedBy: "",
|
|
DeletedTime: 0,
|
|
Description: "",
|
|
GID: 212,
|
|
GUID: 7972,
|
|
ID: 7972,
|
|
LockStatus: "UNLOCKED",
|
|
Milestones: 363468,
|
|
Name: "rg_2",
|
|
ResourceLimits: ResourceLimits{
|
|
CUC: -1,
|
|
CUI: -1,
|
|
CUM: -1,
|
|
CUNP: -1,
|
|
GPUUnits: -1,
|
|
},
|
|
Secret: "",
|
|
Status: "CREATED",
|
|
UpdatedBy: "",
|
|
UpdatedTime: 0,
|
|
VINS: []uint64{},
|
|
Computes: []uint64{},
|
|
ResTypes: []string{},
|
|
UniqPools: []string{},
|
|
},
|
|
{
|
|
AccountID: 3,
|
|
AccountName: "std_3",
|
|
ACL: ListACL{
|
|
{
|
|
Explicit: true,
|
|
GUID: "",
|
|
Right: "ARCXDU",
|
|
Status: "CONFIRMED",
|
|
Type: "U",
|
|
UserGroupID: "sample_user_2@decs3o",
|
|
},
|
|
},
|
|
CreatedBy: "sample_user_2@decs3o",
|
|
CreatedTime: 1676645548,
|
|
DefNetID: 3,
|
|
DefNetType: "NONE",
|
|
DeletedBy: "",
|
|
DeletedTime: 0,
|
|
Description: "",
|
|
GID: 212,
|
|
GUID: 7973,
|
|
ID: 7973,
|
|
LockStatus: "kjLOCKED",
|
|
Milestones: 363471,
|
|
Name: "rg_3",
|
|
ResourceLimits: ResourceLimits{
|
|
CUC: -1,
|
|
CUI: -1,
|
|
CUM: -1,
|
|
CUNP: -1,
|
|
GPUUnits: -1,
|
|
},
|
|
Secret: "",
|
|
Status: "DISABLED",
|
|
UpdatedBy: "",
|
|
UpdatedTime: 0,
|
|
VINS: []uint64{},
|
|
Computes: []uint64{
|
|
48500,
|
|
},
|
|
ResTypes: []string{},
|
|
UniqPools: []string{},
|
|
},
|
|
},
|
|
EntryCount: 3,
|
|
}
|
|
|
|
func TestFilterByID(t *testing.T) {
|
|
actual := rgs.FilterByID(7972).FindOne()
|
|
|
|
if actual.ID != 7972 {
|
|
t.Fatal("expected ID 2, found: ", actual.ID)
|
|
}
|
|
}
|
|
|
|
func TestFilterByName(t *testing.T) {
|
|
actual := rgs.FilterByName("rg_1").FindOne()
|
|
|
|
if actual.Name != "rg_1" {
|
|
t.Fatal("expected Name 'rg_1', found: ", actual.Name)
|
|
}
|
|
}
|
|
|
|
func TestFilterByCreatedBy(t *testing.T) {
|
|
actual := rgs.FilterByCreatedBy("sample_user_1@decs3o")
|
|
|
|
if len(actual.Data) != 2 {
|
|
t.Fatal("expected 2 found, actual: ", len(actual.Data))
|
|
}
|
|
|
|
for _, item := range actual.Data {
|
|
if item.CreatedBy != "sample_user_1@decs3o" {
|
|
t.Fatal("expected CreatedBy 'sample_user_1@decs3o', found: ", item.CreatedBy)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestFilterByStatus(t *testing.T) {
|
|
actual := rgs.FilterByStatus("CREATED")
|
|
|
|
if len(actual.Data) != 2 {
|
|
t.Fatal("expected 2 found, actual: ", len(actual.Data))
|
|
}
|
|
|
|
for _, item := range actual.Data {
|
|
if item.Status != "CREATED" {
|
|
t.Fatal("expected Status 'ENABLED', found: ", item.Status)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestFilterByLockStatus(t *testing.T) {
|
|
actual := rgs.FilterByLockStatus("UNLOCKED")
|
|
|
|
if len(actual.Data) != 2 {
|
|
t.Fatal("expected 2 found, actual: ", len(actual.Data))
|
|
}
|
|
|
|
for _, item := range actual.Data {
|
|
if item.LockStatus != "UNLOCKED" {
|
|
t.Fatal("expected LockStatus 'UNLOCKED', found: ", item.LockStatus)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestFilterByDefNetType(t *testing.T) {
|
|
actual := rgs.FilterByDefNetType("NONE")
|
|
|
|
if len(actual.Data) != 3 {
|
|
t.Fatal("expected 3 found, actual: ", len(actual.Data))
|
|
}
|
|
|
|
for _, item := range actual.Data {
|
|
if item.DefNetType != "NONE" {
|
|
t.Fatal("expected DefNetType 'NONE', found: ", item.DefNetType)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestFilterFunc(t *testing.T) {
|
|
actual := rgs.FilterFunc(func(ir ItemResourceGroup) bool {
|
|
return len(ir.Computes) > 0
|
|
})
|
|
|
|
if len(actual.Data) < 1 {
|
|
t.Fatal("expected 1 found, actual: ", len(actual.Data))
|
|
}
|
|
|
|
for _, item := range actual.Data {
|
|
if len(item.Computes) < 1 {
|
|
t.Fatal("expected VMs to contain at least 1 element, found empty")
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestSortByCreatedTime(t *testing.T) {
|
|
actual := rgs.SortByCreatedTime(true)
|
|
|
|
if actual.Data[0].CreatedTime != 1676645548 || actual.Data[2].CreatedTime != 1676645305 {
|
|
t.Fatal("expected descending order, found ascending")
|
|
}
|
|
}
|