parent
f50f71ab0d
commit
20fd7ab50c
@ -1,96 +0,0 @@
|
||||
package flipgroup
|
||||
|
||||
// FilterByID returns ListFLIPGroups with specified ID.
|
||||
func (lfg ListFLIPGroups) FilterByID(id uint64) ListFLIPGroups {
|
||||
predicate := func(ifg ItemFLIPGroup) bool {
|
||||
return ifg.ID == id
|
||||
}
|
||||
|
||||
return lfg.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByAccountID returns ListFLIPGroups with specified AccountID.
|
||||
func (lfg ListFLIPGroups) FilterByAccountID(accountID uint64) ListFLIPGroups {
|
||||
predicate := func(ifg ItemFLIPGroup) bool {
|
||||
return ifg.AccountID == accountID
|
||||
}
|
||||
|
||||
return lfg.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByRGID returns ListFLIPGroups with specified RGID.
|
||||
func (lfg ListFLIPGroups) FilterByRGID(rgID uint64) ListFLIPGroups {
|
||||
predicate := func(ifg ItemFLIPGroup) bool {
|
||||
return ifg.RGID == rgID
|
||||
}
|
||||
|
||||
return lfg.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByName returns ListFLIPGroups with specified Name.
|
||||
func (lfg ListFLIPGroups) FilterByName(name string) ListFLIPGroups {
|
||||
predicate := func(ifg ItemFLIPGroup) bool {
|
||||
return ifg.Name == name
|
||||
}
|
||||
|
||||
return lfg.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByStatus returns ListFLIPGroups with specified Status.
|
||||
func (lfg ListFLIPGroups) FilterByStatus(status string) ListFLIPGroups {
|
||||
predicate := func(ifg ItemFLIPGroup) bool {
|
||||
return ifg.Status == status
|
||||
}
|
||||
|
||||
return lfg.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByCreatedBy returns ListFLIPGroups created by specified user.
|
||||
func (lfg ListFLIPGroups) FilterByCreatedBy(createdBy string) ListFLIPGroups {
|
||||
predicate := func(ifg ItemFLIPGroup) bool {
|
||||
return ifg.CreatedBy == createdBy
|
||||
}
|
||||
|
||||
return lfg.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByUpdatedBy returns ListFLIPGroups updated by specified user.
|
||||
func (lfg ListFLIPGroups) FilterByUpdatedBy(updatedBy string) ListFLIPGroups {
|
||||
predicate := func(ifg ItemFLIPGroup) bool {
|
||||
return ifg.UpdatedBy == updatedBy
|
||||
}
|
||||
|
||||
return lfg.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterByDeletedBy returns ListFLIPGroups deleted by specified user.
|
||||
func (lfg ListFLIPGroups) FilterByDeletedBy(deletedBy string) ListFLIPGroups {
|
||||
predicate := func(ifg ItemFLIPGroup) bool {
|
||||
return ifg.DeletedBy == deletedBy
|
||||
}
|
||||
|
||||
return lfg.FilterFunc(predicate)
|
||||
}
|
||||
|
||||
// FilterFunc allows filtering ListFLIPGroups based on a user-specified predicate.
|
||||
func (lfg ListFLIPGroups) FilterFunc(predicate func(ItemFLIPGroup) bool) ListFLIPGroups {
|
||||
var result ListFLIPGroups
|
||||
|
||||
for _, item := range lfg {
|
||||
if predicate(item) {
|
||||
result = append(result, item)
|
||||
}
|
||||
}
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
// FindOne returns first found ItemFLIPGroup
|
||||
// If none was found, returns an empty struct.
|
||||
func (lfg ListFLIPGroups) FindOne() ItemFLIPGroup {
|
||||
if len(lfg) == 0 {
|
||||
return ItemFLIPGroup{}
|
||||
}
|
||||
|
||||
return lfg[0]
|
||||
}
|
@ -1,189 +0,0 @@
|
||||
package flipgroup
|
||||
|
||||
import "testing"
|
||||
|
||||
var flipgroups = ListFLIPGroups{
|
||||
{
|
||||
AccountID: 1,
|
||||
AccountName: "std_1",
|
||||
ClientIDs: []uint64{
|
||||
1,
|
||||
},
|
||||
ClientNames: []string{
|
||||
"compute_1",
|
||||
},
|
||||
ClientType: "compute",
|
||||
ConnID: 1,
|
||||
ConnType: "",
|
||||
CreatedBy: "sample_user_1@decs3o",
|
||||
CreatedTime: 1234456789,
|
||||
DefaultGW: "",
|
||||
DeletedBy: "",
|
||||
DeletedTime: 0,
|
||||
Description: "",
|
||||
GID: 212,
|
||||
GUID: 1,
|
||||
ID: 1,
|
||||
IP: "",
|
||||
Milestones: 999001,
|
||||
Name: "flipgroup_1",
|
||||
NetID: 111,
|
||||
NetType: "EXTNET",
|
||||
Network: "",
|
||||
RGID: 7971,
|
||||
RGName: "rg_1",
|
||||
Status: "CREATED",
|
||||
UpdatedBy: "",
|
||||
UpdatedTime: 0,
|
||||
},
|
||||
{
|
||||
AccountID: 2,
|
||||
AccountName: "std_2",
|
||||
ClientIDs: []uint64{
|
||||
2,
|
||||
},
|
||||
ClientNames: []string{
|
||||
"compute_2",
|
||||
},
|
||||
ClientType: "compute",
|
||||
ConnID: 2,
|
||||
ConnType: "",
|
||||
CreatedBy: "sample_user_1@decs3o",
|
||||
CreatedTime: 1234456830,
|
||||
DefaultGW: "",
|
||||
DeletedBy: "sample_user_1@decs3o",
|
||||
DeletedTime: 1234456879,
|
||||
Description: "",
|
||||
GID: 212,
|
||||
GUID: 2,
|
||||
ID: 2,
|
||||
IP: "",
|
||||
Milestones: 999002,
|
||||
Name: "flipgroup_2",
|
||||
NetID: 222,
|
||||
NetType: "EXTNET",
|
||||
Network: "",
|
||||
RGID: 7972,
|
||||
RGName: "rg_2",
|
||||
Status: "DESTROYED",
|
||||
UpdatedBy: "",
|
||||
UpdatedTime: 0,
|
||||
},
|
||||
{
|
||||
AccountID: 3,
|
||||
AccountName: "std_3",
|
||||
ClientIDs: []uint64{
|
||||
3,
|
||||
},
|
||||
ClientNames: []string{
|
||||
"compute_3",
|
||||
},
|
||||
ClientType: "compute",
|
||||
ConnID: 3,
|
||||
ConnType: "",
|
||||
CreatedBy: "sample_user_2@decs3o",
|
||||
CreatedTime: 1234456866,
|
||||
DefaultGW: "",
|
||||
DeletedBy: "",
|
||||
DeletedTime: 0,
|
||||
Description: "",
|
||||
GID: 212,
|
||||
GUID: 3,
|
||||
ID: 3,
|
||||
IP: "",
|
||||
Milestones: 999003,
|
||||
Name: "flipgroup_3",
|
||||
NetID: 223,
|
||||
NetType: "EXTNET",
|
||||
Network: "",
|
||||
RGID: 7973,
|
||||
RGName: "rg_3",
|
||||
Status: "CREATED",
|
||||
UpdatedBy: "",
|
||||
UpdatedTime: 0,
|
||||
},
|
||||
}
|
||||
|
||||
func TestFilterByID(t *testing.T) {
|
||||
actual := flipgroups.FilterByID(3).FindOne()
|
||||
|
||||
if actual.ID != 3 {
|
||||
t.Fatal("expected ID 3, found: ", actual.ID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterByAccountID(t *testing.T) {
|
||||
actual := flipgroups.FilterByAccountID(1).FindOne()
|
||||
|
||||
if actual.AccountID != 1 {
|
||||
t.Fatal("expected AccountID 1, found: ", actual.AccountID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterByRGID(t *testing.T) {
|
||||
actual := flipgroups.FilterByRGID(7972).FindOne()
|
||||
|
||||
if actual.RGID != 7972 {
|
||||
t.Fatal("expected RGID 7972, found: ", actual.RGID)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterByName(t *testing.T) {
|
||||
actual := flipgroups.FilterByName("flipgroup_1").FindOne()
|
||||
|
||||
if actual.Name != "flipgroup_1" {
|
||||
t.Fatal("expected Name 'flipgroup_1', found: ", actual.Name)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterByStatus(t *testing.T) {
|
||||
actual := flipgroups.FilterByStatus("CREATED")
|
||||
|
||||
if len(actual) != 2 {
|
||||
t.Fatal("expected 2 found, actual: ", len(actual))
|
||||
}
|
||||
|
||||
for _, item := range actual {
|
||||
if item.Status != "CREATED" {
|
||||
t.Fatal("expected Status 'CREATED', found: ", item.Status)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterByCreatedBy(t *testing.T) {
|
||||
actual := flipgroups.FilterByCreatedBy("sample_user_1@decs3o")
|
||||
|
||||
if len(actual) != 2 {
|
||||
t.Fatal("expected 2 found, actual: ", len(actual))
|
||||
}
|
||||
|
||||
for _, item := range actual {
|
||||
if item.CreatedBy != "sample_user_1@decs3o" {
|
||||
t.Fatal("expected CreatedBy 'sample_user_1@decs3o', found: ", item.CreatedBy)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestFilterFunc(t *testing.T) {
|
||||
actual := flipgroups.FilterFunc(func(ifg ItemFLIPGroup) bool {
|
||||
return ifg.NetType == "EXTNET"
|
||||
})
|
||||
|
||||
if len(actual) != 3 {
|
||||
t.Fatal("expected 3 found, actual: ", len(actual))
|
||||
}
|
||||
|
||||
for _, item := range actual {
|
||||
if item.NetType != "EXTNET" {
|
||||
t.Fatal("expected NetType 'EXTNET', found: ", item.NetType)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestSortByCreatedTime(t *testing.T) {
|
||||
actual := flipgroups.SortByCreatedTime(false)
|
||||
|
||||
if actual[0].CreatedTime != 1234456789 || actual[2].CreatedTime != 1234456866 {
|
||||
t.Fatal("expected ascending order, found descending")
|
||||
}
|
||||
}
|
@ -1,60 +0,0 @@
|
||||
package flipgroup
|
||||
|
||||
import "sort"
|
||||
|
||||
// SortByCreatedTime sorts ListFLIPGroups by the CreatedTime field in ascending order.
|
||||
//
|
||||
// If inverse param is set to true, the order is reversed.
|
||||
func (lfg ListFLIPGroups) SortByCreatedTime(inverse bool) ListFLIPGroups {
|
||||
if len(lfg) < 2 {
|
||||
return lfg
|
||||
}
|
||||
|
||||
sort.Slice(lfg, func(i, j int) bool {
|
||||
if inverse {
|
||||
return lfg[i].CreatedTime > lfg[j].CreatedTime
|
||||
}
|
||||
|
||||
return lfg[i].CreatedTime < lfg[j].CreatedTime
|
||||
})
|
||||
|
||||
return lfg
|
||||
}
|
||||
|
||||
// SortByUpdatedTime sorts ListFLIPGroups by the UpdatedTime field in ascending order.
|
||||
//
|
||||
// If inverse param is set to true, the order is reversed.
|
||||
func (lfg ListFLIPGroups) SortByUpdatedTime(inverse bool) ListFLIPGroups {
|
||||
if len(lfg) < 2 {
|
||||
return lfg
|
||||
}
|
||||
|
||||
sort.Slice(lfg, func(i, j int) bool {
|
||||
if inverse {
|
||||
return lfg[i].UpdatedTime > lfg[j].UpdatedTime
|
||||
}
|
||||
|
||||
return lfg[i].UpdatedTime < lfg[j].UpdatedTime
|
||||
})
|
||||
|
||||
return lfg
|
||||
}
|
||||
|
||||
// SortByDeletedTime sorts ListFLIPGroups by the DeletedTime field in ascending order.
|
||||
//
|
||||
// If inverse param is set to true, the order is reversed.
|
||||
func (lfg ListFLIPGroups) SortByDeletedTime(inverse bool) ListFLIPGroups {
|
||||
if len(lfg) < 2 {
|
||||
return lfg
|
||||
}
|
||||
|
||||
sort.Slice(lfg, func(i, j int) bool {
|
||||
if inverse {
|
||||
return lfg[i].DeletedTime > lfg[j].DeletedTime
|
||||
}
|
||||
|
||||
return lfg[i].DeletedTime < lfg[j].DeletedTime
|
||||
})
|
||||
|
||||
return lfg
|
||||
}
|
Loading…
Reference in new issue