diff --git a/src/pkg/path/builder.go b/src/pkg/path/builder.go index c4473265a..d10c719c3 100644 --- a/src/pkg/path/builder.go +++ b/src/pkg/path/builder.go @@ -232,18 +232,7 @@ func (pb Builder) ToStreamStorePath( return nil, clues.New("missing path beyond prefix") } - metadataService := UnknownService - - switch service { - case ExchangeService: - metadataService = ExchangeMetadataService - case OneDriveService: - metadataService = OneDriveMetadataService - case SharePointService: - metadataService = SharePointMetadataService - case GroupsService: - metadataService = GroupsMetadataService - } + metadataService := service.ToMetadata() return &dataLayerResourcePath{ Builder: *pb.withPrefix( @@ -275,18 +264,7 @@ func (pb Builder) ToServiceCategoryMetadataPath( return nil, clues.New("missing path beyond prefix") } - metadataService := UnknownService - - switch service { - case ExchangeService: - metadataService = ExchangeMetadataService - case OneDriveService: - metadataService = OneDriveMetadataService - case SharePointService: - metadataService = SharePointMetadataService - case GroupsService: - metadataService = GroupsMetadataService - } + metadataService := service.ToMetadata() rp := dataLayerResourcePath{ Builder: *pb.withPrefix( diff --git a/src/pkg/path/service_category_test.go b/src/pkg/path/service_category_test.go index 2d98ed49c..ceffe2f3c 100644 --- a/src/pkg/path/service_category_test.go +++ b/src/pkg/path/service_category_test.go @@ -187,3 +187,37 @@ func (suite *ServiceCategoryUnitSuite) TestToCategoryType() { }) } } + +func (suite *ServiceCategoryUnitSuite) TestToMetadata() { + table := []struct { + input ServiceType + expect ServiceType + }{ + { + input: ExchangeService, + expect: ExchangeMetadataService, + }, + { + input: OneDriveService, + expect: OneDriveMetadataService, + }, + { + input: SharePointService, + expect: SharePointMetadataService, + }, + { + input: GroupsService, + expect: GroupsMetadataService, + }, + { + input: UnknownService, + expect: UnknownService, + }, + } + + for _, test := range table { + suite.Run(test.input.String(), func() { + assert.Equal(suite.T(), test.expect, test.input.ToMetadata()) + }) + } +} diff --git a/src/pkg/path/service_type.go b/src/pkg/path/service_type.go index 37445eaa4..1c9e2b73a 100644 --- a/src/pkg/path/service_type.go +++ b/src/pkg/path/service_type.go @@ -74,3 +74,18 @@ func (svc ServiceType) HumanString() string { return "Unknown Service" } + +func (svc ServiceType) ToMetadata() ServiceType { + switch svc { + case ExchangeService: + return ExchangeMetadataService + case OneDriveService: + return OneDriveMetadataService + case SharePointService: + return SharePointMetadataService + case GroupsService: + return GroupsMetadataService + } + + return UnknownService +}