Skip to content

Commit

Permalink
feat: Add Resource fields to DID Doc Metadata + tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Toktar committed Aug 2, 2022
1 parent 268afcf commit 589c550
Show file tree
Hide file tree
Showing 2 changed files with 101 additions and 5 deletions.
16 changes: 11 additions & 5 deletions types/did_doc_metadata.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,14 @@ type ResolutionDidDocMetadata struct {
}

type ResourcePreview struct {
ResourceURI string `json:"resourceURI,omitempty"`
Name string `json:"name,omitempty"`
ResourceType string `json:"resourceType,omitempty"`
MediaType string `json:"mediaType,omitempty"`
Created string `json:"created,omitempty"`
ResourceURI string `json:"resourceURI,omitempty"`
Name string `json:"name,omitempty"`
ResourceType string `json:"resourceType,omitempty"`
MediaType string `json:"mediaType,omitempty"`
Created string `json:"created,omitempty"`
Checksum []byte `json:"checksum,omitempty"`
PreviousVersionId string `json:"previousVersionId,omitempty"`
NextVersionId string `json:"nextVersionId,omitempty"`
}

func NewResolutionDidDocMetadata(did string, metadata cheqd.Metadata, resources []*resource.ResourceHeader) ResolutionDidDocMetadata {
Expand All @@ -39,6 +42,9 @@ func NewResolutionDidDocMetadata(did string, metadata cheqd.Metadata, resources
r.ResourceType,
r.MediaType,
r.Created,
r.Checksum,
r.PreviousVersionId,
r.NextVersionId,
}
newMetadata.Resources = append(newMetadata.Resources, resourcePreview)
}
Expand Down
90 changes: 90 additions & 0 deletions types/did_doc_metadata_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
package types

import (
"testing"

cheqd "github.com/cheqd/cheqd-node/x/cheqd/types"
resource "github.com/cheqd/cheqd-node/x/resource/types"
"github.com/stretchr/testify/require"
)

func TestNewResolutionDidDocMetadata(t *testing.T) {
validIdentifier := "N22KY2Dyvmuu2Pyy"
validDid := "did:cheqd:mainnet:" + validIdentifier
validResourceId := "18e9d838-0bea-435b-964b-c6529ede6d2b"
resourceHeader := resource.ResourceHeader{
CollectionId: validIdentifier,
Id: validResourceId,
Name: "Existing Resource Name",
ResourceType: "CL-Schema",
MediaType: "application/json",
Checksum: []byte("test_checksum")}

validMetadataResource := ResourcePreview{
ResourceURI: validDid + RESOURCE_PATH + resourceHeader.Id,
Name: resourceHeader.Name,
ResourceType: resourceHeader.ResourceType,
MediaType: resourceHeader.MediaType,
Created: resourceHeader.Created,
Checksum: resourceHeader.Checksum,
PreviousVersionId: resourceHeader.PreviousVersionId,
NextVersionId: resourceHeader.NextVersionId,
}

subtests := []struct {
name string
metadata cheqd.Metadata
resources []*resource.ResourceHeader
expectedResult ResolutionDidDocMetadata
}{
{
name: "matadata with resource",
metadata: cheqd.Metadata{
VersionId: "test_version_id",
Deactivated: false,
Resources: []string{validResourceId},
},
resources: []*resource.ResourceHeader{&resourceHeader},
expectedResult: ResolutionDidDocMetadata{
VersionId: "test_version_id",
Deactivated: false,
Resources: []ResourcePreview{validMetadataResource},
},
},
{
name: "matadata without resource in metadata",
metadata: cheqd.Metadata{
VersionId: "test_version_id",
Deactivated: false,
},
resources: []*resource.ResourceHeader{&resourceHeader},
expectedResult: ResolutionDidDocMetadata{
VersionId: "test_version_id",
Deactivated: false,
},
},
{
name: "matadata with resources",
metadata: cheqd.Metadata{
VersionId: "test_version_id",
Deactivated: false,
Resources: []string{validResourceId},
},
resources: []*resource.ResourceHeader{},
expectedResult: ResolutionDidDocMetadata{
VersionId: "test_version_id",
Deactivated: false,
},
},
}

for _, subtest := range subtests {
t.Run(subtest.name, func(t *testing.T) {

result := NewResolutionDidDocMetadata(validDid, subtest.metadata, subtest.resources)

require.EqualValues(t, subtest.expectedResult, result)
// require.EqualValues(t, subtest.expectedError, err)
})
}
}

0 comments on commit 589c550

Please sign in to comment.