use of org.contextmapper.servicecutter.dsl.serviceCutterConfigurationDSL.ContentVolatility in project context-mapper-dsl by ContextMapper.
the class UserRepresentationsBuilderTest method canGenerateContentVolatilityCompatibilitiesFromCML.
@Test
public void canGenerateContentVolatilityCompatibilitiesFromCML() throws IOException {
// given
ContextMappingModel inputModel = getOriginalResourceOfTestCML("user-representations-builder-test-5.cml").getContextMappingModel();
// when
ServiceCutterUserRepresentationsModel scModel = new UserRepresentationsBuilder(inputModel).build();
// then
assertNotNull(scModel.getCompatibilities());
Compatibilities compatibilities = scModel.getCompatibilities();
assertFalse(compatibilities.getContentVolatility().isEmpty());
assertEquals(3, compatibilities.getContentVolatility().size());
ContentVolatility normal = compatibilities.getContentVolatility().stream().filter(sv -> sv.getCharacteristic().equals("Regularly")).findFirst().get();
ContentVolatility often = compatibilities.getContentVolatility().stream().filter(sv -> sv.getCharacteristic().equals("Often")).findFirst().get();
ContentVolatility rarely = compatibilities.getContentVolatility().stream().filter(sv -> sv.getCharacteristic().equals("Rarely")).findFirst().get();
assertNotNull(normal);
assertNotNull(often);
assertNotNull(rarely);
assertTrue(normal.getNanoentities().contains("Customer.testAttr1"));
assertTrue(often.getNanoentities().contains("Customer.testAttr2"));
assertTrue(rarely.getNanoentities().contains("Customer.testAttr3"));
}
use of org.contextmapper.servicecutter.dsl.serviceCutterConfigurationDSL.ContentVolatility in project context-mapper-dsl by ContextMapper.
the class UserRepresentationsExampleFactory method createSampleCompatibilities.
private Compatibilities createSampleCompatibilities() {
Compatibilities compatibilities = factory.createCompatibilities();
compatibilities.setDoc("/* Compatibilities can be used to import all coupling criteria of type Compatability.\n" + " * https://github.com/ServiceCutter/ServiceCutter/wiki/Compatibilities\n" + " * The following compatibilities are just examples to provide you a template! You have to specify or remove them. " + " */");
// difficult to create examples, if there are no attributes in the model
if (allModelAttributes.size() <= 0)
return compatibilities;
ContentVolatility exampleContentVolatility = factory.createContentVolatility();
exampleContentVolatility.setDoc("/* See: https://github.com/ServiceCutter/ServiceCutter/wiki/CC-8-Content-Volatility */");
exampleContentVolatility.setCharacteristic("Often");
exampleContentVolatility.setCharacteristicDoc("// Allowed characteristics: Often, Regularly, Rarely");
exampleContentVolatility.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
exampleContentVolatility.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
compatibilities.getContentVolatility().add(exampleContentVolatility);
StructuralVolatility exampleStructuralVolatility = factory.createStructuralVolatility();
exampleStructuralVolatility.setDoc("/* See: https://github.com/ServiceCutter/ServiceCutter/wiki/CC-4-Structural-Volatility */");
exampleStructuralVolatility.setCharacteristic("Normal");
exampleStructuralVolatility.setCharacteristicDoc("// Allowed characteristics: Often, Normal, Rarely");
exampleStructuralVolatility.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
exampleStructuralVolatility.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
compatibilities.getStructuralVolatility().add(exampleStructuralVolatility);
AvailabilityCriticality exampleAvailabilityCriticality = factory.createAvailabilityCriticality();
exampleAvailabilityCriticality.setDoc("/* See: https://github.com/ServiceCutter/ServiceCutter/wiki/CC-7-Availability-Criticality */");
exampleAvailabilityCriticality.setCharacteristic("Normal");
exampleAvailabilityCriticality.setCharacteristicDoc("// Allowed characteristics: Critical, Normal, Low");
exampleAvailabilityCriticality.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
exampleAvailabilityCriticality.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
compatibilities.getAvailabilityCriticality().add(exampleAvailabilityCriticality);
ConsistencyCriticality exampleConsistencyCriticality = factory.createConsistencyCriticality();
exampleConsistencyCriticality.setDoc("/* See: https://github.com/ServiceCutter/ServiceCutter/wiki/CC-6-Consistency-Criticality */");
exampleConsistencyCriticality.setCharacteristic("Eventually");
exampleConsistencyCriticality.setCharacteristicDoc("// Allowed characteristics: High, Eventually, Weak");
exampleConsistencyCriticality.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
exampleConsistencyCriticality.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
compatibilities.getConsistencyCriticality().add(exampleConsistencyCriticality);
StorageSimilarity exampleStorageSimilarity = factory.createStorageSimilarity();
exampleStorageSimilarity.setDoc("/* See: https://github.com/ServiceCutter/ServiceCutter/wiki/CC-11-Storage-Similarity */");
exampleStorageSimilarity.setCharacteristic("Normal");
exampleStorageSimilarity.setCharacteristicDoc("// Allowed characteristics: Tiny, Normal, Huge");
exampleStorageSimilarity.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
exampleStorageSimilarity.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
compatibilities.getStorageSimilarity().add(exampleStorageSimilarity);
SecurityCriticality exampleSecurityCriticality = factory.createSecurityCriticality();
exampleSecurityCriticality.setDoc("/* See: https://github.com/ServiceCutter/ServiceCutter/wiki/CC-15-Security-Criticality */");
exampleSecurityCriticality.setCharacteristic("Internal");
exampleSecurityCriticality.setCharacteristicDoc("// Allowed characteristics: Critical, Internal, Public");
exampleSecurityCriticality.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
exampleSecurityCriticality.getNanoentities().add(randomlyPickAttribute(allModelAttributes));
compatibilities.getSecurityCriticality().add(exampleSecurityCriticality);
return compatibilities;
}
use of org.contextmapper.servicecutter.dsl.serviceCutterConfigurationDSL.ContentVolatility in project context-mapper-dsl by ContextMapper.
the class CompatibilityBuilder method createContentVolatility.
private ContentVolatility createContentVolatility(String characteristic, Set<String> nanoentities) {
ContentVolatility contentVolatility = ServiceCutterConfigurationDSLFactory.eINSTANCE.createContentVolatility();
contentVolatility.setCharacteristic(characteristic);
contentVolatility.getNanoentities().addAll(nanoentities);
return contentVolatility;
}
Aggregations