Search in sources :

Example 1 with DataType

use of org.contextmapper.dsl.generator.mdsl.model.DataType in project context-mapper-dsl by ContextMapper.

the class MDSLModelCreatorTest method canHandleMDSLKeywords.

@Test
void canHandleMDSLKeywords() throws IOException {
    // given
    String inputModelName = "mdsl-can-handle-keyword-clashes.cml";
    CMLResource input = getResourceCopyOfTestCML(inputModelName);
    MDSLModelCreator mdslCreator = new MDSLModelCreator(input.getContextMappingModel());
    // when
    List<ServiceSpecification> serviceSpecifications = mdslCreator.createServiceSpecifications();
    // then
    assertEquals(1, serviceSpecifications.size());
    ServiceSpecification spec = serviceSpecifications.get(0);
    assertEquals(2, spec.getDataTypes().size());
    DataType dataType1 = spec.getDataTypes().get(0);
    DataType dataType2 = spec.getDataTypes().get(1);
    assertEquals("ReturnType", dataType1.getName());
    assertEquals("^Link", dataType2.getName());
}
Also used : ServiceSpecification(org.contextmapper.dsl.generator.mdsl.model.ServiceSpecification) MDSLModelCreator(org.contextmapper.dsl.generator.mdsl.MDSLModelCreator) CMLResource(org.contextmapper.dsl.cml.CMLResource) DataType(org.contextmapper.dsl.generator.mdsl.model.DataType) AbstractCMLInputFileTest(org.contextmapper.dsl.AbstractCMLInputFileTest) Test(org.junit.jupiter.api.Test)

Example 2 with DataType

use of org.contextmapper.dsl.generator.mdsl.model.DataType in project context-mapper-dsl by ContextMapper.

the class MDSLModelCreatorTest method canCreateMDSLModelWithoutContextMap.

@Test
void canCreateMDSLModelWithoutContextMap() throws IOException {
    // given
    CMLResource input = getResourceCopyOfTestCML("basic-mdsl-model-test-without-contextmap.cml");
    MDSLModelCreator mdslCreator = new MDSLModelCreator(input.getContextMappingModel());
    // when
    List<ServiceSpecification> serviceSpecifications = mdslCreator.createServiceSpecifications();
    // then
    assertEquals(1, serviceSpecifications.size());
    ServiceSpecification spec = serviceSpecifications.get(0);
    assertEquals("CustomerManagementContextAPI", spec.getName());
    assertEquals(1, spec.getEndpoints().size());
    EndpointContract endpoint = spec.getEndpoints().get(0);
    assertEquals("Customers", endpoint.getName());
    assertEquals(2, endpoint.getOperations().size());
    EndpointOperation operation1 = endpoint.getOperations().get(0);
    assertEquals("updateAddress", operation1.getName());
    EndpointOperation operation2 = endpoint.getOperations().get(1);
    assertEquals("anotherMethod", operation2.getName());
    assertEquals(5, spec.getDataTypes().size());
    DataType dataType1 = spec.getDataTypes().get(0);
    assertEquals("Address", dataType1.getName());
    DataType dataType2 = spec.getDataTypes().get(1);
    assertEquals("Parameter1Type", dataType2.getName());
    DataType dataType3 = spec.getDataTypes().get(2);
    assertEquals("Parameter2Type", dataType3.getName());
    DataType dataType4 = spec.getDataTypes().get(3);
    assertEquals("ReturnType", dataType4.getName());
    DataType dataType5 = spec.getDataTypes().get(4);
    assertEquals("anotherMethodParameter", dataType5.getName());
    assertEquals("Address", operation1.getExpectingPayload().getName());
    assertEquals("ReturnType", operation1.getDeliveringPayload().getName());
    assertEquals("anotherMethodParameter", operation2.getExpectingPayload().getName());
    assertEquals(1, spec.getProviders().size());
    EndpointProvider provider = spec.getProviders().get(0);
    assertEquals("CustomerManagementContextProvider", provider.getName());
    assertEquals(1, provider.getEndpointOffers().size());
    EndpointOffer contractOffered = provider.getEndpointOffers().get(0);
    assertEquals("Customers", contractOffered.getOfferedEndpoint().getName());
    assertEquals("http://localhost:8000", contractOffered.getLocation());
}
Also used : ServiceSpecification(org.contextmapper.dsl.generator.mdsl.model.ServiceSpecification) EndpointContract(org.contextmapper.dsl.generator.mdsl.model.EndpointContract) MDSLModelCreator(org.contextmapper.dsl.generator.mdsl.MDSLModelCreator) EndpointProvider(org.contextmapper.dsl.generator.mdsl.model.EndpointProvider) CMLResource(org.contextmapper.dsl.cml.CMLResource) DataType(org.contextmapper.dsl.generator.mdsl.model.DataType) EndpointOffer(org.contextmapper.dsl.generator.mdsl.model.EndpointOffer) EndpointOperation(org.contextmapper.dsl.generator.mdsl.model.EndpointOperation) AbstractCMLInputFileTest(org.contextmapper.dsl.AbstractCMLInputFileTest) Test(org.junit.jupiter.api.Test)

