Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: AasService Thumbnail Tests #298

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
d48f931
fix: fix commit history and repush
ShehriyarShariq-Fraunhofer May 26, 2024
79aff45
fix: https to http in pom.xml
ShehriyarShariq-Fraunhofer May 28, 2024
e1bb493
fix: AasServiceSuite - Test - createDummyImageIS
ShehriyarShariq-Fraunhofer May 28, 2024
3124252
fix: AasServiceSuite - Test - getThumbnail - remove dead code
ShehriyarShariq-Fraunhofer May 28, 2024
90cf6ba
fix: remove createWithDefaultThumbnail
ShehriyarShariq-Fraunhofer May 28, 2024
5d631dc
Revert pom xmlns/xsi to previous values
mateusmolina-iese May 31, 2024
b16451d
fix: temporarily fix AasService-client test. Refactor required.
ShehriyarShariq-Fraunhofer May 31, 2024
9b0f576
refactor: aasservice-core thumbnailSetup()
ShehriyarShariq-Fraunhofer Jun 3, 2024
c987e66
fix: AasService + AasRepository - make FileRepository dynaminc for In…
ShehriyarShariq-Fraunhofer Jun 4, 2024
293c7c4
fix: AasService - PR Changes 5.6.2024
ShehriyarShariq-Fraunhofer Jun 5, 2024
92bb4e9
refactor: abstract getAasServiceWithThumbnail
ShehriyarShariq-Fraunhofer Jun 13, 2024
1c0baa3
Merge remote-tracking branch 'remotes/upstream/main' into fix-aas-ser…
ShehriyarShariq-Fraunhofer Jun 13, 2024
a72aa05
Merge remote-tracking branch 'remotes/upstream/main' into fix-aas-ser…
ShehriyarShariq-Fraunhofer Jun 19, 2024
b2dbd37
fix: add getAasServiceWithThumnail in new Client tests
ShehriyarShariq-Fraunhofer Jun 19, 2024
70c7630
Remove unused dep
mateusmolina-iese Jun 21, 2024
94c3006
Refactor fileRepository lifecycle in AasServiceSuite impls.
mateusmolina-iese Jun 21, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,22 @@

import static org.junit.Assert.assertEquals;

import java.io.IOException;

import org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell;
import org.eclipse.digitaltwin.aas4j.v3.model.AssetInformation;
import org.eclipse.digitaltwin.aas4j.v3.model.Resource;
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultResource;
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepository;
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepositorySuite;
import org.eclipse.digitaltwin.basyx.aasrepository.backend.AasBackendProvider;
import org.eclipse.digitaltwin.basyx.aasrepository.backend.CrudAasRepository;
import org.eclipse.digitaltwin.basyx.aasrepository.backend.SimpleAasRepositoryFactory;
import org.eclipse.digitaltwin.basyx.aasservice.AasService;
import org.eclipse.digitaltwin.basyx.aasservice.DummyAssetAdministrationShellFactory;
import org.eclipse.digitaltwin.basyx.aasservice.backend.InMemoryAasServiceFactory;
import org.eclipse.digitaltwin.basyx.core.filerepository.FileMetadata;
import org.eclipse.digitaltwin.basyx.core.filerepository.FileRepository;
import org.eclipse.digitaltwin.basyx.core.filerepository.InMemoryFileRepository;
import org.junit.Test;

