/* * Copyright 2014 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.artificer.repository.test; import org.junit.Before; import org.junit.Test; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Actor; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ActorEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ActorTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.BaseArtifactEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.BaseArtifactTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.BaseArtifactType; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Choreography; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ChoreographyProcess; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Collaboration; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.CollaborationProcess; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Composition; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.DerivedArtifactEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.DerivedArtifactTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.DocumentArtifactEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.DocumentArtifactTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Effect; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.EffectEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.EffectTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Element; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ElementEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ElementTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Event; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.EventEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.EventTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.InformationType; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Operation; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Orchestration; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.OrchestrationEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.OrchestrationProcess; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.OrchestrationProcessEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.OrchestrationProcessTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.OrchestrationTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Organization; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Policy; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.PolicyEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.PolicySubject; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.PolicyTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Port; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.PortType; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Service; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceComposition; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceContract; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceContractEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceContractTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceEndpoint; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceImplementationModelEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceImplementationModelTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceInstance; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceInstanceEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceInstanceTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceInterface; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceInterfaceEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceInterfaceTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceOperation; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceOperationEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceOperationTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.ServiceTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.SoaModelType; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.SoapAddress; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Target; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Task; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.TaskEnum; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.TaskTarget; import org.oasis_open.docs.s_ramp.ns.s_ramp_v1.WsdlDocument; import org.artificer.common.ArtifactTypeEnum; import java.util.List; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; /** * @author Brett Meyer */ public class LogicalModelTest extends AbstractNoAuditingPersistenceTest { @Test public void testServiceImplementationModel() throws Exception { ServiceEndpoint persistedServiceEndpoint = (ServiceEndpoint) getArtifactByUUID(serviceEndpoint.getUuid()); assertBasic(persistedServiceEndpoint, serviceEndpoint); assertDocumentation(persistedServiceEndpoint.getDocumentation()); assertEquals(serviceEndpoint.getUrl(), persistedServiceEndpoint.getUrl()); Port portByTarget = (Port) getArtifactByTarget(persistedServiceEndpoint.getEndpointDefinedBy()); assertBasic(portByTarget, port); ServiceInstance persistedServiceInstance = (ServiceInstance) getArtifactByUUID(serviceInstance.getUuid()); assertBasic(persistedServiceInstance, serviceInstance); assertDocumentation(persistedServiceInstance.getDocumentation()); assertTargets(persistedServiceInstance.getUses(), 1, port); assertTargets(persistedServiceInstance.getDescribedBy(), 1, wsdl); ServiceOperation persistedServiceOperation = (ServiceOperation) getArtifactByUUID(serviceOperation.getUuid()); assertBasic(persistedServiceOperation, serviceOperation); assertDocumentation(persistedServiceOperation.getDocumentation()); Operation operationByTarget = (Operation) getArtifactByTarget(persistedServiceOperation.getOperationDefinedBy()); assertBasic(operationByTarget, operation); } @Test public void testSOAModel() throws Exception { insertSoaArtifacts(); Effect effect = new Effect(); effect.setArtifactType(BaseArtifactEnum.EFFECT); persistAndAssert(effect); EffectTarget effectTarget = new EffectTarget(); effectTarget.setArtifactType(EffectEnum.EFFECT); effectTarget.setValue(effect.getUuid()); Event event = new Event(); event.setArtifactType(BaseArtifactEnum.EVENT); persistAndAssert(event); InformationType informationType = new InformationType(); informationType.setArtifactType(BaseArtifactEnum.INFORMATION_TYPE); persistAndAssert(informationType); Policy policy = new Policy(); policy.setArtifactType(BaseArtifactEnum.POLICY); persistAndAssert(policy); // TODO: Test w/ a policy attachment, once the deriver actually works. PolicySubject policySubject = new PolicySubject(); policySubject.setArtifactType(BaseArtifactEnum.POLICY_SUBJECT); persistAndAssert(policySubject); Element element = new Element(); element.setArtifactType(BaseArtifactEnum.ELEMENT); persistAndAssertElement(element); Actor actor = new Actor(); actor.setArtifactType(BaseArtifactEnum.ACTOR); persistAndAssertActor(actor); ActorTarget actorTarget = new ActorTarget(); actorTarget.setArtifactType(ActorEnum.ACTOR); actorTarget.setValue(actor.getUuid()); Organization organization = new Organization(); organization.setArtifactType(BaseArtifactEnum.ORGANIZATION); ServiceImplementationModelTarget serviceImplementationModelTarget = new ServiceImplementationModelTarget(); serviceImplementationModelTarget.setArtifactType(ServiceImplementationModelEnum.SERVICE_ENDPOINT); serviceImplementationModelTarget.setValue(serviceEndpoint.getUuid()); organization.getProvides().add(serviceImplementationModelTarget); organization = (Organization) persistAndAssertActor(organization); assertTargets(organization.getProvides(), 1, serviceEndpoint); ServiceContract serviceContract = new ServiceContract(); serviceContract.setArtifactType(BaseArtifactEnum.SERVICE_CONTRACT); serviceContract.getInvolvesParty().add(actorTarget); serviceContract.getSpecifies().add(effectTarget); serviceContract = persistAndAssert(serviceContract); assertTargets(serviceContract.getInvolvesParty(), 1, actor); assertTargets(serviceContract.getSpecifies(), 1, effect); ServiceContractTarget serviceContractTarget = new ServiceContractTarget(); serviceContractTarget.setArtifactType(ServiceContractEnum.SERVICE_CONTRACT); serviceContractTarget.setValue(serviceContract.getUuid()); ServiceInterface serviceInterface = new ServiceInterface(); serviceInterface.setArtifactType(BaseArtifactEnum.SERVICE_INTERFACE); serviceInterface.setInterfaceDefinedBy(derivedPortTypeTarget); // TODO: Also can't test hasOutput, hasInput, and isInterfaceOf until the target enums are corrected ServiceOperationTarget serviceOperationTarget = new ServiceOperationTarget(); serviceOperationTarget.setArtifactType(ServiceOperationEnum.SERVICE_OPERATION); serviceOperationTarget.setValue(serviceOperation.getUuid()); serviceInterface.setHasOperation(serviceOperationTarget); serviceInterface = persistAndAssert(serviceInterface); assertTarget(serviceInterface.getHasOperation(), serviceOperation); // TODO: check #interfaceDefinedBy after the above is corrected ServiceInterfaceTarget serviceInterfaceTarget = new ServiceInterfaceTarget(); serviceInterfaceTarget.setArtifactType(ServiceInterfaceEnum.SERVICE_INTERFACE); serviceInterfaceTarget.setValue(serviceInterface.getUuid()); Service service = new Service(); service.setArtifactType(BaseArtifactEnum.SERVICE); service.getHasContract().add(serviceContractTarget); service.getHasInterface().add(serviceInterfaceTarget); ServiceInstanceTarget serviceInstanceTarget = new ServiceInstanceTarget(); serviceInstanceTarget.setArtifactType(ServiceInstanceEnum.SERVICE_INSTANCE); serviceInstanceTarget.setValue(serviceInstance.getUuid()); service.setHasInstance(serviceInstanceTarget); service = (Service) persistAndAssertElement(service); assertTargets(service.getHasContract(), 1, serviceContract); assertTargets(service.getHasInterface(), 1, serviceInterface); assertTarget(service.getHasInstance(), serviceInstance); org.oasis_open.docs.s_ramp.ns.s_ramp_v1.System system = new org.oasis_open.docs.s_ramp.ns.s_ramp_v1.System(); system.setArtifactType(BaseArtifactEnum.SYSTEM); persistAndAssertElement(system); Composition composition = new Composition(); composition.setArtifactType(BaseArtifactEnum.COMPOSITION); persistAndAssertElement(composition); Choreography choreography = new Choreography(); choreography.setArtifactType(BaseArtifactEnum.CHOREOGRAPHY); persistAndAssertElement(choreography); Collaboration collaboration = new Collaboration(); collaboration.setArtifactType(BaseArtifactEnum.COLLABORATION); persistAndAssertElement(collaboration); Orchestration orchestration = new Orchestration(); orchestration.setArtifactType(BaseArtifactEnum.ORCHESTRATION); persistAndAssertElement(orchestration); org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Process process = new org.oasis_open.docs.s_ramp.ns.s_ramp_v1.Process(); process.setArtifactType(BaseArtifactEnum.PROCESS); persistAndAssertElement(process); ChoreographyProcess choreographyProcess = new ChoreographyProcess(); choreographyProcess.setArtifactType(BaseArtifactEnum.CHOREOGRAPHY_PROCESS); persistAndAssertElement(choreographyProcess); CollaborationProcess collaborationProcess = new CollaborationProcess(); collaborationProcess.setArtifactType(BaseArtifactEnum.COLLABORATION_PROCESS); persistAndAssertElement(collaborationProcess); OrchestrationProcess orchestrationProcess = new OrchestrationProcess(); orchestrationProcess.setArtifactType(BaseArtifactEnum.ORCHESTRATION_PROCESS); persistAndAssertElement(orchestrationProcess); ServiceComposition serviceComposition = new ServiceComposition(); serviceComposition.setArtifactType(BaseArtifactEnum.SERVICE_COMPOSITION); persistAndAssertElement(serviceComposition); Task task = new Task(); task.setArtifactType(BaseArtifactEnum.TASK); persistAndAssertElement(task); } private WsdlDocument wsdl; private Operation operation; private Port port; private ServiceEndpoint serviceEndpoint; private ServiceInstance serviceInstance; private ServiceOperation serviceOperation; private DerivedArtifactTarget derivedOperationTarget; private DerivedArtifactTarget derivedPortTarget; private DerivedArtifactTarget derivedPortTypeTarget; private DocumentArtifactTarget documentationTarget; @Before public void insertArtifacts() throws Exception { wsdl = (WsdlDocument) addArtifact("/sample-files/wsdl/", "jcr-sample.wsdl", new WsdlDocument(), BaseArtifactEnum.WSDL_DOCUMENT); PortType portType = (PortType) assertSingleArtifact(ArtifactTypeEnum.PortType, "SamplePortType"); operation = (Operation) assertSingleArtifact(ArtifactTypeEnum.Operation, "findSimple"); port = (Port) assertSingleArtifact(ArtifactTypeEnum.Port, "SamplePort"); SoapAddress soapAddress = (SoapAddress) getArtifactByTarget(port.getExtension().get(0)); derivedPortTypeTarget = new DerivedArtifactTarget(); derivedPortTypeTarget.setArtifactType(DerivedArtifactEnum.PORT_TYPE); derivedPortTypeTarget.setValue(portType.getUuid()); documentationTarget = new DocumentArtifactTarget(); documentationTarget.setArtifactType(DocumentArtifactEnum.WSDL_DOCUMENT); documentationTarget.setValue(wsdl.getUuid()); serviceEndpoint = new ServiceEndpoint(); serviceEndpoint.setArtifactType(BaseArtifactEnum.SERVICE_ENDPOINT); serviceEndpoint.setName("SampleServiceEndpoint"); serviceEndpoint.setUrl(soapAddress.getSoapLocation()); serviceEndpoint.getDocumentation().add(documentationTarget); derivedPortTarget = new DerivedArtifactTarget(); derivedPortTarget.setArtifactType(DerivedArtifactEnum.PORT); derivedPortTarget.setValue(port.getUuid()); serviceEndpoint.setEndpointDefinedBy(derivedPortTarget); serviceEndpoint = (ServiceEndpoint) persistenceManager.persistArtifact(serviceEndpoint, null); serviceInstance = new ServiceInstance(); serviceInstance.setArtifactType(BaseArtifactEnum.SERVICE_INSTANCE); serviceInstance.setName("SampleServiceInstance"); serviceInstance.getDocumentation().add(documentationTarget); BaseArtifactTarget portTarget = new BaseArtifactTarget(); portTarget.setArtifactType(BaseArtifactEnum.PORT); portTarget.setValue(port.getUuid()); serviceInstance.getUses().add(portTarget); BaseArtifactTarget wsdlTarget = new BaseArtifactTarget(); wsdlTarget.setArtifactType(BaseArtifactEnum.WSDL_DOCUMENT); wsdlTarget.setValue(wsdl.getUuid()); serviceInstance.getDescribedBy().add(wsdlTarget); serviceInstance = (ServiceInstance) persistenceManager.persistArtifact(serviceInstance, null); serviceOperation = new ServiceOperation(); serviceOperation.setArtifactType(BaseArtifactEnum.SERVICE_OPERATION); serviceOperation.setName("SampleServiceOperation"); serviceOperation.getDocumentation().add(documentationTarget); derivedOperationTarget = new DerivedArtifactTarget(); derivedOperationTarget.setArtifactType(DerivedArtifactEnum.OPERATION); derivedOperationTarget.setValue(operation.getUuid()); serviceOperation.setOperationDefinedBy(derivedOperationTarget); serviceOperation = (ServiceOperation) persistenceManager.persistArtifact(serviceOperation, null); } private Element element1; private ElementTarget elementTarget1; private Element element2; private ElementTarget elementTarget2; private Event event1; private EventTarget eventTarget1; private Event event2; private EventTarget eventTarget2; private Event event3; private EventTarget eventTarget3; private Orchestration orchestration1; private OrchestrationTarget orchestrationTarget1; private OrchestrationProcess orchestrationProcess1; private OrchestrationProcessTarget orchestrationProcessTarget1; private Policy policy1; private PolicyTarget policyTarget1; private Service service1; private ServiceTarget serviceTarget1; private Task task1; private TaskTarget taskTarget1; private void insertSoaArtifacts() throws Exception { // Note: It is possible to persist a single set of Element artifacts for use in the test, assertions, // relationships, etc. But, to keep things simple, just create an isolated set here, even if it duplicates // artifacts created by #testSOAModel. element1 = new Element(); element1.setArtifactType(BaseArtifactEnum.ELEMENT); element1 = persistAndAssert(element1); elementTarget1 = new ElementTarget(); elementTarget1.setArtifactType(ElementEnum.ELEMENT); elementTarget1.setValue(element1.getUuid()); element2 = new Element(); element2.setArtifactType(BaseArtifactEnum.ELEMENT); element2 = persistAndAssert(element2); elementTarget2 = new ElementTarget(); elementTarget2.setArtifactType(ElementEnum.ELEMENT); elementTarget2.setValue(element2.getUuid()); event1 = new Event(); event1.setArtifactType(BaseArtifactEnum.EVENT); event1 = persistAndAssert(event1); eventTarget1 = new EventTarget(); eventTarget1.setArtifactType(EventEnum.EVENT); eventTarget1.setValue(event1.getUuid()); event2 = new Event(); event2.setArtifactType(BaseArtifactEnum.EVENT); event2 = persistAndAssert(event2); eventTarget2 = new EventTarget(); eventTarget2.setArtifactType(EventEnum.EVENT); eventTarget2.setValue(event2.getUuid()); event3 = new Event(); event3.setArtifactType(BaseArtifactEnum.EVENT); event3 = persistAndAssert(event3); eventTarget3 = new EventTarget(); eventTarget3.setArtifactType(EventEnum.EVENT); eventTarget3.setValue(event3.getUuid()); orchestration1 = new Orchestration(); orchestration1.setArtifactType(BaseArtifactEnum.ORCHESTRATION); orchestration1 = persistAndAssert(orchestration1); orchestrationTarget1 = new OrchestrationTarget(); orchestrationTarget1.setArtifactType(OrchestrationEnum.ORCHESTRATION); orchestrationTarget1.setValue(orchestration1.getUuid()); orchestrationProcess1 = new OrchestrationProcess(); orchestrationProcess1.setArtifactType(BaseArtifactEnum.ORCHESTRATION_PROCESS); orchestrationProcess1 = persistAndAssert(orchestrationProcess1); orchestrationProcessTarget1 = new OrchestrationProcessTarget(); orchestrationProcessTarget1.setArtifactType(OrchestrationProcessEnum.ORCHESTRATION_PROCESS); orchestrationProcessTarget1.setValue(orchestrationProcess1.getUuid()); policy1 = new Policy(); policy1.setArtifactType(BaseArtifactEnum.POLICY); policy1 = persistAndAssert(policy1); policyTarget1 = new PolicyTarget(); policyTarget1.setArtifactType(PolicyEnum.POLICY); policyTarget1.setValue(policy1.getUuid()); service1 = new Service(); service1.setArtifactType(BaseArtifactEnum.SERVICE); service1 = persistAndAssert(service1); serviceTarget1 = new ServiceTarget(); serviceTarget1.setArtifactType(ServiceEnum.SERVICE); serviceTarget1.setValue(service1.getUuid()); task1 = new Task(); task1.setArtifactType(BaseArtifactEnum.TASK); task1 = persistAndAssert(task1); taskTarget1 = new TaskTarget(); taskTarget1.setArtifactType(TaskEnum.TASK); taskTarget1.setValue(task1.getUuid()); } private int counter = 0; private <T extends SoaModelType> T persistAndAssert(T artifact) throws Exception { artifact.setName("Sample" + artifact.getClass().getSimpleName() + counter++); artifact.getDocumentation().add(documentationTarget); artifact = (T) persistenceManager.persistArtifact(artifact, null); T persistedArtifact = (T) getArtifactByUUID(artifact.getUuid()); assertBasic(persistedArtifact, artifact); assertDocumentation(persistedArtifact.getDocumentation()); return persistedArtifact; } private Element persistAndAssertElement(Element artifact) throws Exception { artifact.getRepresents().add(elementTarget1); artifact.getUses().add(elementTarget2); artifact.getPerforms().add(serviceTarget1); artifact.setDirectsOrchestration(orchestrationTarget1); artifact.setDirectsOrchestrationProcess(orchestrationProcessTarget1); artifact.getGenerates().add(eventTarget1); artifact.getRespondsTo().add(eventTarget2); // Just to make sure we can add more than one, make 'er so. artifact.getRespondsTo().add(eventTarget3); artifact = persistAndAssert(artifact); assertTargets(artifact.getRepresents(), 1, element1); assertTargets(artifact.getUses(), 1, element2); assertTargets(artifact.getPerforms(), 1, service1); assertTarget(artifact.getDirectsOrchestration(), orchestration1); assertTarget(artifact.getDirectsOrchestrationProcess(), orchestrationProcess1); assertTargets(artifact.getGenerates(), 1, event1); assertTargets(artifact.getRespondsTo(), 2, event2, event3); return artifact; } private Actor persistAndAssertActor(Actor artifact) throws Exception { artifact.getDoes().add(taskTarget1); artifact.getSetsPolicy().add(policyTarget1); artifact = (Actor) persistAndAssertElement(artifact); assertTargets(artifact.getDoes(), 1, task1); assertTargets(artifact.getSetsPolicy(), 1, policy1); return artifact; } private void assertDocumentation(List<DocumentArtifactTarget> documentation) throws Exception { assertNotNull(documentation); assertTrue(documentation.size() > 0); for (DocumentArtifactTarget target : documentation) { WsdlDocument wsdlByTarget = (WsdlDocument) getArtifactByTarget(target); assertEquals(wsdl.getUuid(), wsdlByTarget.getUuid()); } } private <T extends Target> void assertTargets(List<T> elementTargets, int expectedSize, BaseArtifactType... expectedArtifacts) throws Exception { assertNotNull(elementTargets); assertEquals(expectedSize, elementTargets.size()); for (int i = 0; i < elementTargets.size(); i++) { assertTarget(elementTargets.get(i), expectedArtifacts[i]); } } private <T extends Target> void assertTarget(T elementTarget, BaseArtifactType expectedArtifact) throws Exception { BaseArtifactType artifactByTarget = (BaseArtifactType) getArtifactByTarget(elementTarget); assertBasic(artifactByTarget, expectedArtifact); } }