package org.opennaas.extensions.network.repository.tests; import org.junit.Assert; import org.junit.Test; import org.opennaas.core.resources.IResource; import org.opennaas.core.resources.ResourceException; import org.opennaas.core.resources.descriptor.ResourceDescriptor; import org.opennaas.core.resources.helpers.ResourceHelper; import org.opennaas.core.resources.mock.MockCapabilityFactory; import org.opennaas.core.resources.mock.MockDescriptorRepository; import org.opennaas.extensions.network.repository.NetworkRepository; public class NetworkRepositoryTest { NetworkRepository NetworkRepository; @Test public void testCapabilityFactories() { NetworkRepository = new NetworkRepository("NetworkRepository"); NetworkRepository.setResourceDescriptorRepository(new MockDescriptorRepository()); NetworkRepository.capabilityFactoryAdded(new MockCapabilityFactory("factory1")); NetworkRepository.capabilityFactoryAdded(new MockCapabilityFactory("factory2")); Assert.assertTrue(NetworkRepository.getCapabilityFactories().size() == 2); Assert.assertNotNull(NetworkRepository.getCapabilityFactories().get("factory1")); Assert.assertNotNull(NetworkRepository.getCapabilityFactories().get("factory2")); } @Test public void testCreateRemoveResources() { NetworkRepository = new NetworkRepository("network"); NetworkRepository.setResourceDescriptorRepository(new MockDescriptorRepository()); NetworkRepository.capabilityFactoryAdded(new MockCapabilityFactory("factory1")); NetworkRepository.capabilityFactoryAdded(new MockCapabilityFactory("factory2")); try { /* type of resources */ ResourceDescriptor descriptor = ResourceHelper.newResourceDescriptorNetwork("network1"); IResource resource = NetworkRepository.createResource(descriptor); String id = resource.getResourceIdentifier().getId(); Assert.assertNotNull(id); Assert.assertTrue(resource.getResourceDescriptor().equals(descriptor)); Assert.assertTrue(resource.getResourceIdentifier().getType().equals("network")); boolean thrown = false; NetworkRepository.removeResource(id); try { NetworkRepository.getResource(id); } catch (Exception e) { thrown = true; } Assert.assertTrue(thrown); } catch (ResourceException e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } @Test public void testModifyResources() { NetworkRepository = new NetworkRepository("network"); NetworkRepository.setResourceDescriptorRepository(new MockDescriptorRepository()); NetworkRepository.capabilityFactoryAdded(new MockCapabilityFactory("factory1")); NetworkRepository.capabilityFactoryAdded(new MockCapabilityFactory("factory2")); try { /* type of resources */ IResource resource = NetworkRepository.createResource(ResourceHelper.newResourceDescriptorNetwork("network1")); String id = resource.getResourceIdentifier().getId(); Assert.assertTrue(resource.getResourceDescriptor().getCapabilityDescriptors().size() == 2); Assert.assertTrue(resource.getResourceIdentifier().getType().equals("network")); resource = NetworkRepository.modifyResource(id, oldResourceDescriptor("networkOld", "network")); IResource newResource = NetworkRepository.getResource(resource.getResourceIdentifier().getId()); Assert.assertTrue(newResource.getResourceDescriptor().getCapabilityDescriptors().size() == 1); Assert.assertTrue(newResource.getResourceIdentifier().getType().equals("network")); Assert.assertTrue(newResource.getResourceDescriptor().getInformation().getName().equals("networkOld")); } catch (ResourceException e) { e.printStackTrace(); Assert.fail(e.getMessage()); } } private ResourceDescriptor oldResourceDescriptor(String name, String type) { ResourceDescriptor networkDescriptor = ResourceHelper.newResourceDescriptorNetwork(name); networkDescriptor.getInformation().setType(type); networkDescriptor.getCapabilityDescriptors().remove(0); return networkDescriptor; } }