Expand All @@ -48,16 +58,37 @@ public class TestInMemoryAasRepository extends AasRepositorySuite {

private AasBackendProvider backendProvider = new AasInMemoryBackendProvider();

private static FileRepository fileRepository;

@Override
protected AasRepository getAasRepository() {
return new SimpleAasRepositoryFactory(backendProvider, new InMemoryAasServiceFactory(new InMemoryFileRepository())).create();
fileRepository = new InMemoryFileRepository();
return new SimpleAasRepositoryFactory(backendProvider, new InMemoryAasServiceFactory(fileRepository)).create();
}

@Override
protected AasService getAasServiceWithThumbnail() throws IOException {
AssetAdministrationShell expected = DummyAssetAdministrationShellFactory.createForThumbnail();
AasService aasServiceWithThumbnail = getAasService(expected);

FileMetadata defaultThumbnail = new FileMetadata("dummyImgA.jpeg", "", createDummyImageIS_A());

String thumbnailFilePath = fileRepository.save(defaultThumbnail);

Resource defaultResource = new DefaultResource.Builder().path(thumbnailFilePath).contentType("").build();
AssetInformation defaultAasAssetInformation = aasServiceWithThumbnail.getAssetInformation();
defaultAasAssetInformation.setDefaultThumbnail(defaultResource);

aasServiceWithThumbnail.setAssetInformation(defaultAasAssetInformation);

return aasServiceWithThumbnail;
}


@Test
public void getConfiguredInMemoryAasRepositoryName() {
AasRepository repo = new CrudAasRepository(backendProvider, new InMemoryAasServiceFactory(new InMemoryFileRepository()), CONFIGURED_AAS_REPO_NAME);
AasRepository repo = new CrudAasRepository(backendProvider, new InMemoryAasServiceFactory(fileRepository), CONFIGURED_AAS_REPO_NAME);

assertEquals(CONFIGURED_AAS_REPO_NAME, repo.getName());
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,28 @@

import static org.junit.Assert.assertEquals;

import java.io.IOException;
import java.util.Arrays;

import org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell;
import org.eclipse.digitaltwin.aas4j.v3.model.AssetInformation;
import org.eclipse.digitaltwin.aas4j.v3.model.Resource;
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultAssetAdministrationShell;
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultResource;
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepository;
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepositoryFactory;
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepositorySuite;
import org.eclipse.digitaltwin.basyx.aasrepository.DummyAasFactory;
import org.eclipse.digitaltwin.basyx.aasrepository.backend.AasBackendProvider;
import org.eclipse.digitaltwin.basyx.aasrepository.backend.CrudAasRepository;
import org.eclipse.digitaltwin.basyx.aasrepository.backend.SimpleAasRepositoryFactory;
import org.eclipse.digitaltwin.basyx.aasservice.AasService;
import org.eclipse.digitaltwin.basyx.aasservice.DummyAssetAdministrationShellFactory;
import org.eclipse.digitaltwin.basyx.aasservice.backend.InMemoryAasServiceFactory;
import org.eclipse.digitaltwin.basyx.common.mongocore.BasyxMongoMappingContext;
import org.eclipse.digitaltwin.basyx.common.mongocore.MongoDBUtilities;
import org.eclipse.digitaltwin.basyx.core.filerepository.FileMetadata;
import org.eclipse.digitaltwin.basyx.core.filerepository.FileRepository;
import org.eclipse.digitaltwin.basyx.core.filerepository.MongoDBFileRepository;
import org.junit.Test;
import org.springframework.data.mongodb.core.MongoTemplate;
Expand All @@ -65,15 +73,36 @@ public class TestMongoDBAasRepository extends AasRepositorySuite {

private static GridFsTemplate gridFsTemplate = configureDefaultGridFsTemplate(mongoTemplate);

private static FileRepository fileRepository;

@Override
protected AasRepository getAasRepository() {
MongoDBUtilities.clearCollection(mongoTemplate, COLLECTION);
fileRepository = new MongoDBFileRepository(gridFsTemplate);
AasBackendProvider aasBackendProvider = new AasMongoDBBackendProvider(new BasyxMongoMappingContext(), COLLECTION, mongoTemplate);
AasRepositoryFactory aasRepositoryFactory = new SimpleAasRepositoryFactory(aasBackendProvider, new InMemoryAasServiceFactory(new MongoDBFileRepository(gridFsTemplate)));
AasRepositoryFactory aasRepositoryFactory = new SimpleAasRepositoryFactory(aasBackendProvider, new InMemoryAasServiceFactory(fileRepository));

return aasRepositoryFactory.create();
}

@Override
protected AasService getAasServiceWithThumbnail() throws IOException {
AssetAdministrationShell expected = DummyAssetAdministrationShellFactory.createForThumbnail();
AasService aasServiceWithThumbnail = getAasService(expected);

FileMetadata defaultThumbnail = new FileMetadata("dummyImgA.jpeg", "", createDummyImageIS_A());

String thumbnailFilePath = fileRepository.save(defaultThumbnail);

Resource defaultResource = new DefaultResource.Builder().path(thumbnailFilePath).contentType("").build();
AssetInformation defaultAasAssetInformation = aasServiceWithThumbnail.getAssetInformation();
defaultAasAssetInformation.setDefaultThumbnail(defaultResource);

aasServiceWithThumbnail.setAssetInformation(defaultAasAssetInformation);

return aasServiceWithThumbnail;
}

@Test
public void aasIsPersisted() {
AasRepository aasRepository = getAasRepository();
Expand All @@ -100,7 +129,7 @@ public void updatedAasIsPersisted() {

@Test
public void getConfiguredMongoDBAasRepositoryName() {
AasRepository repo = new CrudAasRepository(new AasMongoDBBackendProvider(new BasyxMongoMappingContext(), COLLECTION, mongoTemplate), new InMemoryAasServiceFactory(new MongoDBFileRepository(gridFsTemplate)), CONFIGURED_AAS_REPO_NAME);
AasRepository repo = new CrudAasRepository(new AasMongoDBBackendProvider(new BasyxMongoMappingContext(), COLLECTION, mongoTemplate), new InMemoryAasServiceFactory(fileRepository), CONFIGURED_AAS_REPO_NAME);

assertEquals(CONFIGURED_AAS_REPO_NAME, repo.getName());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepositorySuite;
import org.eclipse.digitaltwin.basyx.aasrepository.DummyAasFactory;
import org.eclipse.digitaltwin.basyx.aasrepository.feature.authorization.DummyAuthorizedAasRepositoryComponent;
import org.eclipse.digitaltwin.basyx.aasservice.AasService;
import org.eclipse.digitaltwin.basyx.aasservice.DummyAssetAdministrationShellFactory;
import org.eclipse.digitaltwin.basyx.aasservice.client.TestAuthorizedConnectedAasService;
import org.eclipse.digitaltwin.basyx.client.internal.ApiException;
import org.eclipse.digitaltwin.basyx.client.internal.authorization.TokenManager;
Expand Down Expand Up @@ -104,4 +106,14 @@ public void sendUnauthorizedRequest() throws IOException {
protected AasRepository getAasRepository() {
return new AuthorizedConnectedAasRepository("http://localhost:8081", new TokenManager("http://localhost:9096/realms/BaSyx/protocol/openid-connect/token", new ClientCredentialAccessTokenProvider(new ClientCredential("workstation-1", "nY0mjyECF60DGzNmQUjL81XurSl8etom"))));
}

@Override
protected AasService getAasServiceWithThumbnail() throws IOException {
AssetAdministrationShell expected = DummyAssetAdministrationShellFactory.createForThumbnail();
AasService aasServiceWithThumbnail = getAasService(expected);

aasServiceWithThumbnail.setThumbnail("dummyImgA.jpeg", "", createDummyImageIS_A());

return aasServiceWithThumbnail;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,9 +26,14 @@

package org.eclipse.digitaltwin.basyx.aasrepository.client;

import java.io.IOException;

import org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell;
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepository;
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepositorySuite;
import org.eclipse.digitaltwin.basyx.aasrepository.http.DummyAasRepositoryComponent;
import org.eclipse.digitaltwin.basyx.aasservice.AasService;
import org.eclipse.digitaltwin.basyx.aasservice.DummyAssetAdministrationShellFactory;
import org.eclipse.digitaltwin.basyx.core.pagination.PaginationInfo;
import org.junit.After;
import org.junit.AfterClass;
Expand Down Expand Up @@ -68,4 +73,14 @@ public static void shutdownAASRepo() {
protected AasRepository getAasRepository() {
return new ConnectedAasRepository("http://localhost:8080");
}

@Override
protected AasService getAasServiceWithThumbnail() throws IOException {
AssetAdministrationShell expected = DummyAssetAdministrationShellFactory.createForThumbnail();
AasService aasServiceWithThumbnail = getAasService(expected);

aasServiceWithThumbnail.setThumbnail("dummyImgA.jpeg", "", createDummyImageIS_A());

return aasServiceWithThumbnail;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,42 @@

package org.eclipse.digitaltwin.basyx.aasservice;

import java.io.IOException;

import org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell;
import org.eclipse.digitaltwin.aas4j.v3.model.AssetInformation;
import org.eclipse.digitaltwin.aas4j.v3.model.Resource;
import org.eclipse.digitaltwin.aas4j.v3.model.impl.DefaultResource;
import org.eclipse.digitaltwin.basyx.aasservice.backend.InMemoryAasServiceFactory;
import org.eclipse.digitaltwin.basyx.core.filerepository.FileMetadata;
import org.eclipse.digitaltwin.basyx.core.filerepository.FileRepository;
import org.eclipse.digitaltwin.basyx.core.filerepository.InMemoryFileRepository;

public class TestInMemoryAasService extends AasServiceSuite {


private static FileRepository fileRepository;

@Override
protected AasService getAasService(AssetAdministrationShell shell) {
return new InMemoryAasServiceFactory(new InMemoryFileRepository()).create(shell);
fileRepository = new InMemoryFileRepository();
return new InMemoryAasServiceFactory(fileRepository).create(shell);
}

@Override
protected AasService getAasServiceWithThumbnail() throws IOException {
AssetAdministrationShell expected = DummyAssetAdministrationShellFactory.createForThumbnail();
AasService aasServiceWithThumbnail = getAasService(expected);

FileMetadata defaultThumbnail = new FileMetadata("dummyImgA.jpeg", "", createDummyImageIS_A());

String thumbnailFilePath = fileRepository.save(defaultThumbnail);

Resource defaultResource = new DefaultResource.Builder().path(thumbnailFilePath).contentType("").build();
AssetInformation defaultAasAssetInformation = aasServiceWithThumbnail.getAssetInformation();
defaultAasAssetInformation.setDefaultThumbnail(defaultResource);

aasServiceWithThumbnail.setAssetInformation(defaultAasAssetInformation);

return aasServiceWithThumbnail;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
import org.eclipse.digitaltwin.basyx.aasrepository.feature.authorization.DummyAuthorizedAasRepositoryComponent;
import org.eclipse.digitaltwin.basyx.aasservice.AasService;
import org.eclipse.digitaltwin.basyx.aasservice.AasServiceSuite;
import org.eclipse.digitaltwin.basyx.aasservice.DummyAssetAdministrationShellFactory;
import org.eclipse.digitaltwin.basyx.authorization.AccessTokenProvider;
import org.eclipse.digitaltwin.basyx.authorization.DummyCredential;
import org.eclipse.digitaltwin.basyx.authorization.DummyCredentialStore;
Expand Down Expand Up @@ -129,6 +130,16 @@ protected AasService getAasService(AssetAdministrationShell shell) {
String base64UrlEncodedId = Base64UrlEncodedIdentifier.encodeIdentifier(shell.getId());
return new AuthorizedConnectedAasService(AAS_REPO_URL + base64UrlEncodedId, new TokenManager("http://localhost:9096/realms/BaSyx/protocol/openid-connect/token", new ClientCredentialAccessTokenProvider(new ClientCredential("workstation-1", "nY0mjyECF60DGzNmQUjL81XurSl8etom"))));
}

@Override
protected AasService getAasServiceWithThumbnail() throws IOException {
AssetAdministrationShell expected = DummyAssetAdministrationShellFactory.createForThumbnail();
AasService aasServiceWithThumbnail = getAasService(expected);

aasServiceWithThumbnail.setThumbnail("dummyImgA.jpeg", "", createDummyImageIS_A());

return aasServiceWithThumbnail;
}

public static void configureSecurityContext(AccessTokenProvider accessTokenProvider) throws FileNotFoundException, IOException {
String adminToken = getAdminAccessToken(accessTokenProvider);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,11 +25,14 @@

package org.eclipse.digitaltwin.basyx.aasservice.client;

import java.io.IOException;

import org.eclipse.digitaltwin.aas4j.v3.model.AssetAdministrationShell;
import org.eclipse.digitaltwin.basyx.aasrepository.AasRepository;
import org.eclipse.digitaltwin.basyx.aasrepository.http.DummyAasRepositoryComponent;
import org.eclipse.digitaltwin.basyx.aasservice.AasService;
import org.eclipse.digitaltwin.basyx.aasservice.AasServiceSuite;
import org.eclipse.digitaltwin.basyx.aasservice.DummyAssetAdministrationShellFactory;
import org.eclipse.digitaltwin.basyx.core.pagination.PaginationInfo;
import org.eclipse.digitaltwin.basyx.http.Base64UrlEncodedIdentifier;
import org.junit.After;
Expand Down Expand Up @@ -69,4 +72,14 @@ protected AasService getAasService(AssetAdministrationShell shell) {
return new ConnectedAasService("http://localhost:8080/shells/" + base64UrlEncodedId);

}

@Override
protected AasService getAasServiceWithThumbnail() throws IOException {
AssetAdministrationShell expected = DummyAssetAdministrationShellFactory.createForThumbnail();
AasService aasServiceWithThumbnail = getAasService(expected);

aasServiceWithThumbnail.setThumbnail("dummyImgA.jpeg", "", createDummyImageIS_A());

return aasServiceWithThumbnail;
}
}
2 changes: 1 addition & 1 deletion basyx.aasservice/basyx.aasservice-core/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
<groupId>org.eclipse.digitaltwin.basyx</groupId>
<artifactId>basyx.core</artifactId>
</dependency>

<dependency>
<groupId>org.eclipse.digitaltwin.aas4j</groupId>
<artifactId>aas4j-model</artifactId>
Expand Down
Loading
Loading