| /******************************************************************************* |
| * Copyright (C) 2021 the Eclipse BaSyx Authors |
| * |
| * This program and the accompanying materials are made |
| * available under the terms of the Eclipse Public License 2.0 |
| * which is available at https://www.eclipse.org/legal/epl-2.0/ |
| * |
| * SPDX-License-Identifier: EPL-2.0 |
| ******************************************************************************/ |
| package org.eclipse.basyx.testsuite.regression.vab.directory.proxy; |
| |
| import static org.junit.Assert.assertEquals; |
| import static org.junit.Assert.assertNotNull; |
| import static org.junit.Assert.fail; |
| |
| import org.eclipse.basyx.vab.directory.api.IVABDirectoryService; |
| import org.eclipse.basyx.vab.exception.provider.ResourceNotFoundException; |
| import org.junit.After; |
| import org.junit.Before; |
| import org.junit.Test; |
| |
| /** |
| * Integration test for a registry. All registry provider implementations have |
| * to pass these tests. |
| * |
| * @author espen, schnicke |
| * |
| */ |
| public abstract class TestDirectory { |
| // The registry proxy that is used to access the backend |
| protected final IVABDirectoryService registry = getRegistry(); |
| |
| // Ids and endpoints for registered elements |
| protected String elem1 = "elem1"; |
| protected String elem2 = "elem2"; |
| protected String elem3 = "elem3"; |
| protected String endpoint1 = "http://www.registrytest.de/elem1"; |
| protected String endpoint2 = "http://www.registrytest.de/elem2"; |
| protected String endpoint3 = "http://www.registrytest.de/elem3"; |
| |
| /** |
| * Getter for the tested registry provider. Tests for actual registry provider |
| * have to realize this method. |
| */ |
| protected abstract IVABDirectoryService getRegistry(); |
| |
| /** |
| * During setup of the tests, new entries are created in the registry using a |
| * proxy |
| */ |
| @Before |
| public void setUp() { |
| // Register Elements |
| registry.addMapping(elem1, endpoint1); |
| registry.addMapping(elem2, endpoint2); |
| } |
| |
| /** |
| * Remove registry entries after each test |
| */ |
| @After |
| public void tearDown() { |
| registry.removeMapping(elem1); |
| registry.removeMapping(elem2); |
| } |
| |
| /** |
| * Tests getting single entries from the registry and validates the result. |
| */ |
| @Test |
| public void testGetSingleElement() { |
| // Retrieve and check the first Element |
| String result = registry.lookup(elem1); |
| assertEquals(endpoint1, result); |
| |
| |
| // Retrieve and check the second AAS |
| result = registry.lookup(elem2); |
| assertEquals(endpoint2, result); |
| } |
| |
| /** |
| * Tests deletion for element entries |
| */ |
| @Test |
| public void testDeleteCall() { |
| // After the setup, both Elements should have been inserted to the registry |
| assertNotNull(registry.lookup(elem1)); |
| assertNotNull(registry.lookup(elem2)); |
| |
| registry.removeMapping(elem2); |
| |
| // After elem2 has been deleted, only elem1 should be registered |
| assertNotNull(registry.lookup(elem1)); |
| try { |
| registry.lookup(elem2); |
| fail(); |
| } catch (ResourceNotFoundException e) { |
| // Expected |
| } |
| |
| registry.removeMapping(elem1); |
| |
| // After elem2 has been deleted, no element should be registered |
| try { |
| registry.lookup(elem1); |
| fail(); |
| } catch (ResourceNotFoundException e) { |
| // Expected |
| } |
| try { |
| registry.lookup(elem2); |
| fail(); |
| } catch (ResourceNotFoundException e) { |
| // Expected |
| } |
| } |
| } |