refactor: add needed helper functions and overrides to properly compare the maps
This commit is contained in:
parent
15b6a0dc19
commit
951f0062da
|
@ -3,15 +3,50 @@ package metadata
|
||||||
import (
|
import (
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
"git.lumeweb.com/LumeWeb/libs5-go/encoding"
|
"github.com/emirpasic/gods/maps/linkedhashmap"
|
||||||
cmp "github.com/LumeWeb/go-cmp"
|
cmp "github.com/google/go-cmp/cmp"
|
||||||
"github.com/vmihailenco/msgpack/v5"
|
"github.com/vmihailenco/msgpack/v5"
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
"reflect"
|
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
func isEqual(sizeFunc1, sizeFunc2 func() int, iteratorFunc1, iteratorFunc2 func() linkedhashmap.Iterator) bool {
|
||||||
|
if sizeFunc1() != sizeFunc2() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
iter1 := iteratorFunc1()
|
||||||
|
iter2 := iteratorFunc2()
|
||||||
|
|
||||||
|
for iter1.Next() {
|
||||||
|
iter2.Next()
|
||||||
|
if iter1.Key() != iter2.Key() {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if !cmp.Equal(iter1.Value(), iter2.Value()) {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
func (frm fileReferenceMap) Equal(other fileReferenceMap) bool {
|
||||||
|
return isEqual(frm.Size, other.Size, frm.Iterator, other.Iterator)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (frm fileHistoryMap) Equal(other fileHistoryMap) bool {
|
||||||
|
return isEqual(frm.Size, other.Size, frm.Iterator, other.Iterator)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (drm directoryReferenceMap) Equal(other directoryReferenceMap) bool {
|
||||||
|
return isEqual(drm.Size, other.Size, drm.Iterator, other.Iterator)
|
||||||
|
}
|
||||||
|
func (ext extMap) Equal(other extMap) bool {
|
||||||
|
return isEqual(ext.Size, other.Size, ext.Iterator, other.Iterator)
|
||||||
|
}
|
||||||
|
|
||||||
func readFile(filename string) []byte {
|
func readFile(filename string) []byte {
|
||||||
filePath := filepath.Join("testdata", filename)
|
filePath := filepath.Join("testdata", filename)
|
||||||
data, err := os.ReadFile(filePath)
|
data, err := os.ReadFile(filePath)
|
||||||
|
|
Loading…
Reference in New Issue