adding more tests and method to receive an item's actual path identifier

This commit is contained in:
brent s. 2021-12-12 03:23:51 -05:00
parent 56ba974dec
commit cf354c3fa9
Signed by: bts
GPG Key ID: 8C004C2F93481F6B
3 changed files with 105 additions and 47 deletions

View File

@ -258,6 +258,22 @@ func (c *Collection) Modified() (modified time.Time, isChanged bool, err error)
return return
} }


/*
PathName returns the "real" name of a Collection.
In some cases, the Collection.Label may not be the actual *name* of the collection
(i.e. the label is different from the name used in the Dbus path).
This is a thin wrapper around simply extracting the last item from
the Collection.Dbus.Path().
*/
func (c *Collection) PathName() (realName string) {

var pathSplit []string = strings.Split(string(c.Dbus.Path()), "/")

realName = pathSplit[len(pathSplit)-1]

return
}

/* /*
setModify updates the Collection's modification time (as specified by Collection.Modified). setModify updates the Collection's modification time (as specified by Collection.Modified).
It seems that this does not update automatically. It seems that this does not update automatically.

View File

@ -39,52 +39,6 @@ func TestNewCollection(t *testing.T) {
} }
} }


/*
TestCollection_Label tests the following internal functions/methods via nested calls:
(all calls in TestNewCollection)
Service.GetCollection
Collection.Label

*/
func TestCollection_Label(t *testing.T) {

var svc *Service
var collection *Collection
var collLabel string
var err error

if svc, err = NewService(); err != nil {
t.Fatalf("NewService failed: %v", err.Error())
}

if collection, err = svc.GetCollection(defaultCollectionLabel); err != nil {
t.Errorf(
"failed when fetching collection '%v': %v",
defaultCollectionLabel, err.Error(),
)
err = nil
if err = svc.Close(); err != nil {
t.Errorf("could not close Service.Session: %v", err.Error())
}
}

if collLabel, err = collection.Label(); err != nil {
t.Errorf("cannot fetch label for '%v': %v", string(collection.Dbus.Path()), err.Error())
if err = svc.Close(); err != nil {
t.Fatalf("could not close Service.Session: %v", err.Error())
}
}

if defaultCollection != collLabel {
t.Errorf("fetched collection ('%v') does not match fetched collection label ('%v')", collLabel, defaultCollection)
}

if err = svc.Close(); err != nil {
t.Errorf("could not close Service.Session: %v", err.Error())
}

}

/* /*
TestCollection_Items tests the following internal functions/methods via nested calls: TestCollection_Items tests the following internal functions/methods via nested calls:


@ -156,3 +110,91 @@ func TestCollection_Items(t *testing.T) {
t.Errorf("could not close Service.Session: %v", err.Error()) t.Errorf("could not close Service.Session: %v", err.Error())
} }
} }

/*
TestCollection_Label tests the following internal functions/methods via nested calls:

(all calls in TestNewCollection)
Service.GetCollection
Collection.Label
Collection.PathName

*/
func TestCollection_Label(t *testing.T) {

var svc *Service
var collection *Collection
var collLabel string
var err error

if svc, err = NewService(); err != nil {
t.Fatalf("NewService failed: %v", err.Error())
}

if collection, err = svc.GetCollection(defaultCollectionLabel); err != nil {
t.Errorf(
"failed when fetching collection '%v': %v",
defaultCollectionLabel, err.Error(),
)
err = nil
if err = svc.Close(); err != nil {
t.Errorf("could not close Service.Session: %v", err.Error())
}
}

if collLabel, err = collection.Label(); err != nil {
t.Errorf("cannot fetch label for '%v': %v", string(collection.Dbus.Path()), err.Error())
if err = svc.Close(); err != nil {
t.Fatalf("could not close Service.Session: %v", err.Error())
}
}

if defaultCollectionLabel != collLabel {
t.Errorf("fetched collection ('%v') does not match fetched collection label ('%v')", collLabel, defaultCollectionLabel)
}

if err = svc.Close(); err != nil {
t.Errorf("could not close Service.Session: %v", err.Error())
}

}

/*
TestCollection_Locked tests the following internal functions/methods via nested calls:

(all calls in TestNewCollection)
Collection.Locked

*/
func TestCollection_Locked(t *testing.T) {

var svc *Service
var collection *Collection
var isLocked bool
var err error

if svc, err = NewService(); err != nil {
t.Fatalf("NewService failed: %v", err.Error())
}

if collection, err = svc.GetCollection(defaultCollection); err != nil {
t.Errorf(
"failed when fetching collection '%v': %v",
defaultCollectionLabel, err.Error(),
)
err = nil
if err = svc.Close(); err != nil {
t.Errorf("could not close Service.Session: %v", err.Error())
}
}

if isLocked, err = collection.Locked(); err != nil {
t.Errorf("failed to get lock status for collection '%v': %v", collection.PathName(), err.Error())
} else {
t.Logf("collection '%v' lock status: %v", collection.PathName(), isLocked)
}

if err = svc.Close(); err != nil {
t.Errorf("could not close Service.Session: %v", err.Error())
}
}

View File

@ -85,7 +85,7 @@ func TestService_Collections(t *testing.T) {
} }
t.Logf( t.Logf(
"collection #%v (name '%v', label '%v'): created %v, last modified %v", "collection #%v (name '%v', label '%v'): created %v, last modified %v",
idx, c.name, collLabel, created, modified, idx, c.PathName(), collLabel, created, modified,
) )
} }