From 4882f88387d7177c01a7d061b5d8de0763928ca3 Mon Sep 17 00:00:00 2001 From: Paul Latzelsperger Date: Fri, 24 Nov 2023 13:14:17 +0100 Subject: [PATCH] fix: add missing type transformer registrations --- .../IdentityTrustTransformExtension.java | 10 +++ .../IdentityTrustTransformExtensionTest.java | 61 +++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 extensions/common/iam/identity-trust/identity-trust-transform/src/test/java/org/eclipse/edc/iam/identitytrust/IdentityTrustTransformExtensionTest.java diff --git a/extensions/common/iam/identity-trust/identity-trust-transform/src/main/java/org/eclipse/edc/iam/identitytrust/IdentityTrustTransformExtension.java b/extensions/common/iam/identity-trust/identity-trust-transform/src/main/java/org/eclipse/edc/iam/identitytrust/IdentityTrustTransformExtension.java index 47b6039b30f..9032a6fee11 100644 --- a/extensions/common/iam/identity-trust/identity-trust-transform/src/main/java/org/eclipse/edc/iam/identitytrust/IdentityTrustTransformExtension.java +++ b/extensions/common/iam/identity-trust/identity-trust-transform/src/main/java/org/eclipse/edc/iam/identitytrust/IdentityTrustTransformExtension.java @@ -15,7 +15,12 @@ package org.eclipse.edc.iam.identitytrust; import org.eclipse.edc.iam.identitytrust.transform.from.JsonObjectFromPresentationQueryTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToCredentialStatusTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToCredentialSubjectTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToIssuerTransformer; import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToPresentationQueryTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToVerifiableCredentialTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToVerifiablePresentationTransformer; import org.eclipse.edc.iam.identitytrust.transform.to.JwtToVerifiableCredentialTransformer; import org.eclipse.edc.iam.identitytrust.transform.to.JwtToVerifiablePresentationTransformer; import org.eclipse.edc.jsonld.spi.JsonLd; @@ -59,6 +64,11 @@ public void initialize(ServiceExtensionContext context) { typeTransformerRegistry.register(new JsonObjectToPresentationQueryTransformer(typeManager.getMapper(JSON_LD))); typeTransformerRegistry.register(new JsonObjectFromPresentationQueryTransformer()); + typeTransformerRegistry.register(new JsonObjectToVerifiablePresentationTransformer()); + typeTransformerRegistry.register(new JsonObjectToVerifiableCredentialTransformer()); + typeTransformerRegistry.register(new JsonObjectToIssuerTransformer()); + typeTransformerRegistry.register(new JsonObjectToCredentialSubjectTransformer()); + typeTransformerRegistry.register(new JsonObjectToCredentialStatusTransformer()); typeTransformerRegistry.register(new JwtToVerifiablePresentationTransformer(context.getMonitor(), typeManager.getMapper(JSON_LD), jsonLdService)); typeTransformerRegistry.register(new JwtToVerifiableCredentialTransformer(context.getMonitor())); } diff --git a/extensions/common/iam/identity-trust/identity-trust-transform/src/test/java/org/eclipse/edc/iam/identitytrust/IdentityTrustTransformExtensionTest.java b/extensions/common/iam/identity-trust/identity-trust-transform/src/test/java/org/eclipse/edc/iam/identitytrust/IdentityTrustTransformExtensionTest.java new file mode 100644 index 00000000000..c2293001a6a --- /dev/null +++ b/extensions/common/iam/identity-trust/identity-trust-transform/src/test/java/org/eclipse/edc/iam/identitytrust/IdentityTrustTransformExtensionTest.java @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2023 Bayerische Motoren Werke Aktiengesellschaft (BMW AG) + * + * This program and the accompanying materials are made available under the + * terms of the Apache License, Version 2.0 which is available at + * https://www.apache.org/licenses/LICENSE-2.0 + * + * SPDX-License-Identifier: Apache-2.0 + * + * Contributors: + * Bayerische Motoren Werke Aktiengesellschaft (BMW AG) - initial API and implementation + * + */ + +package org.eclipse.edc.iam.identitytrust; + +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToCredentialStatusTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToCredentialSubjectTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToIssuerTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToPresentationQueryTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToVerifiableCredentialTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JsonObjectToVerifiablePresentationTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JwtToVerifiableCredentialTransformer; +import org.eclipse.edc.iam.identitytrust.transform.to.JwtToVerifiablePresentationTransformer; +import org.eclipse.edc.junit.extensions.DependencyInjectionExtension; +import org.eclipse.edc.spi.system.ServiceExtensionContext; +import org.eclipse.edc.transform.spi.TypeTransformerRegistry; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; + +import static org.mockito.ArgumentMatchers.isA; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; + +@ExtendWith(DependencyInjectionExtension.class) +class IdentityTrustTransformExtensionTest { + + private final TypeTransformerRegistry mockRegistry = mock(); + private ServiceExtensionContext context; + + @BeforeEach + void setup(ServiceExtensionContext context) { + this.context = context; + context.registerService(TypeTransformerRegistry.class, mockRegistry); + } + + @Test + void initialize_assertTransformerRegistrations(IdentityTrustTransformExtension extension, ServiceExtensionContext context) { + extension.initialize(context); + + verify(mockRegistry).register(isA(JsonObjectToCredentialStatusTransformer.class)); + verify(mockRegistry).register(isA(JsonObjectToCredentialSubjectTransformer.class)); + verify(mockRegistry).register(isA(JsonObjectToIssuerTransformer.class)); + verify(mockRegistry).register(isA(JsonObjectToPresentationQueryTransformer.class)); + verify(mockRegistry).register(isA(JsonObjectToVerifiableCredentialTransformer.class)); + verify(mockRegistry).register(isA(JsonObjectToVerifiablePresentationTransformer.class)); + verify(mockRegistry).register(isA(JwtToVerifiableCredentialTransformer.class)); + verify(mockRegistry).register(isA(JwtToVerifiablePresentationTransformer.class)); + } +} \ No newline at end of file