Example 3 with DataType

use of org.contextmapper.dsl.generator.mdsl.model.DataType in project context-mapper-dsl by ContextMapper.

the class MDSLDataTypeCreator method createAttributes4ReferencesList.

private List<DataTypeAttribute> createAttributes4ReferencesList(List<Reference> references) {
    List<DataTypeAttribute> mdslAttributes = Lists.newArrayList();
    for (Reference reference : references) {
        DataType referencedType = createMDSLDataType(createComplexTypeForReference(reference));
        mdslAttributes.add(createAttribute(reference.getName(), referencedType.getName(), isCollection(reference.getCollectionType()), reference.isNullable()));
    }
    return mdslAttributes;
}
Also used : Reference(org.contextmapper.tactic.dsl.tacticdsl.Reference) DataTypeAttribute(org.contextmapper.dsl.generator.mdsl.model.DataTypeAttribute) DataType(org.contextmapper.dsl.generator.mdsl.model.DataType)

Example 4 with DataType

use of org.contextmapper.dsl.generator.mdsl.model.DataType in project context-mapper-dsl by ContextMapper.

the class MDSLDataTypeCreator method createAttributes4ParameterList.

private List<DataTypeAttribute> createAttributes4ParameterList(List<Parameter> parameters) {
    List<DataTypeAttribute> mdslAttributes = Lists.newArrayList();
    for (Parameter parameter : parameters) {
        DataType referencedType = createMDSLDataType(parameter.getParameterType());
        mdslAttributes.add(createAttribute(parameter.getName(), referencedType.getName(), isCollection(parameter.getParameterType().getCollectionType()), false));
    }
    return mdslAttributes;
}
Also used : DataTypeAttribute(org.contextmapper.dsl.generator.mdsl.model.DataTypeAttribute) Parameter(org.contextmapper.tactic.dsl.tacticdsl.Parameter) DataType(org.contextmapper.dsl.generator.mdsl.model.DataType)

Example 5 with DataType

use of org.contextmapper.dsl.generator.mdsl.model.DataType in project context-mapper-dsl by ContextMapper.

the class MDSLModelCreator method createVoidReturnType.

private DataType createVoidReturnType() {
    DataType voidType = new DataType();
    voidType.setIsPrimitiveType(true);
    voidType.setName(MDSL_VOID_RETURN_TYPE);
    return voidType;
}
Also used : DataType(org.contextmapper.dsl.generator.mdsl.model.DataType)

Aggregations

DataType (org.contextmapper.dsl.generator.mdsl.model.DataType)12 ServiceSpecification (org.contextmapper.dsl.generator.mdsl.model.ServiceSpecification)5 AbstractCMLInputFileTest (org.contextmapper.dsl.AbstractCMLInputFileTest)4 CMLResource (org.contextmapper.dsl.cml.CMLResource)4 MDSLModelCreator (org.contextmapper.dsl.generator.mdsl.MDSLModelCreator)4 Test (org.junit.jupiter.api.Test)4 DataTypeAttribute (org.contextmapper.dsl.generator.mdsl.model.DataTypeAttribute)2 EndpointContract (org.contextmapper.dsl.generator.mdsl.model.EndpointContract)2 EndpointOffer (org.contextmapper.dsl.generator.mdsl.model.EndpointOffer)2 EndpointOperation (org.contextmapper.dsl.generator.mdsl.model.EndpointOperation)2 EndpointProvider (org.contextmapper.dsl.generator.mdsl.model.EndpointProvider)2 Aggregate (org.contextmapper.dsl.contextMappingDSL.Aggregate)1 Flow (org.contextmapper.dsl.contextMappingDSL.Flow)1 FlowStep (org.contextmapper.dsl.contextMappingDSL.FlowStep)1 DownstreamContext (org.contextmapper.dsl.generator.mdsl.generatorcontext.DownstreamContext)1 EndpointClient (org.contextmapper.dsl.generator.mdsl.model.EndpointClient)1 OrchestrationFlow (org.contextmapper.dsl.generator.mdsl.model.OrchestrationFlow)1 CommandEvent (org.contextmapper.tactic.dsl.tacticdsl.CommandEvent)1 DomainEvent (org.contextmapper.tactic.dsl.tacticdsl.DomainEvent)1 DomainObject (org.contextmapper.tactic.dsl.tacticdsl.DomainObject)1